class BusinessFlow::Step::ConditionList
Handle some logic around conditions
Public Class Methods
new(if_stmts, unless_stmts)
click to toggle source
# File lib/business_flow/step.rb, line 150 def initialize(if_stmts, unless_stmts) @conditions = Array.wrap(if_stmts).map(&Callable.method(:new)) + Array.wrap(unless_stmts).map(&method(:to_unless)) end
Public Instance Methods
call(instance, inputs)
click to toggle source
# File lib/business_flow/step.rb, line 155 def call(instance, inputs) @conditions.all? { |cond| cond.call(instance, inputs) } end
Private Instance Methods
to_unless(cond)
click to toggle source
# File lib/business_flow/step.rb, line 161 def to_unless(cond) if_stmt = Callable.new(cond) unless_stmt = proc do |instance, input| !if_stmt.call(instance, input) end Callable.new(unless_stmt) end