class Dry::Types::Maybe

@api public
Maybe extension provides Maybe types where values are wrapped using ‘Either` monad

def call_safe(input = Undefined, &block)

Other tags:
    Api: - private

Returns:
  • (Dry::Monads::Maybe) -

Parameters:
  • input (Dry::Monads::Maybe, Object) --
def call_safe(input = Undefined, &block)
  case input
  when Dry::Monads::Maybe
    input
  when Undefined
    None()
  else
    Maybe(type.call_safe(input, &block))
  end
end

def call_unsafe(input = Undefined)

Other tags:
    Api: - private

Returns:
  • (Dry::Monads::Maybe) -

Parameters:
  • input (Dry::Monads::Maybe, Object) --
def call_unsafe(input = Undefined)
  case input
  when Dry::Monads::Maybe
    input
  when Undefined
    None()
  else
    Maybe(type.call_unsafe(input))
  end
end

def default(value)

Other tags:
    Api: - public

Raises:
  • (ArgumentError) - if nil provided as default value

Other tags:
    See: Dry::Types::Builder#default -

Parameters:
  • value (Object) --
def default(value)
  if value.nil?
    raise ArgumentError, 'nil cannot be used as a default of a maybe type'
  else
    super
  end
end

def default?

Other tags:
    Api: - public

Returns:
  • (true) -
def default?
  true
end

def try(input = Undefined)

Other tags:
    Api: - public

Returns:
  • (Result::Success) -

Parameters:
  • input (Object) --
def try(input = Undefined)
  res = if input.equal?(Undefined)
          None()
        else
          Maybe(type[input])
        end
  Result::Success.new(res)
end