class Dry::Types::Default

@api public
Default types are useful when a missing value should be replaced by a default one

def self.[](value)

Other tags:
    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, &)

Other tags:
    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)

Other tags:
    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

Other tags:
    Api: - private

Returns:
  • (false) -
def callable? = false

def constrained(...) = type.constrained(...).default(value)

Other tags:
    Api: - public

Returns:
  • (Default) -

Parameters:
  • args (Array) -- see {Dry::Types::Builder#constrained}
def constrained(...) = type.constrained(...).default(value)

def default? = true

Other tags:
    Api: - public

Returns:
  • (true) -
def default? = true

def initialize(type, value, **)

Other tags:
    Api: - private

Parameters:
  • value (Object) --
  • type (Type) --
def initialize(type, value, **)
  super
  @value = value
end

def try(input = Undefined, &)

Other tags:
    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

Other tags:
    Api: - public

Returns:
  • (Boolean) -
def valid?(value = Undefined) = Undefined.equal?(value) || super