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