dry-schema 1.4.3 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
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.