class Dry::Types::Maybe
@api public
Maybe extension provides Maybe types where values are wrapped using ‘Either` monad
def call_safe(input = Undefined, &block)
- 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)
- 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?
- Api: - public
Returns:
-
(true)
-
def default? true end
def try(input = Undefined)
- 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