module Dry::Initializer::DSL

def [](undefined: true, **)

Returns:
  • (Dry::Initializer) -

Options Hash: (**settings)
  • :undefined (Boolean) --
def [](undefined: true, **)
  null = undefined == false ? nil : UNDEFINED
  Module.new.tap do |mod|
    mod.extend DSL
    mod.include self
    mod.send(:instance_variable_set, :@null, null)
  end
end

def define(procedure = nil, &block)

Other tags:
    Yield: - proc defining params and options

Returns:
  • (Module) -
def define(procedure = nil, &block)
  config = Config.new(null:)
  config.instance_exec(&procedure || block)
  config.mixin.include Mixin::Root
  config.mixin
end

def extended(klass)

def extended(klass)
  config = Config.new(klass, null:)
  klass.send :instance_variable_set, :@dry_initializer, config
  klass.include Mixin::Root
end

def extended(mod)

def extended(mod)
  mod.instance_variable_set :@null, UNDEFINED
end