class TermUtils::AP::Walker
Public Class Methods
new()
click to toggle source
Constructs a new Walker
.
# 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
Public Instance Methods
article(param_id = nil, art_id = nil, &block)
click to toggle source
Registers an article hook.
# 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)
click to toggle source
Registers a walk finished hook.
# File lib/term_utils/ap/result.rb, line 208 def finished(&block) @finished_hook = block end
notify_article(article)
click to toggle source
Calls article hooks.
# 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)
click to toggle source
Calls finished hook.
# 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)
click to toggle source
Calls parameter hooks.
# 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)
click to toggle source
Registers a parameter hook.
# 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