class Dry::Types::Constrained::Coercible

def try(input, &block)

Returns:
  • (Result, nil) -

Other tags:
    Yieldreturn: -

Other tags:
    Yieldparam: failure -

Parameters:
  • block (#call, nil) --
  • input (Object) --
def try(input, &block)
  result = type.try(input)
  if result.success?
    validation = rule.(result.input)
    if validation.success?
      result
    else
      failure = failure(result.input, validation)
      block ? yield(failure) : failure
    end
  else
    block ? yield(result) : result
  end
end