Class: TermUtils::AP::Walker
- Inherits:
-
Object
- Object
- TermUtils::AP::Walker
- Defined in:
- lib/term_utils/ap/result.rb
Overview
Represents a Result Walker.
Instance Method Summary collapse
-
#article(param_id = nil, art_id = nil, &block) ⇒ Object
Registers an article hook.
-
#finished(&block) ⇒ Object
Registers a walk finished hook.
-
#initialize ⇒ Walker
constructor
Constructs a new Walker.
-
#notify_article(article) ⇒ Object
Calls article hooks.
-
#notify_finished(remaining_arguments) ⇒ Object
Calls finished hook.
-
#notify_parameter(parameter) ⇒ Object
Calls parameter hooks.
-
#parameter(param_id = nil, &block) ⇒ Object
Registers a parameter hook.
Constructor Details
#initialize ⇒ Walker
Constructs a new Walker.
168 169 170 171 172 173 |
# File 'lib/term_utils/ap/result.rb', line 168 def initialize @anonymous_parameter_hook = nil @anonymous_article_hook = nil @parameter_hooks = {} @finished_hook = nil end |
Instance Method Details
#article(param_id = nil, art_id = nil, &block) ⇒ Object
Registers an article hook.
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 |
# File 'lib/term_utils/ap/result.rb', line 188 def article(param_id = nil, art_id = nil, &block) unless param_id # Anonymous article hook @anonymous_article_hook = block return end unless art_id # Anonymous article hook @parameter_hooks[param_id] = TermUtils::AP::ParameterWalkerHooks.new unless @parameter_hooks.key?(param_id) @parameter_hooks[param_id].anonymous_article_hook = block return end @parameter_hooks[param_id] = TermUtils::AP::ParameterWalkerHooks.new unless @parameter_hooks.key?(param_id) @parameter_hooks[param_id].article_hooks ||= {} @parameter_hooks[param_id].article_hooks[art_id] = block end |
#finished(&block) ⇒ Object
Registers a walk finished hook.
208 209 210 |
# File 'lib/term_utils/ap/result.rb', line 208 def finished(&block) @finished_hook = block end |
#notify_article(article) ⇒ Object
Calls article hooks.
222 223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/term_utils/ap/result.rb', line 222 def notify_article(article) # (1of2) ID article hook param_hooks = @parameter_hooks[article.parent.param_id] if param_hooks # ID article hook param_hooks.article_hooks[article.art_id].call(article) if param_hooks.article_hooks && param_hooks.article_hooks.key?(article.art_id) # Anonymous article hook param_hooks.anonymous_article_hook.call(article) if param_hooks.anonymous_article_hook end # (2of2) Anonymous article hook @anonymous_article_hook.call(article) if @anonymous_article_hook end |
#notify_finished(remaining_arguments) ⇒ Object
Calls finished hook.
236 237 238 |
# File 'lib/term_utils/ap/result.rb', line 236 def notify_finished(remaining_arguments) @finished_hook.call(remaining_arguments) if @finished_hook end |
#notify_parameter(parameter) ⇒ Object
Calls parameter hooks.
213 214 215 216 217 218 219 |
# File 'lib/term_utils/ap/result.rb', line 213 def notify_parameter(parameter) # (1of2) ID parameter hook param_hooks = @parameter_hooks[parameter.param_id] param_hooks.hook.call(parameter) if param_hooks && param_hooks.hook # (2of2) Anonymous parameter hook @anonymous_parameter_hook.call(parameter) if @anonymous_parameter_hook end |
#parameter(param_id = nil, &block) ⇒ Object
Registers a parameter hook.
176 177 178 179 180 181 182 183 184 185 |
# File 'lib/term_utils/ap/result.rb', line 176 def parameter(param_id = nil, &block) unless param_id # Anonymous parameter hook @anonymous_parameter_hook = block return end @parameter_hooks[param_id] = TermUtils::AP::ParameterWalkerHooks.new unless @parameter_hooks.key?(param_id) @parameter_hooks[param_id].hook = block end |