class Dry::Types::Default
Default
types are useful when a missing value should be replaced by a default one
@api public
Attributes
evaluate[R]
@return [Object]
value[R]
@return [Object]
Public Class Methods
[](value)
click to toggle source
@param [Object, call
] value
@return [Class] {Default} or {Default::Callable}
@api private
# File lib/dry/types/default.rb, line 41 def self.[](value) if value.respond_to?(:call) Callable else self end end
new(type, value, **)
click to toggle source
@param [Type] type @param [Object] value
@api private
Calls superclass method
Dry::Types::Decorator::new
# File lib/dry/types/default.rb, line 53 def initialize(type, value, **) super @value = value end
Public Instance Methods
call_safe(input = Undefined, &block)
click to toggle source
@param [Object] input
@return [Object] value passed through {#type} or {#default} value
@api private
# File lib/dry/types/default.rb, line 110 def call_safe(input = Undefined, &block) if input.equal?(Undefined) evaluate else Undefined.default(type.call_safe(input, &block)) { evaluate } end end
call_unsafe(input = Undefined)
click to toggle source
@param [Object] input
@return [Object] value passed through {#type} or {#default} value
@api private
# File lib/dry/types/default.rb, line 97 def call_unsafe(input = Undefined) if input.equal?(Undefined) evaluate else Undefined.default(type.call_unsafe(input)) { evaluate } end end
callable?()
click to toggle source
@return [false]
@api private
# File lib/dry/types/default.rb, line 121 def callable? false end
constrained(...)
click to toggle source
Build a constrained type
@param [Array] args see {Dry::Types::Builder#constrained}
@return [Default]
@api public
# File lib/dry/types/default.rb, line 65 def constrained(...) type.constrained(...).default(value) end
default?()
click to toggle source
@return [true]
@api public
# File lib/dry/types/default.rb, line 72 def default? true end
try(input)
click to toggle source
@param [Object] input
@return [Result::Success]
@api public
# File lib/dry/types/default.rb, line 81 def try(input) success(call(input)) end
valid?(value = Undefined)
click to toggle source
@return [Boolean]
@api public
Calls superclass method
Dry::Types::Type#valid?
# File lib/dry/types/default.rb, line 88 def valid?(value = Undefined) Undefined.equal?(value) || super end