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

[](input)
Alias for: call
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