class Dry::Data::SumType
Attributes
left[R]
right[R]
Public Class Methods
new(left, right)
click to toggle source
# File lib/dry/data/sum_type.rb, line 10 def initialize(left, right) @left, @right = left, right end
Public Instance Methods
call(input)
click to toggle source
# File lib/dry/data/sum_type.rb, line 18 def call(input) value = left.try(input) if left.valid?(value) value else right[value] end end
Also aliased as: []
name()
click to toggle source
# File lib/dry/data/sum_type.rb, line 14 def name [left, right].map(&:name).join(' | ') end
valid?(input)
click to toggle source
# File lib/dry/data/sum_type.rb, line 29 def valid?(input) left.valid?(input) || right.valid?(input) end