Sha256: 514d09efbbfdb8514e95b9027df45b460d23b901efdcaa9f2fae718a124961c6
Contents?: true
Size: 745 Bytes
Versions: 2
Compression:
Stored size: 745 Bytes
Contents
module Datacaster class ThenNode < Base def initialize(left, then_caster) @left = left @then = then_caster end def else(else_caster) raise ArgumentError.new("Datacaster: double else clause is not permitted") if @else @else = else_caster self end def cast(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 def inspect "#<Datacaster::ThenNode Then: #{@then.inspect} Else: #{@else.inspect}>" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
datacaster-2.0.2 | lib/datacaster/then_node.rb |
datacaster-2.0.1 | lib/datacaster/then_node.rb |