class Composable::Core::ComposableDSL::Composable::Condition
Attributes
callable[R]
condition[R]
statement[R]
Public Class Methods
new(statement, condition)
click to toggle source
# File lib/composable/core/composable_dsl.rb, line 193 def initialize(statement, condition) @statement = statement.to_sym @condition = condition @callable = make_lambda end
Public Instance Methods
call(form, record)
click to toggle source
# File lib/composable/core/composable_dsl.rb, line 199 def call(form, record) callable.call(form, record).eql?(statement == :if) end
Private Instance Methods
make_lambda()
click to toggle source
# File lib/composable/core/composable_dsl.rb, line 205 def make_lambda case condition when Symbol ->(form, _record) { form.send(condition) } when ::Proc lambda { |form, record| form.instance_exec(*[record][0...condition.arity], &condition) } else ->(*) { true } end end