dry-initializer 0.11.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +4 -61
  4. data/.travis.yml +18 -11
  5. data/CHANGELOG.md +108 -43
  6. data/Gemfile +1 -0
  7. data/Rakefile +6 -0
  8. data/benchmarks/options.rb +4 -4
  9. data/benchmarks/params.rb +1 -1
  10. data/benchmarks/profiler.rb +28 -0
  11. data/benchmarks/with_types.rb +5 -9
  12. data/benchmarks/with_types_and_defaults.rb +2 -4
  13. data/benchmarks/without_options.rb +3 -3
  14. data/dry-initializer.gemspec +1 -1
  15. data/lib/dry/initializer/attribute.rb +92 -0
  16. data/lib/dry/initializer/builder.rb +76 -72
  17. data/lib/dry/initializer/exceptions/default_value_error.rb +8 -0
  18. data/lib/dry/initializer/exceptions/params_order_error.rb +8 -0
  19. data/lib/dry/initializer/exceptions/type_constraint_error.rb +7 -0
  20. data/lib/dry/initializer/option.rb +62 -0
  21. data/lib/dry/initializer/param.rb +54 -0
  22. data/lib/dry/initializer.rb +77 -13
  23. data/spec/enhancement_spec.rb +18 -0
  24. data/spec/missed_default_spec.rb +2 -2
  25. data/spec/optional_spec.rb +16 -6
  26. data/spec/options_var_spec.rb +39 -0
  27. data/spec/repetitive_definitions_spec.rb +38 -18
  28. data/spec/several_assignments_spec.rb +41 -0
  29. data/spec/type_constraint_spec.rb +6 -5
  30. metadata +15 -20
  31. data/lib/dry/initializer/errors/default_value_error.rb +0 -6
  32. data/lib/dry/initializer/errors/order_error.rb +0 -7
  33. data/lib/dry/initializer/errors/plugin_error.rb +0 -6
  34. data/lib/dry/initializer/errors/redefinition_error.rb +0 -5
  35. data/lib/dry/initializer/errors/type_constraint_error.rb +0 -5
  36. data/lib/dry/initializer/errors.rb +0 -10
  37. data/lib/dry/initializer/mixin.rb +0 -77
  38. data/lib/dry/initializer/plugins/base.rb +0 -47
  39. data/lib/dry/initializer/plugins/default_proc.rb +0 -28
  40. data/lib/dry/initializer/plugins/signature.rb +0 -28
  41. data/lib/dry/initializer/plugins/type_constraint.rb +0 -21
  42. data/lib/dry/initializer/plugins/variable_setter.rb +0 -30
  43. data/lib/dry/initializer/plugins.rb +0 -10
  44. data/lib/dry/initializer/signature.rb +0 -61
  45. data/spec/plugin_registry_spec.rb +0 -45
  46. data/spec/renaming_options_spec.rb +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 604898d7c7112e84b0e097a2913e81ba54918e25
4
- data.tar.gz: 417c9a1e41b76162b12d7ce36dd19a156ca408e2
3
+ metadata.gz: 852519c02a938d27a827cff9c4cfd1e40c9c9dac
4
+ data.tar.gz: 94923136d38c0afbc74ffa76ed35c4074c9ba75b
5
5
  SHA512:
6
- metadata.gz: aec2d5e6f46522584d247e1c106eaab9bcec8b2787c4a827ddb24e1f533c81b242b3c04796207f97c4cb0a179d7581146e94495296f995e31b5a9e0a6c269ccf
7
- data.tar.gz: 0ee2c8d900d400312a8c8ddae17648e1b37d28edb61034a76b0c01e87b2ed740cb135281f391f2e3d3f6170ece71faa977772e463ed5603d8c7a1039d51a0948
6
+ metadata.gz: c4195fe8176762d89b1593f05cde79e4c249dda71ace60fb070a75f92222f344d349cc97b3567e032d3aa67ac4556e97bc4282133fac724ea655decc1a4e95e7
7
+ data.tar.gz: 0d50b2012d31467424ff6c232c5c3d8fff0e5d601eacf533c23f080933205aaa384948b98cc0831496ec6ac30b38697bf99554ef8d79b3f04f0922ef10de0b7e
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /*.gem
data/.rubocop.yml CHANGED
@@ -5,62 +5,24 @@ AllCops:
5
5
  StyleGuideCopsOnly: true
6
6
  TargetRubyVersion: 2.2
7
7
 
8
- Lint/HandleExceptions:
9
- Exclude:
10
- - spec/**/*_spec.rb
11
-
12
- Lint/RescueException:
13
- Exclude:
14
- - spec/**/*_spec.rb
15
-
16
- Metrics/LineLength:
17
- Max: 80
18
- Exclude:
19
- - spec/**/*_spec.rb
20
-
21
- Style/AccessorMethodName:
22
- Exclude:
23
- - spec/**/*_spec.rb
24
-
25
- Style/Alias:
26
- EnforcedStyle: prefer_alias_method
27
-
28
- Style/AsciiComments:
29
- Enabled: false
30
-
31
- Style/BlockDelimiters:
32
- Exclude:
33
- - spec/**/*_spec.rb
34
-
35
8
  Style/CaseEquality:
36
9
  Enabled: false
37
10
 
38
- Style/ClassAndModuleChildren:
39
- Enabled: false
40
-
41
- Style/Documentation:
11
+ Style/ClassVars:
42
12
  Enabled: false
43
13
 
44
14
  Style/DoubleNegation:
45
15
  Enabled: false
46
16
 
47
- Style/EmptyLinesAroundClassBody:
48
- Enabled: false
49
-
50
- Style/EmptyLinesAroundModuleBody:
51
- Enabled: false
52
-
53
- Style/EmptyLineBetweenDefs:
54
- Enabled: false
55
-
56
17
  Style/FileName:
57
- Enabled: false
18
+ Exclude:
19
+ - lib/dry-initializer.rb
58
20
 
59
21
  Style/Lambda:
60
22
  Exclude:
61
23
  - spec/**/*_spec.rb
62
24
 
63
- Style/ModuleFunction:
25
+ Style/LambdaCall:
64
26
  Enabled: false
65
27
 
66
28
  Style/RaiseArgs:
@@ -73,27 +35,8 @@ Style/Semicolon:
73
35
  Style/SignalException:
74
36
  EnforcedStyle: semantic
75
37
 
76
- Style/SingleLineBlockParams:
77
- Enabled: false
78
-
79
- Style/SingleLineMethods:
80
- Exclude:
81
- - spec/**/*_spec.rb
82
-
83
- Style/SpaceBeforeFirstArg:
84
- Enabled: false
85
-
86
- Style/SpecialGlobalVars:
87
- Exclude:
88
- - Gemfile
89
- - dry-initializer.gemspec
90
-
91
38
  Style/StringLiterals:
92
39
  EnforcedStyle: double_quotes
93
40
 
94
41
  Style/StringLiteralsInInterpolation:
95
42
  EnforcedStyle: double_quotes
96
-
97
- Style/TrivialAccessors:
98
- Exclude:
99
- - spec/**/*_spec.rb
data/.travis.yml CHANGED
@@ -1,20 +1,27 @@
1
1
  ---
2
- sudo: false
3
2
  language: ruby
4
- cache: bundler
3
+ sudo: false
4
+ cache: bundler
5
+ bundler_args: --without benchmarks tools
5
6
  script:
6
- - bundle exec rspec
7
- - bundle exec rubocop
7
+ - bundle exec rake spec
8
8
  rvm:
9
- - '2.2'
10
- - '2.3.0'
11
- - '2.4.0'
12
- # - rbx-2
9
+ - 2.2
10
+ - 2.3.0
11
+ - 2.4.0
12
+ - jruby-9000
13
+ - rbx-2
14
+ - rbx-3
13
15
  - ruby-head
14
- - jruby-9.1.0.0
15
- - jruby-head
16
- before_install: gem install bundler -v 1.12.5
16
+ env:
17
+ global:
18
+ - JRUBY_OPTS='--dev -J-Xmx1024M'
17
19
  matrix:
18
20
  allow_failures:
21
+ - rvm: rbx-2
22
+ - rvm: rbx-3
19
23
  - rvm: ruby-head
20
24
  - rvm: jruby-head
25
+ include:
26
+ - rvm: jruby-head
27
+ before_install: gem install bundler --no-ri --no-rdoc
data/CHANGELOG.md CHANGED
@@ -1,12 +1,77 @@
1
+ ## v1.1.0 2017-01-28
2
+
3
+ # Added:
4
+ - enhancement via `Dry::Initializer::Attribute.dispatchers` registry (nepalez)
5
+
6
+ # Register dispatcher for `:string` option
7
+ Dry::Initializer::Attribute.dispatchers << ->(string: nil, **op) do
8
+ string ? op.merge(type: proc(&:to_s)) : op
9
+ end
10
+
11
+ # Now you can use the `:string` key for `param` and `option`
12
+ class User
13
+ extend Dry::Initializer
14
+ param :name, string: true
15
+ end
16
+
17
+ User.new(:Andy).name # => "Andy"
18
+
19
+ # Internals:
20
+ - optimize assignments for performance (nepalez)
21
+
22
+ [Compare v1.0.0...v1.1.0](https://github.com/dry-rb/dry-initializer/compare/v1.0.0...v1.1.0)
23
+
24
+ ## v1.0.0 2017-01-22
25
+
26
+ In this version the code has been rewritten for simplicity
27
+
28
+ # BREAKING CHANGES
29
+ - when `param` or `option` was not defined, the corresponding **variable** is set to `Dry::Initializer::UNDEFINED`, but the **reader** (when defined) will return `nil` (nepalez)
30
+
31
+ # Added:
32
+ - support for reloading `param` and `option` definitions (nepalez)
33
+
34
+ class User
35
+ extend Dry::Initializer
36
+ param :name
37
+ param :phone, optional: true
38
+ end
39
+
40
+ User.new # => Boom!
41
+
42
+ class Admin < User
43
+ param :name, default: proc { 'Merlin' }
44
+ end
45
+
46
+ # order of the param not changed
47
+ Admin.new.name # => "Merlin"
48
+
49
+ - support for assignment of attributes via several options (nepalez)
50
+
51
+ class User
52
+ extend Dry::Initializer
53
+ option :phone
54
+ option :number, as: :phone
55
+ end
56
+
57
+ # Both ways provide the same result
58
+ User.new(phone: '1234567890').phone # => '1234567890'
59
+ User.new(number: '1234567890').phone # => '1234567890'
60
+
61
+ # Internals
62
+ - `Dry::Initializer` and `Dry::Initializer::Mixin` became aliases (nepalez)
63
+
64
+ [Compare v0.11.0...v1.0.0](https://github.com/dry-rb/dry-initializer/compare/v0.11.0...v1.0.0)
65
+
1
66
  ## v0.11.0 2017-01-02
2
67
 
3
68
  ### Added
4
69
 
5
- * Support of reloading `#initializer` with `super` (@nepalez)
70
+ * Support of reloading `#initializer` with `super` (nepalez)
6
71
 
7
72
  ### Internal
8
73
 
9
- * Refactor the way [#initializer] method is (re)defined (@nepalez)
74
+ * Refactor the way [#initializer] method is (re)defined (nepalez)
10
75
 
11
76
  When you extend class with `Dry::Initializer::Mixin`, the initializer is
12
77
  defined not "inside" the class per se, but inside the included module. The
@@ -37,11 +102,11 @@
37
102
 
38
103
  ### Added
39
104
 
40
- * Support of Ruby 2.4 (@flas-gordon)
105
+ * Support of Ruby 2.4 (flas-gordon)
41
106
 
42
107
  ### Internal
43
108
 
44
- * Code clearance for ROM integration (@flash-gordon)
109
+ * Code clearance for ROM integration (flash-gordon)
45
110
 
46
111
  [Compare v0.10.1...v0.10.2](https://github.com/dry-rb/dry-initializer/compare/v0.10.1...v0.10.2)
47
112
 
@@ -49,7 +114,7 @@
49
114
 
50
115
  ### Fixed
51
116
 
52
- * Wrong arity when there were no options and the last param had a default (@nolith)
117
+ * Wrong arity when there were no options and the last param had a default (nolith)
53
118
 
54
119
  [Compare v0.10.0...v0.10.1](https://github.com/dry-rb/dry-initializer/compare/v0.10.0...v0.10.1)
55
120
 
@@ -57,7 +122,7 @@
57
122
 
58
123
  ### Deleted (BREAKING CHANGE!)
59
124
 
60
- * Deprecated method DSL#using (@nepalez)
125
+ * Deprecated method DSL#using (nepalez)
61
126
 
62
127
  [Compare v0.9.3...v0.10.0](https://github.com/dry-rb/dry-initializer/compare/v0.9.3...v0.10.0)
63
128
 
@@ -67,11 +132,11 @@
67
132
 
68
133
  * After discussion in [PR #17](https://github.com/dry-rb/dry-initializer/pull/17)
69
134
  (many thanks to @sahal2080 and @hrom512 for starting that issue and PR),
70
- the method `using` is deprecated and will be removed from v0.10.0 (@nepalez)
135
+ the method `using` is deprecated and will be removed from v0.10.0 (nepalez)
71
136
 
72
137
  ### Fixed
73
138
 
74
- * Support of weird option names (@nepalez)
139
+ * Support of weird option names (nepalez)
75
140
 
76
141
  ```ruby
77
142
  option :"First name", as: :first_name
@@ -83,7 +148,7 @@
83
148
 
84
149
  ### Fixed
85
150
 
86
- * Validation of attributes (params and options) (@nepalez)
151
+ * Validation of attributes (params and options) (nepalez)
87
152
 
88
153
  [Compare v0.9.1...v0.9.2](https://github.com/dry-rb/dry-initializer/compare/v0.9.1...v0.9.2)
89
154
 
@@ -91,7 +156,7 @@
91
156
 
92
157
  ### Added
93
158
 
94
- * Support for renaming an option during initialization (@nepalez)
159
+ * Support for renaming an option during initialization (nepalez)
95
160
 
96
161
  option :name, as: :username # to take :name option and create :username attribute
97
162
 
@@ -101,21 +166,21 @@
101
166
 
102
167
  ### Added
103
168
 
104
- * The method `#initialize` is defined when a class extended the module (@nepalez)
169
+ * The method `#initialize` is defined when a class extended the module (nepalez)
105
170
 
106
171
  In previous versions the method was defined only by `param` and `option` calls.
107
172
 
108
173
  ### Breaking Changes
109
174
 
110
- * The initializer accepts any option (but skips unknown) from the very beginning (@nepalez)
175
+ * The initializer accepts any option (but skips unknown) from the very beginning (nepalez)
111
176
 
112
177
  ### Deleted
113
178
 
114
- * Deprecated methods `tolerant_to_unknown_options` and `intolerant_to_unknown_options` (@nepalez)
179
+ * Deprecated methods `tolerant_to_unknown_options` and `intolerant_to_unknown_options` (nepalez)
115
180
 
116
181
  ### Internal
117
182
 
118
- * Refactor scope (`using`) to support methods renaming and aliasing (@nepalez)
183
+ * Refactor scope (`using`) to support methods renaming and aliasing (nepalez)
119
184
 
120
185
  [Compare v0.8.1...v0.9.0](https://github.com/dry-rb/dry-initializer/compare/v0.8.1...v0.9.0)
121
186
 
@@ -123,7 +188,7 @@
123
188
 
124
189
  ### Added
125
190
 
126
- * Support for `dry-struct`ish syntax for constraints (type as a second parameter) (@nepalez)
191
+ * Support for `dry-struct`ish syntax for constraints (type as a second parameter) (nepalez)
127
192
 
128
193
  option :name, Dry::Types['strict.string']
129
194
 
@@ -158,11 +223,11 @@ are deprecated and will be removed in the next version of the gem.
158
223
 
159
224
  ### Added
160
225
 
161
- * support for special options like `option :end`, `option :begin` etc. (@nepalez)
226
+ * support for special options like `option :end`, `option :begin` etc. (nepalez)
162
227
 
163
228
  ### Internals
164
229
 
165
- * switched from key arguments to serialized hash argument in the initializer (@nepalez)
230
+ * switched from key arguments to serialized hash argument in the initializer (nepalez)
166
231
 
167
232
  ### Breaking Changes
168
233
 
@@ -183,7 +248,7 @@ are deprecated and will be removed in the next version of the gem.
183
248
 
184
249
  ### Added
185
250
 
186
- * Shared settings with `#using` method (@nepalez)
251
+ * Shared settings with `#using` method (nepalez)
187
252
 
188
253
  [Compare v0.6.0...v0.7.0](https://github.com/dry-rb/dry-initializer/compare/v0.6.0...v0.7.0)
189
254
 
@@ -191,7 +256,7 @@ are deprecated and will be removed in the next version of the gem.
191
256
 
192
257
  ### Added
193
258
 
194
- * Support for private and protected readers in the `reader:` option (@jmgarnier)
259
+ * Support for private and protected readers in the `reader:` option (jmgarnier)
195
260
 
196
261
  [Compare v0.5.0...v0.6.0](https://github.com/dry-rb/dry-initializer/compare/v0.5.0...v0.6.0)
197
262
 
@@ -199,7 +264,7 @@ are deprecated and will be removed in the next version of the gem.
199
264
 
200
265
  ### Added
201
266
 
202
- * Allow `optional` attribute to be left undefined (@nepalez)
267
+ * Allow `optional` attribute to be left undefined (nepalez)
203
268
 
204
269
  [Compare v0.4.0...v0.5.0](https://github.com/dry-rb/dry-initializer/compare/v0.4.0...v0.5.0)
205
270
 
@@ -207,13 +272,13 @@ are deprecated and will be removed in the next version of the gem.
207
272
 
208
273
  ### Deleted (backward-incompatible changes)
209
274
 
210
- * Support of modules and case equality as type constraints (@nepalez)
275
+ * Support of modules and case equality as type constraints (nepalez)
211
276
 
212
277
  [Compare v0.3.3...v0.4.0](https://github.com/dry-rb/dry-initializer/compare/v0.3.3...v0.4.0)
213
278
 
214
279
  ## v0.3.3 2016-05-28
215
280
 
216
- * Add deprecation warnings about modules and case equality as type constraints (@nepalez)
281
+ * Add deprecation warnings about modules and case equality as type constraints (nepalez)
217
282
 
218
283
  [Compare v0.3.2...v0.3.3](https://github.com/dry-rb/dry-initializer/compare/v0.3.2...v0.3.3)
219
284
 
@@ -221,7 +286,7 @@ are deprecated and will be removed in the next version of the gem.
221
286
 
222
287
  ### Bugs Fixed
223
288
 
224
- * Add explicit requirement for ruby 'set' (@rickenharp)
289
+ * Add explicit requirement for ruby 'set' (rickenharp)
225
290
 
226
291
  [Compare v0.3.1...v0.3.2](https://github.com/dry-rb/dry-initializer/compare/v0.3.1...v0.3.2)
227
292
 
@@ -229,7 +294,7 @@ are deprecated and will be removed in the next version of the gem.
229
294
 
230
295
  ### Added
231
296
 
232
- * Support for tolerance to unknown options (@nepalez)
297
+ * Support for tolerance to unknown options (nepalez)
233
298
 
234
299
  [Compare v0.3.0...v0.3.1](https://github.com/dry-rb/dry-initializer/compare/v0.3.0...v0.3.1)
235
300
 
@@ -256,20 +321,20 @@ its method #register doesn't mutate the builder instance.
256
321
 
257
322
  ### Changed (backward-incompatible changes)
258
323
 
259
- * Made Mixin##initializer_builder method private (@nepalez)
260
- * Add Mixin#register_initializer_plugin(plugin) method (@nepalez)
324
+ * Made Mixin##initializer_builder method private (nepalez)
325
+ * Add Mixin#register_initializer_plugin(plugin) method (nepalez)
261
326
 
262
327
  ### Bugs Fixed
263
328
 
264
- * Prevent plugin's registry from polluting superclass (@nepalez)
329
+ * Prevent plugin's registry from polluting superclass (nepalez)
265
330
 
266
331
  [Compare v0.2.1...v0.3.0](https://github.com/dry-rb/dry-initializer/compare/v0.2.1...v0.3.0)
267
332
 
268
333
  ### Internals
269
334
 
270
- * Make all instances (Builder and Signature) immutable (@nepalez)
271
- * Decouple mixin from a builder to prevent pollution (@nepalez)
272
- * Ensure default value block can use private variables (@jeremyf)
335
+ * Make all instances (Builder and Signature) immutable (nepalez)
336
+ * Decouple mixin from a builder to prevent pollution (nepalez)
337
+ * Ensure default value block can use private variables (jeremyf)
273
338
 
274
339
  [Compare v0.2.0...v0.2.1](https://github.com/dry-rb/dry-initializer/compare/v0.2.0...v0.2.1)
275
340
 
@@ -277,13 +342,13 @@ its method #register doesn't mutate the builder instance.
277
342
 
278
343
  ### Bugs Fixed
279
344
 
280
- * Fix polluting superclass with declarations from subclass (@nepalez)
345
+ * Fix polluting superclass with declarations from subclass (nepalez)
281
346
 
282
347
  ### Internals
283
348
 
284
- * Make all instances (Builder and Signature) immutable (@nepalez)
285
- * Decouple mixin from a builder to prevent pollution (@nepalez)
286
- * Ensure default value block can use private variables (@jeremyf)
349
+ * Make all instances (Builder and Signature) immutable (nepalez)
350
+ * Decouple mixin from a builder to prevent pollution (nepalez)
351
+ * Ensure default value block can use private variables (jeremyf)
287
352
 
288
353
  [Compare v0.2.0...v0.2.1](https://github.com/dry-rb/dry-initializer/compare/v0.2.0...v0.2.1)
289
354
 
@@ -300,14 +365,14 @@ Default assignments became slower (while plain type constraint are not)!
300
365
 
301
366
  ### Changed (backward-incompatible changes)
302
367
 
303
- * Make dry-types constraint to coerce variables (@nepalez)
368
+ * Make dry-types constraint to coerce variables (nepalez)
304
369
 
305
370
  ```ruby
306
371
  # This will coerce `name: :foo` to `"foo"`
307
372
  option :name, type: Dry::Types::Coercible::String
308
373
  ```
309
374
 
310
- * Stop supporing proc type constraint (@nepalez)
375
+ * Stop supporing proc type constraint (nepalez)
311
376
 
312
377
  ```ruby
313
378
  option :name, type: ->(v) { String === v } # this does NOT work any more
@@ -328,19 +393,19 @@ Default assignments became slower (while plain type constraint are not)!
328
393
 
329
394
  ### Added
330
395
 
331
- * Support type constraint via every object's case equality (@nepalez)
396
+ * Support type constraint via every object's case equality (nepalez)
332
397
 
333
398
  ```ruby
334
399
  option :name, type: /foo/
335
400
  option :name, type: (1...14)
336
401
  ```
337
402
 
338
- * Support defaults and type constraints for the "container" syntax (@nepalez)
339
- * Support adding extensions via plugin system (@nepalez)
403
+ * Support defaults and type constraints for the "container" syntax (nepalez)
404
+ * Support adding extensions via plugin system (nepalez)
340
405
 
341
406
  ### Internal
342
407
 
343
- * Private method `##__after_initialize__` is added by the `Mixin` along with `#initialize` (@nepalez)
408
+ * Private method `##__after_initialize__` is added by the `Mixin` along with `#initialize` (nepalez)
344
409
 
345
410
  The previous implementation required defaults and types to be stored in the class method `.initializer_builder`.
346
411
  That made "container" syntax to support neither defaults nor types.
@@ -356,7 +421,7 @@ Default assignments became slower (while plain type constraint are not)!
356
421
 
357
422
  ### Added
358
423
 
359
- * `include Dry::Initializer.define -> do ... end` syntax (@flash-gordon)
424
+ * `include Dry::Initializer.define -> do ... end` syntax (flash-gordon)
360
425
 
361
426
  [Compare v0.1.0...v0.1.1](https://github.com/dry-rb/dry-initializer/compare/v0.1.0...v0.1.1)
362
427
 
@@ -367,11 +432,11 @@ Backward compatibility is broken.
367
432
 
368
433
  ### Changed (backward-incompatible changes)
369
434
 
370
- * Use `extend Dry::Initializer::Mixin` instead of `extend Dry::Initializer` (@nepalez)
435
+ * Use `extend Dry::Initializer::Mixin` instead of `extend Dry::Initializer` (nepalez)
371
436
 
372
437
  ### Added
373
438
 
374
- * Use `include Dry::Initializer.define(&block)` as an alternative to extending the class (@nepalez)
439
+ * Use `include Dry::Initializer.define(&block)` as an alternative to extending the class (nepalez)
375
440
 
376
441
  [Compare v0.0.1...v0.1.0](https://github.com/dry-rb/dry-initializer/compare/v0.0.1...v0.1.0)
377
442