Sha256: a438e9e025a2372c795bc89e34a81cfb36833885f1060be9e45967974ab962f2

Contents?: true

Size: 493 Bytes

Versions: 12

Compression:

Stored size: 493 Bytes

Contents

module Datacaster
  class AndNode < Base
    def initialize(*casters)
      @casters = casters
    end

    def cast(object, runtime:)
      Datacaster.ValidResult(
        @casters.reduce(object) do |result, caster|
          caster_result = caster.with_runtime(runtime).(result)
          return caster_result unless caster_result.valid?
          caster_result.value
        end
      )
    end

    def inspect
      "#<Datacaster::AndNode casters: #{@casters.inspect}>"
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
datacaster-4.1.0 lib/datacaster/and_node.rb
datacaster-4.0.1 lib/datacaster/and_node.rb
datacaster-3.3.1 lib/datacaster/and_node.rb
datacaster-3.3.0 lib/datacaster/and_node.rb
datacaster-3.2.7 lib/datacaster/and_node.rb
datacaster-3.2.6 lib/datacaster/and_node.rb
datacaster-3.2.5 lib/datacaster/and_node.rb
datacaster-3.2.4 lib/datacaster/and_node.rb
datacaster-3.2.3 lib/datacaster/and_node.rb
datacaster-3.2.2 lib/datacaster/and_node.rb
datacaster-3.2.1 lib/datacaster/and_node.rb
datacaster-3.2.0 lib/datacaster/and_node.rb