Class: Decoding::Decoders::Enum
- Inherits:
-
Decoding::Decoder
- Object
- Decoding::Decoder
- Decoding::Decoders::Enum
- Defined in:
- lib/decoding/decoders/enum.rb
Overview
A decoder for a value that must be one of a fixed set of values.
Values are compared for equality, not with the === operator the Match
decoder uses, so the values are read as themselves rather than as
patterns.
Instance Method Summary collapse
- #call(value) ⇒ Decoding::Result<Object>
-
#initialize(value, *values) ⇒ Enum
constructor
A new instance of Enum.
Methods inherited from Decoding::Decoder
Constructor Details
Instance Method Details
#call(value) ⇒ Decoding::Result<Object>
28 29 30 31 32 |
# File 'lib/decoding/decoders/enum.rb', line 28 def call(value) return ok(value) if @values.include?(value) err(failure("expected one of #{@values.map(&:inspect).join(", ")}, got #{value.inspect}")) end |