class Uh::WM::Launcher
Public Class Methods
launch(runner, instructions)
click to toggle source
# File lib/uh/wm/launcher.rb, line 5 def launch runner, instructions new(runner.actions, runner.rules, runner.method(:run_until)) .launch instructions end
new(actions, rules, run_until)
click to toggle source
# File lib/uh/wm/launcher.rb, line 11 def initialize actions, rules, run_until @actions = actions @rules = rules @run_until = run_until end
Public Instance Methods
launch(instructions)
click to toggle source
# File lib/uh/wm/launcher.rb, line 17 def launch instructions with_clean_rules do rules = @rules DSL.new(@actions).evaluate(instructions).each do |m, args, block| if m == :execute! @rules[//] = -> { rules.clear } @actions.execute *args, &block @run_until.call { @rules.empty? } else @actions.send m, *args, &block end end end end
Private Instance Methods
with_clean_rules() { || ... }
click to toggle source
# File lib/uh/wm/launcher.rb, line 34 def with_clean_rules original_rules = @rules.dup @rules.clear yield @rules.clear @rules.merge! original_rules end