Class: Decoding::Decoders::Array
- Inherits:
-
Decoding::Decoder
- Object
- Decoding::Decoder
- Decoding::Decoders::Array
- Defined in:
- lib/decoding/decoders/array.rb
Overview
Decode an array where all values match a given decoder.
Instance Method Summary collapse
- #call(value) ⇒ Decoding::Result<a>
-
#initialize(decoder) ⇒ Array
constructor
A new instance of Array.
Methods inherited from Decoding::Decoder
Constructor Details
#initialize(decoder) ⇒ Array
Returns a new instance of Array.
13 14 15 16 |
# File 'lib/decoding/decoders/array.rb', line 13 def initialize(decoder) @decoder = decoder.to_decoder super() end |
Instance Method Details
#call(value) ⇒ Decoding::Result<a>
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/decoding/decoders/array.rb', line 20 def call(value) if value.is_a?(::Array) value .each_with_index .map { |v, i| @decoder.call(v).map_err { _1.push(i) } } .then { all _1 } else err("expected an Array, got: #{value.class}") end end |