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