class Loom::Pattern::Reference::RunContext
A small class to bind the unbound_method to and provide context in the case of errors.
Public Class Methods
new(pattern, definition_ctx)
click to toggle source
# File lib/loom/pattern/reference.rb, line 48 def initialize(pattern, definition_ctx) @pattern = pattern @definition_ctx = definition_ctx end
Public Instance Methods
run(shell_api, fact_set)
click to toggle source
# File lib/loom/pattern/reference.rb, line 53 def run(shell_api, fact_set) before_hooks = @definition_ctx.before_hooks after_hooks = @definition_ctx.after_hooks begin Loom.log.debug1(self) { "before hooks => #{before_hooks}"} before_hooks.each do |hook| Loom.log.debug2(self) { "executing before hook => #{hook}"} instance_exec shell_api, fact_set, &hook.block end # This is the entry point into calling patterns. apply_pattern shell_api, fact_set ensure Loom.log.debug1(self) { "after hooks => #{after_hooks}" } after_hooks.each do |hook| Loom.log.debug2(self) { "executing after hook => #{hook}"} instance_exec shell_api, fact_set, &hook.block end end end
Private Instance Methods
apply_pattern(*args)
click to toggle source
# File lib/loom/pattern/reference.rb, line 77 def apply_pattern(*args) instance_exec(*args, &@pattern.pattern_block) end