dry-schema 1.4.1 → 1.5.2

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