class Dry::Types::Maybe
@api public
Maybe extension provides Maybe types where values are wrapped using ‘Either` monad
def call_safe(input = Undefined)
- Api: - private
Returns:
-
(Dry::Monads::Maybe)
-
Parameters:
-
input
(Dry::Monads::Maybe, Object
) --
def call_safe(input = Undefined) case input when ::Dry::Monads::Maybe input when Undefined None() else Maybe(type.call_safe(input) { |output = input| return yield(output) }) end end
def call_unsafe(input = Undefined)
- 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)
- 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? = true
- Api: - public
Returns:
-
(true)
-
def default? = true
def try(input = Undefined, &)
- Api: - public
Returns:
-
(Result::Success)
-
Parameters:
-
input
(Object
) --
def try(input = Undefined, &) result = type.try(input) if result.success? Result::Success.new(Maybe(result.input)) else result end end