dry-schema 1.4.3 → 1.5.4

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +219 -97
  3. data/config/errors.yml +4 -0
  4. data/dry-schema.gemspec +46 -0
  5. data/lib/dry-schema.rb +1 -1
  6. data/lib/dry/schema.rb +19 -6
  7. data/lib/dry/schema/compiler.rb +5 -5
  8. data/lib/dry/schema/config.rb +15 -6
  9. data/lib/dry/schema/constants.rb +16 -7
  10. data/lib/dry/schema/dsl.rb +87 -27
  11. data/lib/dry/schema/extensions.rb +10 -2
  12. data/lib/dry/schema/extensions/hints.rb +15 -8
  13. data/lib/dry/schema/extensions/hints/message_compiler_methods.rb +1 -1
  14. data/lib/dry/schema/extensions/hints/message_set_methods.rb +0 -47
  15. data/lib/dry/schema/extensions/info.rb +27 -0
  16. data/lib/dry/schema/extensions/info/schema_compiler.rb +105 -0
  17. data/lib/dry/schema/extensions/monads.rb +1 -1
  18. data/lib/dry/schema/extensions/struct.rb +32 -0
  19. data/lib/dry/schema/json.rb +1 -1
  20. data/lib/dry/schema/key.rb +16 -1
  21. data/lib/dry/schema/key_coercer.rb +4 -4
  22. data/lib/dry/schema/key_map.rb +9 -4
  23. data/lib/dry/schema/key_validator.rb +67 -0
  24. data/lib/dry/schema/macros.rb +8 -8
  25. data/lib/dry/schema/macros/array.rb +17 -4
  26. data/lib/dry/schema/macros/core.rb +9 -4
  27. data/lib/dry/schema/macros/dsl.rb +34 -19
  28. data/lib/dry/schema/macros/each.rb +4 -4
  29. data/lib/dry/schema/macros/filled.rb +5 -5
  30. data/lib/dry/schema/macros/hash.rb +21 -3
  31. data/lib/dry/schema/macros/key.rb +9 -9
  32. data/lib/dry/schema/macros/maybe.rb +3 -3
  33. data/lib/dry/schema/macros/optional.rb +1 -1
  34. data/lib/dry/schema/macros/required.rb +1 -1
  35. data/lib/dry/schema/macros/schema.rb +23 -2
  36. data/lib/dry/schema/macros/value.rb +32 -10
  37. data/lib/dry/schema/message.rb +35 -9
  38. data/lib/dry/schema/message/or.rb +18 -39
  39. data/lib/dry/schema/message/or/abstract.rb +28 -0
  40. data/lib/dry/schema/message/or/multi_path.rb +37 -0
  41. data/lib/dry/schema/message/or/single_path.rb +64 -0
  42. data/lib/dry/schema/message_compiler.rb +55 -19
  43. data/lib/dry/schema/message_compiler/visitor_opts.rb +2 -2
  44. data/lib/dry/schema/message_set.rb +25 -36
  45. data/lib/dry/schema/messages.rb +6 -6
  46. data/lib/dry/schema/messages/abstract.rb +54 -56
  47. data/lib/dry/schema/messages/i18n.rb +29 -27
  48. data/lib/dry/schema/messages/namespaced.rb +12 -2
  49. data/lib/dry/schema/messages/template.rb +19 -44
  50. data/lib/dry/schema/messages/yaml.rb +60 -13
  51. data/lib/dry/schema/params.rb +1 -1
  52. data/lib/dry/schema/path.rb +44 -5
  53. data/lib/dry/schema/predicate.rb +4 -2
  54. data/lib/dry/schema/predicate_inferrer.rb +4 -184
  55. data/lib/dry/schema/predicate_registry.rb +2 -2
  56. data/lib/dry/schema/primitive_inferrer.rb +16 -0
  57. data/lib/dry/schema/processor.rb +49 -28
  58. data/lib/dry/schema/processor_steps.rb +50 -27
  59. data/lib/dry/schema/result.rb +44 -6
  60. data/lib/dry/schema/rule_applier.rb +7 -7
  61. data/lib/dry/schema/step.rb +79 -0
  62. data/lib/dry/schema/trace.rb +5 -4
  63. data/lib/dry/schema/type_container.rb +3 -3
  64. data/lib/dry/schema/type_registry.rb +2 -2
  65. data/lib/dry/schema/types.rb +1 -1
  66. data/lib/dry/schema/value_coercer.rb +2 -2
  67. data/lib/dry/schema/version.rb +1 -1
  68. metadata +22 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e079ef300d87844185052fe2a2c3e42230d29aefd409ec0acf6b9a45d3f296f5
4
- data.tar.gz: cf34b9651357525e874109f4533e8c23c2f682ca33ffe90da0e789037491cfe2
3
+ metadata.gz: c6bd0ccbd94f361dc0e001b71fc4d1dbd76d00605a4d57c7e6fe06788235c0f0
4
+ data.tar.gz: 29b3eb25a1ede9775dd331752a6abc51d2fd617764e14611899e8b07fb6f7ee8
5
5
  SHA512:
6
- metadata.gz: 8bb4f328f94be77fcdeb4791c5227d694a93522880dbc7ed48684033e83f37ce62da9627820d2ba53606f231ac6e5add562a1d2cd502a851b8bab8415e748882
7
- data.tar.gz: 1866a985a5bc45eb84c8670c8b67b209fd3397f656a82080debcc7cfa8a29284e7de6528a1b662eeafd61f0bbe2094328401ede95f381be7c765322de782690d
6
+ metadata.gz: 96f5e58a3ae138e6461d33e7e2bd030655191a6f8132c0d5adada3195d35f03b011b94d79c085fe0567a299caf63859349948ee0d8e06b73ac0a7a480f6d2db9
7
+ data.tar.gz: c89a7b623c5ac5fc1cad6b880a4c02b892af9efad76c99e7803b0e0115a26445cf1d35d1bba4518f0186fc4d36fa6a8bf26de64ed9e9f74513f35b1e7aac04f4
@@ -1,62 +1,160 @@
1
- # 1.4.3 2020-01-08
1
+ ## 1.5.4
2
+
3
+ 2020-09-03
4
+
5
+ ### Fixed
6
+
7
+ - Key validation works correctly with a non-nested maybe hashes (issue #311 fixed via #312) (@svobom57)
8
+
9
+
10
+ [Compare v1.5.3...master](https://github.com/dry-rb/dry-schema/compare/v1.5.3...master)
11
+
12
+ ## 1.5.3 2020-08-21
13
+
14
+
15
+ ### Fixed
16
+
17
+ - Key validator works correctly with an array with maybe hash as its member (issue #308 fixed via #309) (@tadeusz-niemiec)
18
+
19
+ ### Changed
20
+
21
+ - [info extension] small performance improvement in the set visitor (see #305 for more details) (@esparta)
22
+
23
+ [Compare v1.5.2...v1.5.3](https://github.com/dry-rb/dry-schema/compare/v1.5.2...v1.5.3)
24
+
25
+ ## 1.5.2 2020-06-26
26
+
27
+
28
+ ### Fixed
29
+
30
+ - `Result#{success?,failure?}` work as expected when there are only key validation failures (issue #297 fixed via #298) (@adamransom)
31
+
32
+ ### Changed
33
+
34
+ - Using `full` option no longer adds a space between the name of a key and the message in case of languages that have no spaces between words (ie Japanese) (issue #161 closed via #292 by @tadeusz-niemiec)
35
+
36
+ [Compare v1.5.1...v1.5.2](https://github.com/dry-rb/dry-schema/compare/v1.5.1...v1.5.2)
37
+
38
+ ## 1.5.1 2020-05-21
39
+
40
+
41
+ ### Fixed
42
+
43
+ - Negated predicates support the logic operator API now (fixed via #276 by @solnic)
44
+ - Fixed circular require warning (issue #279 closed via #282 by @landongrindheim)
45
+ - Validating keys against an array with non-hash members no longer crashes (issue #283 fixed via #284 by @beechnut and issue #289 fixed via #288 by @tadeusz-niemiec)
46
+
47
+
48
+ [Compare v1.5.0...v1.5.1](https://github.com/dry-rb/dry-schema/compare/v1.5.0...v1.5.1)
49
+
50
+ ## 1.5.0 2020-03-11
51
+
2
52
 
3
53
  ### Added
4
54
 
5
- * Pattern matching for `Dry::Schema::Result` objects (@flash-gordon)
6
- ```ruby
7
- schema = Dry::Schema::Params { required(:name).filled }
8
- case schema.('name' => 'John')
9
- in name:
10
- name # => 'John'
11
- end
12
- ```
13
- Try it with monads!
14
- * Shortcut for nested schemas in `value` and `maybe` macros (@waiting-for-dev)
15
- ```ruby
16
- Dry::Schema.Params do
17
- required(:address).value(:hash) do
18
- required(:city).filled
19
- end
20
- end
21
- ```
55
+ - Support for complex sum types ie `value([:integer, array[:integer])` (issue #214) (@solnic)
56
+ - You can now set global config via `Dry::Schema.config` (issue #205) (@robhanlon22)
57
+ - Default error message for `:uuid_v4?` predicate (isssue #230) (@solnic)
58
+ - [experimental] you can compose schemas in the DSL using the standard logic operators (issue #231 closed via #245) (@solnic)
59
+ - Hash schema type can now be used with proper keys and predicates inferring. Constructor
60
+ and default types are explicitly not supported (@flash-gordon)
61
+ ```ruby
62
+ UserType = Dry::Types['hash'].schema(
63
+ name: 'string',
64
+ email: 'string'
65
+ )
66
+
67
+ Dry::Schema.define do
68
+ require(:user).hash(UserType)
69
+ end
70
+ ```
71
+ - `:struct` extension which allows using dry-struct classes as source for hash schemas. Note that output will still be presented as plain hashes, returning structs from schemas will require more work, it's planned for next versions (@flash-gordon)
72
+ - `:info` extension which adds #info method to your schemas which produces a simple hash providing information about keys and types (issue #36 closed via #262) (@solnic)
22
73
 
23
74
  ### Fixed
24
75
 
25
- * Some keyword warnings that slipped into the previous release (@flash-gordon)
76
+ - `maybe` macro in JSON schemas no longer converts empty strings to `nil`.
77
+ This was a bug in dry-types but your code may rely on this behavior. If you still
78
+ require this behavior, we recommend using a custom type (see Advanced -> Custom types in the docs) (@flash-gordon)
79
+ - YAML message backend no longer crashes when load_paths are empty (@robhanlon22)
80
+ - Callbacks can now be inherited from multiple parents (@skryukov)
81
+ - Callbacks work with nested schemas (issue #209) (@solnic)
82
+ - Custom type is respected when defining nested schemas (issue #174 closed via 263) (@solnic)
83
+ - Key map is properly inferred for maybe-hashes (issue #266 fixed via #269) (@solnic)
84
+
85
+ ### Changed
86
+
87
+ - `:i18n` message backend delegates interpolation and caching to `I18n` (issue #211) (@robhanlon22)
88
+ - Raise ArgumentError in DSL if parent DSL configs differ (@robhanlon22)
89
+ - (internal) `PredicateInferrer` was removed. `Dry::Types::PredicateInferrer` is a drop-in replacement (@flash-gordon)
90
+
91
+ [Compare v1.4.3...v1.5.0](https://github.com/dry-rb/dry-schema/compare/v1.4.3...v1.5.0)
92
+
93
+ ## 1.4.3 2020-01-08
94
+
95
+
96
+ ### Added
97
+
98
+ - Pattern matching for `Dry::Schema::Result` objects (@flash-gordon)
99
+ ```ruby
100
+ schema = Dry::Schema::Params { required(:name).filled }
101
+ case schema.('name' => 'John')
102
+ in name:
103
+ name # => 'John'
104
+ end
105
+ ```
106
+ Try it with monads!
107
+ - Shortcut for nested schemas in `value` and `maybe` macros (@waiting-for-dev)
108
+ ```ruby
109
+ Dry::Schema.Params do
110
+ required(:address).value(:hash) do
111
+ required(:city).filled
112
+ end
113
+ end
114
+ ```
115
+
116
+ ### Fixed
117
+
118
+ - Some keyword warnings that slipped into the previous release (@flash-gordon)
119
+
26
120
 
27
121
  [Compare v1.4.2...v1.4.3](https://github.com/dry-rb/dry-schema/compare/v1.4.2...v1.4.3)
28
122
 
29
- # 1.4.2 2019-12-19
123
+ ## 1.4.2 2019-12-19
124
+
30
125
 
31
126
  ### Fixed
32
127
 
33
- * `I18n` messages backend supports procs as text properly (issue #208) (@robhanlon22)
34
- * `I18n` messages backend supports message meta-data (issue #210) (@robhanlon22)
35
- * Fixed keyword warnings from MRI 2.7.0 (@flash-gordon)
36
- * Array with a member works correctly with `maybe` (issue #206) (@solnic)
128
+ - `I18n` messages backend supports procs as text properly (issue #208) (@robhanlon22)
129
+ - `I18n` messages backend supports message meta-data (issue #210) (@robhanlon22)
130
+ - Fixed keyword warnings from MRI 2.7.0 (@flash-gordon)
131
+ - Array with a member works correctly with `maybe` (issue #206) (@solnic)
132
+
37
133
 
38
134
  [Compare v1.4.1...v1.4.2](https://github.com/dry-rb/dry-schema/compare/v1.4.1...v1.4.2)
39
135
 
40
- # 1.4.1 2019-10-08
136
+ ## 1.4.1 2019-10-08
137
+
41
138
 
42
139
  ### Fixed
43
140
 
44
141
  - Child schemas no longer mutate processing steps of their parent classes (@skryukov)
45
142
 
143
+
46
144
  [Compare v1.4.0...v1.4.1](https://github.com/dry-rb/dry-schema/compare/v1.4.0...v1.4.1)
47
145
 
48
- # 1.4.0 2019-10-08
146
+ ## 1.4.0 2019-10-08
147
+
49
148
 
50
149
  ### Added
51
150
 
52
151
  - Support for passing multiple parent schemas. They are inherited from left to right (@ianwhite)
53
152
 
54
- ```ruby
55
- Dry::Schema.define(parent: [parent_a, parent_b, parent_c]) do
56
- ...
57
- end
58
- ```
59
-
153
+ ```ruby
154
+ Dry::Schema.define(parent: [parent_a, parent_b, parent_c]) do
155
+ ...
156
+ end
157
+ ```
60
158
  - Improved error messages about missing translations (@skryukov)
61
159
  - [experimental] before/after callbacks for schema steps (@skryukov)
62
160
 
@@ -75,17 +173,21 @@
75
173
 
76
174
  - Added/fixed support for custom optional types (@flash-gordon)
77
175
 
176
+
78
177
  [Compare v1.3.4...v1.4.0](https://github.com/dry-rb/dry-schema/compare/v1.3.4...v1.4.0)
79
178
 
80
- # 1.3.4 2019-09-11
179
+ ## 1.3.4 2019-09-11
180
+
81
181
 
82
182
  ### Fixed
83
183
 
84
184
  - Fixed regression where using `array?` predicate within a block would crach (issue #186) (@skryukov)
85
185
 
186
+
86
187
  [Compare v1.3.3...v1.3.4](https://github.com/dry-rb/dry-schema/compare/v1.3.3...v1.3.4)
87
188
 
88
- # 1.3.3 2019-08-14
189
+ ## 1.3.3 2019-08-14
190
+
89
191
 
90
192
  ### Fixed
91
193
 
@@ -94,68 +196,75 @@
94
196
  - Default processor uses strict types by default, which fixes various cases when `maybe` is used with a constructor type (@flash-gordon)
95
197
  - Namespaced messages no longer causes a crash when used with nested schemas (fixed #176) (@solnic)
96
198
 
199
+
97
200
  [Compare v1.3.2...v1.3.3](https://github.com/dry-rb/dry-schema/compare/v1.3.2...v1.3.3)
98
201
 
99
- # 1.3.2 2019-08-01
202
+ ## 1.3.2 2019-08-01
203
+
100
204
 
101
205
  ### Added
102
206
 
103
207
  - Support for new predicates: `bytesize?`, `min_bytesize?` and `max_bytesize?` (@bmalinconico)
104
208
 
209
+
105
210
  [Compare v1.3.1...v1.3.2](https://github.com/dry-rb/dry-schema/compare/v1.3.1...v1.3.2)
106
211
 
107
- # 1.3.1 2019-07-08
212
+ ## 1.3.1 2019-07-08
213
+
108
214
 
109
215
  ### Fixed
110
216
 
111
217
  - `Result#error?` works correctly with nested hashes and arrays (@solnic)
112
218
  - `:hints` extension no longer causes a crash where base messages are generated too (issue #165) (@solnic)
113
219
 
220
+
114
221
  [Compare v1.3.0...v1.3.1](https://github.com/dry-rb/dry-schema/compare/v1.3.0...v1.3.1)
115
222
 
116
- # 1.3.0 2019-07-06
223
+ ## 1.3.0 2019-07-06
224
+
117
225
 
118
226
  ### Added
119
227
 
120
228
  - Automatic predicate inferring for constrained types! (@flash-gordon)
121
229
 
122
- ```ruby
123
- Types::Name = Types::String.constrained(min_size: 1)
124
-
125
- schema = Dry::Schema.define do
126
- required(:name).value(Types::Name)
127
- end
230
+ ```ruby
231
+ Types::Name = Types::String.constrained(min_size: 1)
128
232
 
129
- schema.(name: '').errors.to_h # => { name: ["size cannot be less than 1"] }
130
- ```
233
+ schema = Dry::Schema.define do
234
+ required(:name).value(Types::Name)
235
+ end
131
236
 
237
+ schema.(name: '').errors.to_h # => { name: ["size cannot be less than 1"] }
238
+ ```
132
239
  - Support for redefining re-used schemas (issue #43) (@skryukov)
133
240
 
134
241
  ### Fixed
135
242
 
136
243
  - Type container is passed down to nested schemas (@flash-gordon)
137
244
 
245
+
138
246
  [Compare v1.2.0...v1.3.0](https://github.com/dry-rb/dry-schema/compare/v1.2.0...v1.3.0)
139
247
 
140
- # v1.2.0 2019-06-13
248
+ ## 1.2.0 2019-06-13
249
+
141
250
 
142
251
  ### Added
143
252
 
144
253
  - Ability to configure your own type container (@Morozzzko)
145
254
 
146
- ```ruby
147
- types = Dry::Schema::TypeContainer.new
148
- types.register(
149
- 'params.trimmed_string',
150
- Types::String.constructor(&:strip).constructor(&:downcase)
151
- )
255
+ ```ruby
256
+ types = Dry::Schema::TypeContainer.new
257
+ types.register(
258
+ 'params.trimmed_string',
259
+ Types::String.constructor(&:strip).constructor(&:downcase)
260
+ )
152
261
 
153
- Dry::Schema.Params do
154
- config.types = types
262
+ Dry::Schema.Params do
263
+ config.types = types
155
264
 
156
- require(:name).value(:trimmed_string)
157
- end
158
- ```
265
+ require(:name).value(:trimmed_string)
266
+ end
267
+ ```
159
268
 
160
269
  ### Fixed
161
270
 
@@ -173,7 +282,8 @@
173
282
 
174
283
  [Compare v1.1.0...v1.2.0](https://github.com/dry-rb/dry-schema/compare/v1.1.0...v1.2.0)
175
284
 
176
- # v1.1.0 2019-05-30
285
+ ## 1.1.0 2019-05-30
286
+
177
287
 
178
288
  ### Added
179
289
 
@@ -190,9 +300,11 @@
190
300
  - `Config#eql?` works as expected (@solnic)
191
301
  - Predicates are properly inferred from array with a member type spec, ie `array[:integer]` results in `array? + each(:integer?)` (issue #140) (@solnic)
192
302
 
303
+
193
304
  [Compare v1.0.3...v1.1.0](https://github.com/dry-rb/dry-schema/compare/v1.0.3...v1.1.0)
194
305
 
195
- # v1.0.3 2019-05-21
306
+ ## 1.0.3 2019-05-21
307
+
196
308
 
197
309
  ### Fixed
198
310
 
@@ -200,38 +312,45 @@
200
312
  - Predicate arguments are used again for template cache keys (@solnic)
201
313
  - `I18n` messages backend no longer evaluates templates twice (@solnic)
202
314
 
315
+
203
316
  [Compare v1.0.2...v1.0.3](https://github.com/dry-rb/dry-schema/compare/v1.0.2...v1.0.3)
204
317
 
205
- # v1.0.2 2019-05-12
318
+ ## 1.0.2 2019-05-12
319
+
206
320
 
207
321
  ### Fixed
208
322
 
209
323
  - Caching message templates uses restricted set of known keys to calculate cache keys (issue #132) (@solnic)
210
324
 
325
+
211
326
  [Compare v1.0.1...v1.0.2](https://github.com/dry-rb/dry-schema/compare/v1.0.1...v1.0.2)
212
327
 
213
- # 1.0.1 2019-05-08
328
+ ## 1.0.1 2019-05-08
329
+
214
330
 
215
331
  ### Fixed
216
332
 
217
333
  - Applying `key?` predicate no longer causes recursive calls to `Result#errors` (issue #130) (@solnic)
218
334
 
335
+
219
336
  [Compare v1.0.0...v1.0.1](https://github.com/dry-rb/dry-schema/compare/v1.0.0...v1.0.1)
220
337
 
221
- # 1.0.0 2019-05-03
338
+ ## 1.0.0 2019-05-03
222
339
 
223
- ### Changed
224
-
225
- - [BREAKING] `Result#to_hash` was removed (@solnic)
226
340
 
227
341
  ### Fixed
228
342
 
229
343
  - Setting `:any` as the type spec no longer crashes (@solnic)
230
344
  - `Result#error?` handles paths to array elements correctly (@solnic)
231
345
 
346
+ ### Changed
347
+
348
+ - [BREAKING] `Result#to_hash` was removed (@solnic)
349
+
232
350
  [Compare v0.6.0...v1.0.0](https://github.com/dry-rb/dry-schema/compare/v0.6.0...v1.0.0)
233
351
 
234
- # 0.6.0 2019-04-24
352
+ ## 0.6.0 2019-04-24
353
+
235
354
 
236
355
  ### Changed
237
356
 
@@ -241,42 +360,44 @@
241
360
 
242
361
  [Compare v0.5.1...v0.6.0](https://github.com/dry-rb/dry-schema/compare/v0.5.1...v0.6.0)
243
362
 
244
- # 0.5.1 2019-04-17
363
+ ## 0.5.1 2019-04-17
364
+
245
365
 
246
366
  ### Fixed
247
367
 
248
368
  - Key map no longer crashes on unexpected input (issue #118) (@solnic)
249
369
 
370
+
250
371
  [Compare v0.5.0...v0.5.1](https://github.com/dry-rb/dry-schema/compare/v0.5.0...v0.5.1)
251
372
 
252
- # 0.5.0 2019-04-04
373
+ ## 0.5.0 2019-04-04
374
+
253
375
 
254
376
  ### Added
255
377
 
256
378
  - Support for arbitrary meta-data in messages, ie:
257
379
 
258
- ```yaml
259
- en:
260
- dry_schema:
261
- errors:
262
- filled?:
263
- text: "cannot be blank"
264
- code: 123
265
- ```
266
-
267
- Now your error hash will include `{ foo: [{ text: 'cannot be blank', code: 123 }] }` (@solnic + @flash-gordon)
380
+ ```yaml
381
+ en:
382
+ dry_schema:
383
+ errors:
384
+ filled?:
385
+ text: "cannot be blank"
386
+ code: 123
387
+ ```
268
388
 
389
+ Now your error hash will include `{ foo: [{ text: 'cannot be blank', code: 123 }] }` (@solnic + @flash-gordon)
269
390
  - Support for type specs in `array` macro, ie `required(:tags).array(:integer)` (@solnic)
270
391
  - Support for type specs in `each` macro, ie `required(:tags).each(:integer)` (@solnic)
271
392
  - Shortcut for defining an array with hash as its member, ie:
272
393
 
273
- ```ruby
274
- Dry::Schema.Params do
275
- required(:tags).array(:hash) do
276
- required(:name).filled(:string)
277
- end
278
- end
279
- ```
394
+ ```ruby
395
+ Dry::Schema.Params do
396
+ required(:tags).array(:hash) do
397
+ required(:name).filled(:string)
398
+ end
399
+ end
400
+ ```
280
401
 
281
402
  ### Fixed
282
403
 
@@ -290,7 +411,8 @@
290
411
 
291
412
  [Compare v0.4.0...v0.5.0](https://github.com/dry-rb/dry-schema/compare/v0.4.0...v0.5.0)
292
413
 
293
- # 0.4.0 2019-03-26
414
+ ## 0.4.0 2019-03-26
415
+
294
416
 
295
417
  ### Added
296
418
 
@@ -312,16 +434,17 @@
312
434
  - [BREAKING] `Messages` backend classes no longer use global configuration (@solnic)
313
435
  - [BREAKING] Passing a non-symbol key name in the DSL will raise `ArgumentError` (issue #29) (@solnic)
314
436
  - [BREAKING] Configuration for message backends is now nested under `messages` key with following settings:
315
- - `messages.backend` - previously `messages`
316
- - `messages.load_paths` - previously `messages_path`
317
- - `messages.namespace` - previously `namespace`
318
- - `messages.top_namespace` - **new setting** see above
437
+ - `messages.backend` - previously `messages`
438
+ - `messages.load_paths` - previously `messages_path`
439
+ - `messages.namespace` - previously `namespace`
440
+ - `messages.top_namespace` - **new setting** see above
319
441
  - [BREAKING] `Messages::I18n` uses `I18.store_translations` instead of messing with `I18n.load_path` (@solnic)
320
442
  - Schemas (`Params` and `JSON`) have nicer inspect (@solnic)
321
443
 
322
444
  [Compare v0.3.0...v0.4.0](https://github.com/dry-rb/dry-schema/compare/v0.3.0...v0.4.0)
323
445
 
324
- # 0.3.0 2018-03-04
446
+ ## 0.3.0 2018-03-04
447
+
325
448
 
326
449
  ### Fixed
327
450
 
@@ -338,7 +461,8 @@
338
461
 
339
462
  [Compare v0.2.0...v0.3.0](https://github.com/dry-rb/dry-schema/compare/v0.2.0...v0.3.0)
340
463
 
341
- # 0.2.0 2019-02-26
464
+ ## 0.2.0 2019-02-26
465
+
342
466
 
343
467
  ### Added
344
468
 
@@ -367,7 +491,8 @@
367
491
 
368
492
  [Compare v0.1.1...v0.2.0](https://github.com/dry-rb/dry-schema/compare/v0.1.1...v0.2.0)
369
493
 
370
- # 0.1.1 2019-02-17
494
+ ## 0.1.1 2019-02-17
495
+
371
496
 
372
497
  ### Added
373
498
 
@@ -378,12 +503,9 @@
378
503
  - Fix issues with templates and invalid tokens (issue #27) (@solnic)
379
504
  - Fix Ruby warnings (@flash-gordon)
380
505
 
381
- ### Internal
382
-
383
- - Key and value coercers are now equalizable (@flash-gordon)
384
506
 
385
507
  [Compare v0.1.0...v0.1.1](https://github.com/dry-rb/dry-schema/compare/v0.1.0...v0.1.1)
386
508
 
387
- # 0.1.0 2019-01-30
509
+ ## 0.1.0 2019-01-30
388
510
 
389
511
  Initial release.