class Dry::Types::Sum
Sum
type
@api public
Public Class Methods
operator()
click to toggle source
# File lib/dry/types/sum.rb, line 11 def self.operator :| end
Public Instance Methods
call_safe(input, &block)
click to toggle source
@param [Object] input
@return [Object]
@api private
# File lib/dry/types/sum.rb, line 36 def call_safe(input, &block) left.call_safe(input) { right.call_safe(input, &block) } end
call_unsafe(input)
click to toggle source
@param [Object] input
@return [Object]
@api private
# File lib/dry/types/sum.rb, line 27 def call_unsafe(input) left.call_safe(input) { right.call_unsafe(input) } end
constrained(options)
click to toggle source
@param [Hash] options
@return [Constrained,Sum]
@see Builder#constrained
@api public
Calls superclass method
# File lib/dry/types/sum.rb, line 87 def constrained(options) if optional? right.constrained(options).optional else super end end
meta(data = Undefined)
click to toggle source
Manage metadata to the type. If the type is an optional, meta
delegates to the right branch
@see [Meta#meta]
@api public
Calls superclass method
# File lib/dry/types/sum.rb, line 70 def meta(data = Undefined) if Undefined.equal?(data) optional? ? right.meta : super elsif optional? self.class.new(left, right.meta(data), **options) else super end end
optional?()
click to toggle source
@return [Boolean]
@api public
# File lib/dry/types/sum.rb, line 18 def optional? primitive?(nil) end
primitive?(value)
click to toggle source
@param [Object] value
@return [Boolean]
@api private
# File lib/dry/types/sum.rb, line 60 def primitive?(value) left.primitive?(value) || right.primitive?(value) end
try(input) { |failure| ... }
click to toggle source
@param [Object] input
@api public
# File lib/dry/types/sum.rb, line 43 def try(input) left.try(input) do right.try(input) do |failure| if block_given? yield(failure) else failure end end end end