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, &block)

Other tags:
    Api: - private

Returns:
  • (Object) - value passed through {#type} or {#default} value

Parameters:
  • input (Object) --
def call_safe(input = Undefined, &block)
  if input.equal?(Undefined)
    evaluate
  else
    Undefined.default(type.call_safe(input, &block)) { 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?

Other tags:
    Api: - private

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

def constrained(...)

Other tags:
    Api: - public

Returns:
  • (Default) -

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

def default?

Other tags:
    Api: - public

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

def initialize(type, value, **)

Other tags:
    Api: - private

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

def try(input)

Other tags:
    Api: - public

Returns:
  • (Result::Success) -

Parameters:
  • input (Object) --
def try(input)
  success(call(input))
end

def valid?(value = Undefined)

Other tags:
    Api: - public

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