class ActionFlow::DSL
Public Class Methods
new(flow_register, &block)
click to toggle source
# File lib/action_flow.rb, line 28 def initialize(flow_register, &block) @flow_register = flow_register instance_eval(&block) end
Public Instance Methods
flow(name, *expressions)
click to toggle source
# File lib/action_flow.rb, line 33 def flow(name, *expressions) @flow_register.flows[name.to_sym] = Flow.new(expressions) end
mutex(*names)
click to toggle source
# File lib/action_flow.rb, line 37 def mutex(*names) names.each do |name| next unless flow = @flow_register.flows[name] flow.mutexes = names - [name] end end
terminate(*args)
click to toggle source
# File lib/action_flow.rb, line 44 def terminate(*args) expression_options = args.pop unless expression_options.respond_to?(:[]) && expression = expression_options[:on] raise ArgumentError, 'Could not find :on => expression in terminate' end args.each do |arg| flow_name = arg.to_sym next unless @flow_register.flows[flow_name] @flow_register.flows[flow_name].terminators << expression end end