Class: Decoding::Decoders::AndThen
- Inherits:
-
Decoding::Decoder
- Object
- Decoding::Decoder
- Decoding::Decoders::AndThen
- Defined in:
- lib/decoding/decoders/and_then.rb
Overview
Create a decoder that depends on a previously decoded value.
Instance Method Summary collapse
- #call(value) ⇒ Decoding::Result<b>
- #initialize(decoder) {|| ... } ⇒ Decoding::Decoder<b> constructor
Methods inherited from Decoding::Decoder
Constructor Details
#initialize(decoder) {|| ... } ⇒ Decoding::Decoder<b>
15 16 17 18 19 |
# File 'lib/decoding/decoders/and_then.rb', line 15 def initialize(decoder, &block) @decoder = decoder.to_decoder @block = block super() end |
Instance Method Details
#call(value) ⇒ Decoding::Result<b>
23 24 25 26 27 28 29 |
# File 'lib/decoding/decoders/and_then.rb', line 23 def call(value) @decoder.call(value).and_then do |decoded_value| @block.call(decoded_value).call(value) end rescue StandardError => e err(failure("error in and_then block: #{e.message}")) end |