class Dry::Initializer::Plugins::DefaultProc

to assign a default value to the argument
Builds a block to be evaluated by initializer (after_initialize)

def call

def call
  return unless default
  ivar = :"@#{name}"
  default_proc = default
  proc do
    if instance_variable_get(ivar) == Dry::Initializer::UNDEFINED
      instance_variable_set ivar, instance_eval(&default_proc)
    end
  end
end

def default

def default
  return unless settings.key? :default
  @default ||= settings[:default].tap do |value|
    fail DefaultValueError.new(name, value) unless Proc === value
  end
end