Module: Dry::Initializer
- Defined in:
- lib/dry/initializer.rb,
lib/dry/initializer/param.rb,
lib/dry/initializer/option.rb,
lib/dry/initializer/builder.rb,
lib/dry/initializer/attribute.rb,
lib/dry/initializer/exceptions/params_order_error.rb,
lib/dry/initializer/exceptions/default_value_error.rb,
lib/dry/initializer/exceptions/type_constraint_error.rb
Defined Under Namespace
Classes: Attribute, Builder, DefaultValueError, Option, Param, ParamsOrderError, TypeConstraintError
Constant Summary
collapse
- Mixin =
rubocop: disable Style/ConstantName
self
- UNDEFINED =
rubocop: enable Style/ConstantName
Object.new.tap do |obj|
obj.define_singleton_method(:inspect) { "Dry::Initializer::UNDEFINED" }
end.freeze
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.define(fn = nil, &block) ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/dry/initializer.rb', line 33
def define(fn = nil, &block)
mixin = Module.new do
def initialize(*args)
__initialize__(*args)
end
end
builder = Builder.new
builder.instance_exec(&(fn || block))
builder.call(mixin)
mixin
end
|
.extended(klass) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/dry/initializer.rb', line 21
def extended(klass)
super
mixin = klass.send(:__initializer_mixin__)
builder = klass.send(:__initializer_builder__)
builder.call(mixin)
klass.include(mixin)
klass.send(:define_method, :initialize) do |*args|
__initialize__(*args)
end
end
|
.mixin(fn = nil, &block) ⇒ Object
46
47
48
|
# File 'lib/dry/initializer.rb', line 46
def mixin(fn = nil, &block)
define(fn, &block)
end
|
Instance Method Details
#option(*args) ⇒ Object
55
56
57
|
# File 'lib/dry/initializer.rb', line 55
def option(*args)
__initializer_builder__.option(*args).call(__initializer_mixin__)
end
|
#param(*args) ⇒ Object
51
52
53
|
# File 'lib/dry/initializer.rb', line 51
def param(*args)
__initializer_builder__.param(*args).call(__initializer_mixin__)
end
|