class Datacaster::ThenNode

Public Class Methods

new(left, then_caster) click to toggle source
# File lib/datacaster/then_node.rb, line 3
def initialize(left, then_caster)
  @left = left
  @then = then_caster
end

Public Instance Methods

call(object) click to toggle source
Calls superclass method Datacaster::Base#call
# File lib/datacaster/then_node.rb, line 15
def call(object)
  unless @else
    raise ArgumentError.new('Datacaster: use "a & b" instead of "a.then(b)" when there is no else-clause')
  end

  object = super(object)

  left_result = @left.(object)

  if left_result.valid?
    @then.(left_result)
  else
    @else.(object)
  end
end
else(else_caster) click to toggle source
# File lib/datacaster/then_node.rb, line 8
def else(else_caster)
  raise ArgumentError.new('Datacaster: double else clause is not permitted') if @else

  @else = else_caster
  self
end
inspect() click to toggle source
# File lib/datacaster/then_node.rb, line 31
def inspect
  "#<Datacaster::ThenNode Then: #{@then.inspect} Else: #{@else.inspect}>"
end