class Object

Public Instance Methods

case(cases={}) click to toggle source
# File lib/condition_red.rb, line 29
def case cases={}
  any_case = false
  result = nil
  cases.each_pair do |key, value|
    (key==self).if true: -> do 
      any_case = true
      result = value.respond_to?(:call).if true: ->{value.call}, false: ->{value}
    end
  end
  any_case.if false: ->{
    cases[:else].nil?.if false: -> do 
      result = cases[:else].respond_to?(:call).if true: ->{cases[:else].call}, false: ->{cases[:else]}
    end
  }
  result
end
if(conditions={}) click to toggle source
# File lib/condition_red.rb, line 25
def if conditions={}
  conditions = {true: ->{}, false: ->{}, nil: ->{}}.merge conditions
  if_true(&conditions[:true]).or{if_false &conditions[:false]}.or{if_nil &conditions[:nil]}
end