module Dry::Initializer::DSL
Module-level DSL
Attributes
null[R]
Setting for null (undefined value) @return [nil, Dry::Initializer::UNDEFINED]
Private Class Methods
extended(mod)
click to toggle source
# File lib/dry/initializer/dsl.rb, line 45 def extended(mod) mod.instance_variable_set :@null, UNDEFINED end
Public Instance Methods
[](undefined: true, **)
click to toggle source
Returns a version of the module with custom settings @option settings [Boolean] :undefined
If unassigned params and options should be treated different from nil
@return [Dry::Initializer]
# File lib/dry/initializer/dsl.rb, line 15 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
define(procedure = nil, &block)
click to toggle source
Returns mixin module to be included to target class by hand @return [Module] @yield proc defining params and options
# File lib/dry/initializer/dsl.rb, line 27 def define(procedure = nil, &block) config = Config.new(null: null) config.instance_exec(&(procedure || block)) config.mixin.include Mixin::Root config.mixin end
Private Instance Methods
extended(klass)
click to toggle source
# File lib/dry/initializer/dsl.rb, line 36 def extended(klass) config = Config.new(klass, null: null) klass.send :instance_variable_set, :@dry_initializer, config klass.include Mixin::Root end