class Dry::Types::Default
@api public
Default types are useful when a missing value should be replaced by a default one
def self.[](value)
- Api: - private
Returns:
-
(Class)
- {Default} or {Default::Callable}
Parameters:
-
value
(Object, #call
) --
def self.[](value) if value.respond_to?(:call) Callable else self end end
def call_safe(input = Undefined, &)
- Api: - private
Returns:
-
(Object)
- value passed through {#type} or {#default} value
Parameters:
-
input
(Object
) --
def call_safe(input = Undefined, &) if input.equal?(Undefined) evaluate else Undefined.default(type.call_safe(input, &)) { evaluate } end end
def call_unsafe(input = Undefined)
- Api: - private
Returns:
-
(Object)
- value passed through {#type} or {#default} value
Parameters:
-
input
(Object
) --
def call_unsafe(input = Undefined) if input.equal?(Undefined) evaluate else Undefined.default(type.call_unsafe(input)) { evaluate } end end
def callable? = false
- Api: - private
Returns:
-
(false)
-
def callable? = false
def constrained(...) = type.constrained(...).default(value)
- Api: - public
Returns:
-
(Default)
-
Parameters:
-
args
(Array
) -- see {Dry::Types::Builder#constrained}
def constrained(...) = type.constrained(...).default(value)
def default? = true
- Api: - public
Returns:
-
(true)
-
def default? = true
def initialize(type, value, **)
- Api: - private
Parameters:
-
value
(Object
) -- -
type
(Type
) --
def initialize(type, value, **) super @value = value end
def try(input = Undefined, &)
- Api: - public
Returns:
-
(Result::Success)
-
Parameters:
-
input
(Object
) --
def try(input = Undefined, &) if input.equal?(Undefined) success(evaluate) else type.try(input) end end
def valid?(value = Undefined) = Undefined.equal?(value) || super
- Api: - public
Returns:
-
(Boolean)
-
def valid?(value = Undefined) = Undefined.equal?(value) || super