Class: Decoding::Decoders::OptionalField
- Inherits:
-
Decoding::Decoder
- Object
- Decoding::Decoder
- Decoding::Decoders::OptionalField
- Defined in:
- lib/decoding/decoders/optional_field.rb
Overview
Instance Method Summary collapse
- #call(value) ⇒ Decoding::Result<a>
-
#initialize(key, decoder, default: nil) ⇒ OptionalField
constructor
A new instance of OptionalField.
Methods inherited from Decoding::Decoder
Constructor Details
#initialize(key, decoder, default: nil) ⇒ OptionalField
Returns a new instance of OptionalField.
19 20 21 22 23 24 |
# File 'lib/decoding/decoders/optional_field.rb', line 19 def initialize(key, decoder, default: nil) @key = String(key) @field = Field.new(@key, decoder) @default = default super() end |
Instance Method Details
#call(value) ⇒ Decoding::Result<a>
28 29 30 31 32 |
# File 'lib/decoding/decoders/optional_field.rb', line 28 def call(value) return ok(@default) if value.is_a?(::Hash) && !value.key?(@key) @field.call(value) end |