Class: Strict::Unions::Coercer
- Inherits:
-
Object
- Object
- Strict::Unions::Coercer
- Defined in:
- lib/strict/unions/coercer.rb
Instance Method Summary collapse
- #call(value) ⇒ Object
-
#initialize(union_class, discriminator:, variants:) ⇒ Coercer
constructor
A new instance of Coercer.
Constructor Details
#initialize(union_class, discriminator:, variants:) ⇒ Coercer
Returns a new instance of Coercer.
9 10 11 12 13 |
# File 'lib/strict/unions/coercer.rb', line 9 def initialize(union_class, discriminator:, variants:) @union_class = union_class @discriminator = discriminator @variants = variants end |
Instance Method Details
#call(value) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/strict/unions/coercer.rb', line 15 def call(value) return value if value.nil? || union_class === value return value unless value.respond_to?(:to_h) coerce(value.to_h) end |