dry-validation 1.2.1 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c16031447235e4a737bb2fd2c406017b6bc082415ade63f8fe4d364c9b720be1
4
- data.tar.gz: 10d0e6aaddeb0df982894c95e305eef3c6f05bbc3ac2cf229b9926f0acfe791f
3
+ metadata.gz: ea571eab29d2c8f50457cd8472a8f0d66da98bfda7f7fd1b697776532193b12d
4
+ data.tar.gz: 0e45ff77064b269b25e4c9dbc84219dcc78e07390bb14e75dd2fa0ab24593096
5
5
  SHA512:
6
- metadata.gz: a0363485af3db4081d46ea89ad5f1918c557d2b38b9ec357640bb1feb1eec3c6fbc4cd5a8ff5650f830bcf3440abe7d4f7e570377fad8fc803fd0ccc9d91ce49
7
- data.tar.gz: 7a89b67fe79eb7a8e3a63b939b33af67a13b89ad005d2d334c3d3db626bd960e19a957b25508239358bcb634deaeb116e91fab1878b393c3b106f6a028f96a8d
6
+ metadata.gz: ddc760c72d530ceada83071591ebb7d214ed1c1fe7ec56486120170cd8b32a50916468dc086018820d3505a1eb14df1cbfe07a80b212da7c5f67c262dc47847b
7
+ data.tar.gz: d06df105ce8e8a9ef8720dd6df9748585c9621a39bca8a73067e337ad153edbdbd052581be687a6df9bc0c62e16b1ad9fb8866014a0d4ba9a2c411c31d892610
@@ -1,69 +1,140 @@
1
- # v1.2.1 2019-07-16
1
+ ## 1.4.2 2020-01-18
2
+
3
+
4
+ ### Fixed
5
+
6
+ - Macros using predicates that accept a range argument work as expected (no need to wrap the argument in an array) (@waiting-for-dev)
7
+
8
+
9
+ [Compare v1.4.1...v1.4.2](https://github.com/dry-rb/dry-validation/compare/v1.4.1...v1.4.2)
10
+
11
+ ## 1.4.1 2020-01-08
12
+
13
+
14
+ ### Added
15
+
16
+ - Pattern matching on result values (@flash-gordon)
17
+
18
+ ### Fixed
19
+
20
+ - List tokens are correctly interpolated as a comma separated list in rule messages (see #611) (@waiting-for-dev)
21
+ - Warnings about delegated keywords (@flash-gordon)
22
+
23
+
24
+ [Compare v1.4.0...v1.4.1](https://github.com/dry-rb/dry-validation/compare/v1.4.0...v1.4.1)
25
+
26
+ ## 1.4.0 2019-12-12
27
+
28
+
29
+ ### Added
30
+
31
+ - Support for multi-schema inheritance (@ianwhite)
32
+
33
+ ### Fixed
34
+
35
+ - Keyword warnings reported by Ruby 2.7 (@flash-gordon)
36
+ - Fixed an issue where `MessageSet` would be marked as empty too early (@ianwhite)
37
+ - Messages are correctly generated when there are errors for both an array and one or more of its elements (see #599) (@Bugagazavr)
38
+
39
+ ### Changed
40
+
41
+ - A meaningful exception is raised when failure options are not valid (@MatElGran)
42
+ - [internal] improved performance in `Contract.ensure_valid_keys` (@grzegorz-jakubiak)
43
+ - [internal] fixed keyword warnings on MRI 2.7.0 (@flash-gordon)
44
+
45
+ [Compare v1.3.1...v1.4.0](https://github.com/dry-rb/dry-validation/compare/v1.3.1...v1.4.0)
46
+
47
+ ## 1.3.1 2019-08-16
48
+
49
+
50
+ ### Changed
51
+
52
+ - You can now set an external schema without providing a block (@alassek)
53
+
54
+ [Compare v1.3.0...v1.3.1](https://github.com/dry-rb/dry-validation/compare/v1.3.0...v1.3.1)
55
+
56
+ ## 1.3.0 2019-08-14
57
+
58
+
59
+ ### Added
60
+
61
+ - Support for setting an external schema (that can be extended too) (fixed #574) (@solnic)
2
62
 
3
63
  ### Fixed
4
64
 
5
- * Defining an abstract contract class that has no schema no longer crashes (issue #565) (@solnic)
6
- * Fixed an issue where `Rule#each` would crash when the value is not an array (issue #567) (@solnic)
7
- * Fixed an issue where guarding a rule would crash when keys are missing in the input (issue #569) (@solnic)
8
- * Added missing "pathname" require (issue #570) (@solnic)
65
+ - Using a hash spec to define rule keys with more than one value is properly handled by rule guard now (fixed #576) (@solnic)
66
+
67
+ ### Changed
68
+
69
+ - `values` within rules uses `Hash#fetch_values` internally now, which improves performance (@esparta)
70
+
71
+ [Compare v1.2.1...v1.3.0](https://github.com/dry-rb/dry-validation/compare/v1.2.1...v1.3.0)
72
+
73
+ ## 1.2.1 2019-07-16
74
+
75
+
76
+ ### Fixed
77
+
78
+ - Defining an abstract contract class that has no schema no longer crashes (issue #565) (@solnic)
79
+ - Fixed an issue where `Rule#each` would crash when the value is not an array (issue #567) (@solnic)
80
+ - Fixed an issue where guarding a rule would crash when keys are missing in the input (issue #569) (@solnic)
81
+ - Added missing "pathname" require (issue #570) (@solnic)
82
+
9
83
 
10
84
  [Compare v1.2.0...v1.2.1](https://github.com/dry-rb/dry-validation/compare/v1.2.0...v1.2.1)
11
85
 
12
- # v1.2.0 2019-07-08
86
+ ## 1.2.0 2019-07-08
87
+
13
88
 
14
89
  ### Added
15
90
 
16
- * New extension `:predicates_as_macros` (@waiting-for-dev)
91
+ - New extension `:predicates_as_macros` (@waiting-for-dev)
17
92
 
18
93
  ### Fixed
19
94
 
20
- * Guarding rules for nested keys works correctly (issue #560) (@solnic)
95
+ - Guarding rules for nested keys works correctly (issue #560) (@solnic)
21
96
 
22
97
  ### Changed
23
98
 
24
- * `dry-schema` dependency was bumped to `>= 1.3.1` (@solnic)
99
+ - `dry-schema` dependency was bumped to `>= 1.3.1` (@solnic)
25
100
 
26
101
  [Compare v1.1.1...v1.2.0](https://github.com/dry-rb/dry-validation/compare/v1.1.1...v1.2.0)
27
102
 
28
- # v1.1.1 2019-06-24
103
+ ## 1.1.1 2019-06-24
104
+
29
105
 
30
106
  ### Fixed
31
107
 
32
- * `Rule#each` works with array values from nested hashes (@mustardnoise)
108
+ - `Rule#each` works with array values from nested hashes (@mustardnoise)
109
+
33
110
 
34
111
  [Compare v1.1.0...v1.1.1](https://github.com/dry-rb/dry-validation/compare/v1.1.0...v1.1.1)
35
112
 
36
- # v1.1.0 2019-06-14
113
+ ## 1.1.0 2019-06-14
114
+
37
115
 
38
116
  ### Added
39
117
 
40
- * `key?` method available within rules, that can be used to check if there's a value under the rule's default key (refs #540) (@solnic)
41
- * `value` supports hash-based path specifications now (refs #547) (@solnic)
42
- * `value` can read multiple values when the key points to them, ie in case of `rule(geo: [:lat, :lon])` it would return an array with `lat` and `lon` (@solnic)
118
+ - `key?` method available within rules, that can be used to check if there's a value under the rule's default key (refs #540) (@solnic)
119
+ - `value` supports hash-based path specifications now (refs #547) (@solnic)
120
+ - `value` can read multiple values when the key points to them, ie in case of `rule(geo: [:lat, :lon])` it would return an array with `lat` and `lon` (@solnic)
43
121
 
44
122
  ### Fixed
45
123
 
46
- * Passing multiple macro names to `validate` or `each` works correctly (fixed #538 #541) (@jandudulski)
124
+ - Passing multiple macro names to `validate` or `each` works correctly (fixed #538 #541) (@jandudulski)
47
125
 
48
- [Compare v1.0.0...v1.1.0](https://github.com/dry-rb/dry-validation/compare/v1.0.0...v1.1.0)
49
126
 
50
- # v1.0.0 2019-06-10
127
+ [Compare v1.0.0...v1.1.0](https://github.com/dry-rb/dry-validation/compare/v1.0.0...v1.1.0)
51
128
 
52
- This release is a complete rewrite on top of `dry-schema` that uses contract classes to define schema and validation rules. It's **not backward-compatible**. This release addressed over 150 known issues, including bugs and missing features.
129
+ ## 1.0.0 2019-06-10
53
130
 
54
131
  See [the list of all addressed issues](https://github.com/dry-rb/dry-validation/issues?utf8=✓&q=is%3Aissue+is%3Aclosed+closed%3A%3E%3D2019-01-01+) as well as issues that were moved to dry-schema and [addressed there](https://github.com/dry-rb/dry-schema/issues?q=is%3Aissue+is%3Aclosed+dry-validation+milestone%3A1.0.0).
55
132
 
56
- ### :sparkles: Release highlights :sparkles:
57
133
 
58
- - New `Dry::Validation::Contract` API for defining contract classes with schemas and validation rules
59
- - Improved message backends with support for `key` and `base` messages, and arbitrary meta-data (like error codes etc.)
60
- - Support for defining rules for array elements ie `rule(:items).each { ... }`
61
- - Support for macros that encapsulate common rule logic
62
- - Built-in `:acceptance` macro
134
+ [Compare v1.0.0...v1.0.0](https://github.com/dry-rb/dry-validation/compare/v1.0.0...v1.0.0)
63
135
 
64
- [Compare v0.13.3...v1.0.0](https://github.com/dry-rb/dry-validation/compare/v0.13.3...v1.0.0)
136
+ ## 1.0.0 2019-06-10
65
137
 
66
- # v1.0.0 2019-06-10 (compared to 1.0.0.rc3)
67
138
 
68
139
  ### Added
69
140
 
@@ -86,65 +157,69 @@ See [the list of all addressed issues](https://github.com/dry-rb/dry-validation/
86
157
 
87
158
  [Compare v1.0.0.rc3...v1.0.0](https://github.com/dry-rb/dry-validation/compare/v1.0.0.rc3...v1.0.0)
88
159
 
89
- # v1.0.0.rc3 2019-05-06
160
+ ## 1.0.0.rc3 2019-05-06
161
+
90
162
 
91
163
  ### Added
92
164
 
93
- * [EXPERIMENTAL] `Validation.register_macro` for registering global macros (solnic)
94
- * [EXPERIMENTAL] `Contract.register_macro` for registering macros available to specific contract classes (solnic)
95
- * `Dry::Validation.Contract` shortcut for quickly defining a contract and getting its instance back (solnic)
96
- * New configuration option `config.locale` for setting the default locale (solnic)
165
+ - [EXPERIMENTAL] `Validation.register_macro` for registering global macros (solnic)
166
+ - [EXPERIMENTAL] `Contract.register_macro` for registering macros available to specific contract classes (solnic)
167
+ - `Dry::Validation.Contract` shortcut for quickly defining a contract and getting its instance back (solnic)
168
+ - New configuration option `config.locale` for setting the default locale (solnic)
97
169
 
98
170
  ### Fixed
99
171
 
100
- * `config/errors.yml` are now bundled with the gem, **`rc2` was broken because of this** (solnic)
172
+ - `config/errors.yml` are now bundled with the gem, **`rc2` was broken because of this** (solnic)
173
+
101
174
 
102
175
  [Compare v1.0.0.rc2...v1.0.0.rc3](https://github.com/dry-rb/dry-validation/compare/v1.0.0.rc2...v1.0.0.rc3)
103
176
 
104
- # v1.0.0.rc2 2019-05-04
177
+ ## 1.0.0.rc2 2019-05-04
105
178
 
106
179
  This was **yanked** on rubygems.org because the bundled gem was missing `config` directory, thus it was not possible to require it. It was fixed in `rc3`.
107
180
 
108
181
  ### Added
109
182
 
110
- * [EXPERIMENTAL] support for registering macros via `Dry::Validation::Macros.register(:your_macro, &block)` (solnic)
111
- * [EXPERIMENTAL] `:acceptance` as the first built-in macro (issue #157) (solnic)
183
+ - [EXPERIMENTAL] support for registering macros via `Dry::Validation::Macros.register(:your_macro, &block)` (solnic)
184
+ - [EXPERIMENTAL] `:acceptance` as the first built-in macro (issue #157) (solnic)
112
185
 
113
186
  ### Fixed
114
187
 
115
- * Passing invalid argument to `failure` will raise a meaningful error instead of crashing (solnic)
188
+ - Passing invalid argument to `failure` will raise a meaningful error instead of crashing (solnic)
116
189
 
117
190
  ### Changed
118
191
 
119
- * In rule validation blocks, `values` is now an instance of a hash-like `Dry::Validation::Values` class, rather than `Dry::Schema::Result`. This gives more convenient access to data within rules (solnic)
120
- * Dependency on `dry-schema` was updated to `~> 1.0` (solnic)
192
+ - In rule validation blocks, `values` is now an instance of a hash-like `Dry::Validation::Values` class, rather than `Dry::Schema::Result`. This gives more convenient access to data within rules (solnic)
193
+ - Dependency on `dry-schema` was updated to `~> 1.0` (solnic)
121
194
 
122
195
  [Compare v1.0.0.rc1...v1.0.0.rc2](https://github.com/dry-rb/dry-validation/compare/v1.0.0.rc1...v1.0.0.rc2)
123
196
 
124
- # v1.0.0.rc1 2019-04-26
197
+ ## 1.0.0.rc1 2019-04-26
198
+
125
199
 
126
200
  ### Added
127
201
 
128
- * `:hints` extension is back (solnic)
129
- * `Result` objects have access to the context object which is shared between rules (flash-gordon)
202
+ - `:hints` extension is back (solnic)
203
+ - `Result` objects have access to the context object which is shared between rules (flash-gordon)
130
204
 
131
205
  ### Fixed
132
206
 
133
- * Multiple hint messages no longer crash message set (flash-gordon)
134
- * `Contract#inspect` no longer crashes (solnic)
207
+ - Multiple hint messages no longer crash message set (flash-gordon)
208
+ - `Contract#inspect` no longer crashes (solnic)
135
209
 
136
210
  ### Changed
137
211
 
138
- * Dependency on `dry-schema` was bumped to `~> 0.6` - this pulls in `dry-types 1.0.0` and `dry-logic 1.0.0` (solnic)
139
- * Dependency on `dry-initializer` was bumped to `~> 3.0` (solnic)
212
+ - Dependency on `dry-schema` was bumped to `~> 0.6` - this pulls in `dry-types 1.0.0` and `dry-logic 1.0.0` (solnic)
213
+ - Dependency on `dry-initializer` was bumped to `~> 3.0` (solnic)
140
214
 
141
215
  [Compare v1.0.0.beta2...v1.0.0.rc1](https://github.com/dry-rb/dry-validation/compare/v1.0.0.beta2...v1.0.0.rc1)
142
216
 
143
- # v1.0.0.beta2 2019-04-04
217
+ ## 1.0.0.beta2 2019-04-04
218
+
144
219
 
145
220
  ### Added
146
221
 
147
- * Support for arbitrary meta-data in failures, ie:
222
+ - Support for arbitrary meta-data in failures, ie:
148
223
 
149
224
  ```ruby
150
225
  class NewUserContract < Dry::Validation::Contract
@@ -162,98 +237,107 @@ This was **yanked** on rubygems.org because the bundled gem was missing `config`
162
237
 
163
238
  ### Changed
164
239
 
165
- * [BREAKING] `Error` was renamed to `Message` as it is a more generic concept (solnic)
166
- * [BREAKING] `ErrorSet` was renamed to `MessageSet` for consistency (solnic)
167
- * [BREAKING] `:monads` extension wraps entire result objects in `Success` or `Failure` (flash-gordon)
240
+ - [BREAKING] `Error` was renamed to `Message` as it is a more generic concept (solnic)
241
+ - [BREAKING] `ErrorSet` was renamed to `MessageSet` for consistency (solnic)
242
+ - [BREAKING] `:monads` extension wraps entire result objects in `Success` or `Failure` (flash-gordon)
168
243
 
169
244
  [Compare v1.0.0.beta1...v1.0.0.beta2](https://github.com/dry-rb/dry-validation/compare/v1.0.0.beta1...v1.0.0.beta2)
170
245
 
171
- # v1.0.0.beta1 2019-03-26
246
+ ## 1.0.0.beta1 2019-03-26
247
+
172
248
 
173
249
  ### Added
174
250
 
175
- * New API for setting failures `base.failure` for base errors and `key.failure` for key errors (solnic)
176
- * Support for `base` errors associated with a key even when child keys have errors too (solnic)
177
- * Support for `base` errors not associated with any key (solnic)
178
- * Result objects use `ErrorSet` object now for managing messages (solnic)
179
- * Nested keys are properly handled when generating messages hash (issue #489) (flash-gordon + solnic)
180
- * Result objects support `locale` and `full` options now (solnic)
181
- * Ability to configure `top_namespace` for messages, which will be used for both schema and rule localization (solnic)
182
- * Rule blocks receive a context object that you can use to share data between rules (solnic)
251
+ - New API for setting failures `base.failure` for base errors and `key.failure` for key errors (solnic)
252
+ - Support for `base` errors associated with a key even when child keys have errors too (solnic)
253
+ - Support for `base` errors not associated with any key (solnic)
254
+ - Result objects use `ErrorSet` object now for managing messages (solnic)
255
+ - Nested keys are properly handled when generating messages hash (issue #489) (flash-gordon + solnic)
256
+ - Result objects support `locale` and `full` options now (solnic)
257
+ - Ability to configure `top_namespace` for messages, which will be used for both schema and rule localization (solnic)
258
+ - Rule blocks receive a context object that you can use to share data between rules (solnic)
183
259
 
184
260
  ### Changed
185
261
 
186
- * [BREAKING] `Result#errors` returns an instance of `ErrorSet` now, it's an enumerable, coerible to a hash (solnic)
187
- * [BREAKING] `failure` was removed in favor of `key.failure` or `key(:foo).failure` (solnic)
188
- * [BREAKING] `Result#to_hash` was removed (flash-gordon)
262
+ - [BREAKING] `Result#errors` returns an instance of `ErrorSet` now, it's an enumerable, coerible to a hash (solnic)
263
+ - [BREAKING] `failure` was removed in favor of `key.failure` or `key(:foo).failure` (solnic)
264
+ - [BREAKING] `Result#to_hash` was removed (flash-gordon)
189
265
 
190
266
  [Compare v1.0.0.alpha2...v1.0.0.beta1](https://github.com/dry-rb/dry-validation/compare/v1.0.0.alpha2...v1.0.0.beta1)
191
267
 
192
- # v1.0.0.alpha2 2019-03-05
268
+ ## 1.0.0.alpha2 2019-03-05
193
269
 
194
270
  First round of bug fixes. Thanks for testing <3!
195
271
 
196
272
  ### Fixed
197
273
 
198
- * Errors with nested messages are correctly built (flash-gordon)
199
- * Messages for nested keys are correctly resolved (solnic)
200
- * A message for a nested key is resolved when it's defined under `errors.rule.%{key}` too, but a message under nested key will override it (solnic)
274
+ - Errors with nested messages are correctly built (flash-gordon)
275
+ - Messages for nested keys are correctly resolved (solnic)
276
+ - A message for a nested key is resolved when it's defined under `errors.rule.%{key}` too, but a message under nested key will override it (solnic)
201
277
 
202
278
  ### Changed
203
279
 
204
- * When a message template is not found a more meaningful error is raised that includes both rule identifier and key path (solnic)
280
+ - When a message template is not found a more meaningful error is raised that includes both rule identifier and key path (solnic)
205
281
 
206
282
  [Compare v1.0.0.alpha1...v1.0.0.alpha2](https://github.com/dry-rb/dry-validation/compare/v1.0.0.alpha1...v1.0.0.alpha2)
207
283
 
208
- # v1.0.0.alpha1 2019-03-04
284
+ ## 1.0.0.alpha1 2019-03-04
209
285
 
210
286
  Complete rewrite on top of `dry-schema`.
211
287
 
212
288
  ### Added
213
289
 
214
- * [BREAKING] `Dry::Validation::Contract` as a replacement for validation schemas (solnic)
215
- * [BREAKING] New `rule` DSL with an improved API for setting error messages (solnic)
290
+ - [BREAKING] `Dry::Validation::Contract` as a replacement for validation schemas (solnic)
291
+ - [BREAKING] New `rule` DSL with an improved API for setting error messages (solnic)
292
+
216
293
 
217
294
  [Compare v0.13.0...v1.0.0.alpha1](https://github.com/dry-rb/dry-validation/compare/v0.13.0...v1.0.0.alpha1)
218
295
 
219
- # v0.13.0 2019-01-29
296
+ ## 0.13.0 2019-01-29
220
297
 
221
- ### Changed
222
-
223
- - `dry-logic` was bumped to `~> 0.5` (solnic)
224
- - `dry-types` was bumped to `~> 0.14` (solnic)
225
298
 
226
299
  ### Fixed
227
300
 
228
301
  - Warning about method redefined (amatsuda)
229
302
 
303
+ ### Changed
304
+
305
+ - `dry-logic` was bumped to `~> 0.5` (solnic)
306
+ - `dry-types` was bumped to `~> 0.14` (solnic)
307
+
230
308
  [Compare v0.12.3...v0.13.0](https://github.com/dry-rb/dry-validation/compare/v0.12.3...v0.13.0)
231
309
 
232
- # v0.12.3 2019-01-29
310
+ ## 0.12.3 2019-01-29
311
+
233
312
 
234
313
  ### Changed
235
314
 
236
- * [internal] dry-logic was pinned to `~> 0.4.2` (flash-gordon)
315
+ - [internal] dry-logic was pinned to `~> 0.4.2` (flash-gordon)
237
316
 
238
317
  [Compare v0.12.2...v0.12.3](https://github.com/dry-rb/dry-validation/compare/v0.12.2...v0.12.3)
239
318
 
240
- # v0.12.2 2018-08-29
319
+ ## 0.12.2 2018-08-29
320
+
241
321
 
242
322
  ### Fixed
243
323
 
244
324
  - Use correct key names for rule messages when using i18n (jozzi05)
245
325
 
326
+
246
327
  [Compare v0.12.1...v0.12.2](https://github.com/dry-rb/dry-validation/compare/v0.12.1...v0.12.2)
247
328
 
248
- # v0.12.1 2018-07-06
329
+ ## 0.12.1 2018-07-06
330
+
249
331
 
250
332
  ### Fixed
251
333
 
252
334
  - [internal] fixed deprecation warnings (flash-gordon)
253
335
 
336
+
254
337
  [Compare v0.12.0...v0.12.1](https://github.com/dry-rb/dry-validation/compare/v0.12.0...v0.12.1)
255
338
 
256
- # v0.12.0 2018-05-31
339
+ ## 0.12.0 2018-05-31
340
+
257
341
 
258
342
  ### Changed
259
343
 
@@ -262,7 +346,8 @@ Complete rewrite on top of `dry-schema`.
262
346
 
263
347
  [Compare v0.11.1...v0.12.0](https://github.com/dry-rb/dry-validation/compare/v0.11.1...v0.12.0)
264
348
 
265
- # v0.11.1 2017-09-15
349
+ ## 0.11.1 2017-09-15
350
+
266
351
 
267
352
  ### Changed
268
353
 
@@ -271,7 +356,8 @@ Complete rewrite on top of `dry-schema`.
271
356
 
272
357
  [Compare v0.11.0...v0.11.1](https://github.com/dry-rb/dry-validation/compare/v0.11.0...v0.11.1)
273
358
 
274
- # v0.11.0 2017-05-30
359
+ ## 0.11.0 2017-05-30
360
+
275
361
 
276
362
  ### Changed
277
363
 
@@ -279,32 +365,39 @@ Complete rewrite on top of `dry-schema`.
279
365
 
280
366
  [Compare v0.10.7...v0.11.0](https://github.com/dry-rb/dry-validation/compare/v0.10.7...v0.11.0)
281
367
 
282
- # v0.10.7 2017-05-15
368
+ ## 0.10.7 2017-05-15
369
+
283
370
 
284
371
  ### Fixed
285
372
 
286
373
  - `validate` can now be defined multiple times for the same key (kimquy)
287
374
  - Re-using rules between schemas no longer mutates original rule set (pabloh)
288
375
 
376
+
289
377
  [Compare v0.10.6...v0.10.7](https://github.com/dry-rb/dry-validation/compare/v0.10.6...v0.10.7)
290
378
 
291
- # v0.10.6 2017-04-26
379
+ ## 0.10.6 2017-04-26
380
+
292
381
 
293
382
  ### Fixed
294
383
 
295
384
  - Fixes issue with wrong localized error messages when namespaced messages are used (kbredemeier)
296
385
 
386
+
297
387
  [Compare v0.10.5...v0.10.6](https://github.com/dry-rb/dry-validation/compare/v0.10.5...v0.10.6)
298
388
 
299
- # v0.10.5 2017-01-12
389
+ ## 0.10.5 2017-01-12
390
+
300
391
 
301
392
  ### Fixed
302
393
 
303
394
  - Warnings under MRI 2.4.0 are gone (koic)
304
395
 
396
+
305
397
  [Compare v0.10.4...v0.10.5](https://github.com/dry-rb/dry-validation/compare/v0.10.4...v0.10.5)
306
398
 
307
- # v0.10.4 2016-12-03
399
+ ## 0.10.4 2016-12-03
400
+
308
401
 
309
402
  ### Fixed
310
403
 
@@ -317,31 +410,38 @@ Complete rewrite on top of `dry-schema`.
317
410
 
318
411
  [Compare v0.10.3...v0.10.4](https://github.com/dry-rb/dry-validation/compare/v0.10.3...v0.10.4)
319
412
 
320
- # v0.10.3 2016-09-27
413
+ ## 0.10.3 2016-09-27
414
+
321
415
 
322
416
  ### Fixed
323
417
 
324
418
  - Custom predicates work correctly with `each` macro (solnic)
325
419
 
420
+
326
421
  [Compare v0.10.2...v0.10.3](https://github.com/dry-rb/dry-validation/compare/v0.10.2...v0.10.3)
327
422
 
328
- # v0.10.2 2016-09-23
423
+ ## 0.10.2 2016-09-23
424
+
329
425
 
330
426
  ### Fixed
331
427
 
332
428
  - Constrained types + hints work again (solnic)
333
429
 
430
+
334
431
  [Compare v0.10.1...v0.10.2](https://github.com/dry-rb/dry-validation/compare/v0.10.1...v0.10.2)
335
432
 
336
- # v0.10.1 2016-09-22
433
+ ## 0.10.1 2016-09-22
434
+
337
435
 
338
436
  ### Fixed
339
437
 
340
438
  - Remove obsolete require of `dry/struct` which is now an optional extension (flash-gordon)
341
439
 
440
+
342
441
  [Compare v0.10.0...v0.10.1](https://github.com/dry-rb/dry-validation/compare/v0.10.0...v0.10.1)
343
442
 
344
- # v0.10.0 2016-09-21
443
+ ## 0.10.0 2016-09-21
444
+
345
445
 
346
446
  ### Added
347
447
 
@@ -364,34 +464,31 @@ Complete rewrite on top of `dry-schema`.
364
464
  - [BREAKING] `when` macro no longer supports multiple disconnected rules in its block, whatever the block returns will be used for the implication (solnic)
365
465
  - [BREAKING] `rule(some_name: %i(some keys))` will _always_ use `:some_name` as the key for failure messages (solnic)
366
466
 
367
- ### Internal
368
-
369
- - ~2 x performance boost (solnic)
370
- - Rule AST was updated to latest dry-logic (solnic)
371
- - `MessageCompiler` was drastically simplified based on the new result AST from dry-logic (solnic)
372
- - `HintCompiler` is gone as hints are now part of the result AST (solnic)
373
- - `maybe` macro creates an implication instead of a disjunction (`not(none?).then(*your-predicates)`) (solnic)
374
-
375
467
  [Compare v0.9.5...v0.10.0](https://github.com/dry-rb/dry-validation/compare/v0.9.5...v0.10.0)
376
468
 
377
- # v0.9.5 2016-08-16
469
+ ## 0.9.5 2016-08-16
470
+
378
471
 
379
472
  ### Fixed
380
473
 
381
474
  - Infering multiple predicates with options works as expected ie `value(:str?, min_size?: 3, max_size?: 6)` (solnic)
382
475
  - Default `locale` configured in `I18n` is now respected by the messages compiler (agustin + cavi21)
383
476
 
477
+
384
478
  [Compare v0.9.4...v0.9.5](https://github.com/dry-rb/dry-validation/compare/v0.9.4...v0.9.5)
385
479
 
386
- # v0.9.4 2016-08-11
480
+ ## 0.9.4 2016-08-11
481
+
387
482
 
388
483
  ### Fixed
389
484
 
390
485
  - Error messages for sibling deeply nested schemas are nested correctly (timriley)
391
486
 
487
+
392
488
  [Compare v0.9.3...v0.9.4](https://github.com/dry-rb/dry-validation/compare/v0.9.3...v0.9.4)
393
489
 
394
- # v0.9.3 2016-07-22
490
+ ## 0.9.3 2016-07-22
491
+
395
492
 
396
493
  ### Added
397
494
 
@@ -409,24 +506,29 @@ Complete rewrite on top of `dry-schema`.
409
506
 
410
507
  [Compare v0.9.2...v0.9.3](https://github.com/dry-rb/dry-validation/compare/v0.9.2...v0.9.3)
411
508
 
412
- # v0.9.2 2016-07-13
509
+ ## 0.9.2 2016-07-13
510
+
413
511
 
414
512
  ### Fixed
415
513
 
416
514
  - Constrained types now work with `each` macro (solnic)
417
515
  - Array coercion without member type works now ie `required(:arr).maybe(:array?)` (solnic)
418
516
 
517
+
419
518
  [Compare v0.9.1...v0.9.2](https://github.com/dry-rb/dry-validation/compare/v0.9.1...v0.9.2)
420
519
 
421
- # v0.9.1 2016-07-11
520
+ ## 0.9.1 2016-07-11
521
+
422
522
 
423
523
  ### Fixed
424
524
 
425
525
  - `I18n` backend is no longer required and set by default (solnic)
426
526
 
527
+
427
528
  [Compare v0.9.0...v0.9.1](https://github.com/dry-rb/dry-validation/compare/v0.9.0...v0.9.1)
428
529
 
429
- # v0.9.0 2016-07-08
530
+ ## 0.9.0 2016-07-08
531
+
430
532
 
431
533
  ### Added
432
534
 
@@ -439,10 +541,6 @@ Complete rewrite on top of `dry-schema`.
439
541
  - Support for message token transformations in custom predicates (fran-worley)
440
542
  - [EXPERIMENTAL] Ability to compose predicates that accept dynamic args provided by the schema (solnic)
441
543
 
442
- ### Changed
443
-
444
- - Tokens for `size?` were renamed `left` => `size_left` and `right` => `size_right` (fran-worley)
445
-
446
544
  ### Fixed
447
545
 
448
546
  - Duped key names in nested schemas no longer result in invalid error messages structure (solnic)
@@ -452,18 +550,14 @@ Complete rewrite on top of `dry-schema`.
452
550
  - Hints for elements are no longer provided for an array when the value is not an array (solnic)
453
551
  - `input` macro no longer messes up error messages for nested structures (solnic)
454
552
 
455
- ### Internal
553
+ ### Changed
456
554
 
457
- - Compiling messages is now ~5% faster (solnic + splattael)
458
- - Refactored Error and Hint compilers (solnic)
459
- - Refactored Schema to use an internal executor objects with steps (solnic)
460
- - Extracted root-rule into a separate validation step (solnic)
461
- - Added `MessageSet` that result objects now use (in 1.0.0 it'll be exposed via public API) (solnic)
462
- - We can now distinguish error messages from validation hints via `Message` and `Hint` objects (solnic)
555
+ - Tokens for `size?` were renamed `left` => `size_left` and `right` => `size_right` (fran-worley)
463
556
 
464
557
  [Compare v0.8.0...v0.9.0](https://github.com/dry-rb/dry-validation/compare/v0.8.0...v0.9.0)
465
558
 
466
- # v0.8.0 2016-07-01
559
+ ## 0.8.0 2016-07-01
560
+
467
561
 
468
562
  ### Added
469
563
 
@@ -509,19 +603,10 @@ Complete rewrite on top of `dry-schema`.
509
603
  - Deprecate key in favor of required (coop)
510
604
  - Remove nested key syntax (solnic)
511
605
 
512
- ### Internal
513
-
514
- - ~15% performance boost via various optimizations (solnic)
515
- - When using explicit type specs building a schema is ~80-85x faster (solnic)
516
- - No longer uses `Dry::Types::Predicates` as `:type?` predicate was moved to dry-logic (solnic)
517
- - Integration specs covering predicates with Form and Schema (jodosha)
518
- - Use latest ruby versions on travis (flash-gordon)
519
- - Make pry console optional with IRB as a default (flash-gordon)
520
- - Remove wrapping rules in :set nodes (solnic)
521
-
522
606
  [Compare v0.7.4...v0.8.0](https://github.com/dry-rb/dry-validation/compare/v0.7.4...v0.8.0)
523
607
 
524
- # v0.7.4 2016-04-06
608
+ ## 0.7.4 2016-04-06
609
+
525
610
 
526
611
  ### Added
527
612
 
@@ -532,9 +617,11 @@ Complete rewrite on top of `dry-schema`.
532
617
 
533
618
  - Depending on deeply nested values in high-level rules works now (solnic)
534
619
 
620
+
535
621
  [Compare v0.7.3...v0.7.4](https://github.com/dry-rb/dry-validation/compare/v0.7.3...v0.7.4)
536
622
 
537
- # v0.7.3 2016-03-30
623
+ ## 0.7.3 2016-03-30
624
+
538
625
 
539
626
  ### Added
540
627
 
@@ -547,22 +634,22 @@ Complete rewrite on top of `dry-schema`.
547
634
  - Creating a nested schema properly sets full path to nested data structure (solnic)
548
635
  - Error message for `empty?` predicate is now correct (jodosha)
549
636
 
550
- ### Internal
551
-
552
- - Switch from `thread_safe` to `concurrent` (joevandyk)
553
637
 
554
638
  [Compare v0.7.2...v0.7.3](https://github.com/dry-rb/dry-validation/compare/v0.7.2...v0.7.3)
555
639
 
556
- # v0.7.2 2016-03-28
640
+ ## 0.7.2 2016-03-28
641
+
557
642
 
558
643
  ### Added
559
644
 
560
645
  - Support for nested schemas inside high-level rules (solnic)
561
646
  - `Schema#to_proc` so that you can do `data.each(&schema)` (solnic)
562
647
 
648
+
563
649
  [Compare v0.7.1...v0.7.2](https://github.com/dry-rb/dry-validation/compare/v0.7.1...v0.7.2)
564
650
 
565
- # v0.7.1 2016-03-21
651
+ ## 0.7.1 2016-03-21
652
+
566
653
 
567
654
  ### Added
568
655
 
@@ -580,7 +667,8 @@ Complete rewrite on top of `dry-schema`.
580
667
 
581
668
  [Compare v0.7.0...v0.7.1](https://github.com/dry-rb/dry-validation/compare/v0.7.0...v0.7.1)
582
669
 
583
- # v0.7.0 2016-03-16
670
+ ## 0.7.0 2016-03-16
671
+
584
672
 
585
673
  ### Added
586
674
 
@@ -604,6 +692,12 @@ Complete rewrite on top of `dry-schema`.
604
692
  - `Validation::Result` responds to `#[]` and `#each` (delegating to its output)
605
693
  and it's an enumerable (solnic)
606
694
 
695
+ ### Fixed
696
+
697
+ - Qualified rule names properly use last node by default for error messages (solnic)
698
+ - Validation hints only include relevant messages (solnic)
699
+ - `:yaml` messages respect `:locale` option in `Result#messages` (solnic)
700
+
607
701
  ### Changed
608
702
 
609
703
  - `schema` was **removed** from the DSL, just use `key(:name).schema` instead (solnic)
@@ -614,15 +708,10 @@ Complete rewrite on top of `dry-schema`.
614
708
  - `Schema::Result` is now `Validation::Result` and it no longer has success and
615
709
  failure results, only error results are provided (solnic)
616
710
 
617
- ### Fixed
618
-
619
- - Qualified rule names properly use last node by default for error messages (solnic)
620
- - Validation hints only include relevant messages (solnic)
621
- - `:yaml` messages respect `:locale` option in `Result#messages` (solnic)
622
-
623
711
  [Compare v0.6.0...v0.7.0](https://github.com/dry-rb/dry-validation/compare/v0.6.0...v0.7.0)
624
712
 
625
- # v0.6.0 2016-01-20
713
+ ## 0.6.0 2016-01-20
714
+
626
715
 
627
716
  ### Added
628
717
 
@@ -633,38 +722,41 @@ Complete rewrite on top of `dry-schema`.
633
722
  - Support for `confirmation(:foo, some_predicate: some_argument)` shortcut syntax (solnic)
634
723
  - Support for error messages for grouped rules (like `confirmation`) (solnic)
635
724
  - Schemas support injecting rules from the outside (solnic)
636
-
637
- ## Changed
638
-
725
+ - ## Changed
639
726
  - `rule` uses objects that inherit from `BasicObject` to avoid conflicts with
640
727
  predicate names and built-in `Object` methods (solnic)
641
728
  - In `Schema::Form` both `key` and `optional` will apply `filled?` predicate by
642
729
  default when no block is passed (solnic)
643
730
 
644
- [Compare v0.5.0...v0.6.0](https://github.com/dry-rb/dry-validation/compare/v0.5.0...v0.6.0)
645
731
 
646
- # v0.5.0 2016-01-11
732
+ [Compare v0.5.0...v0.6.0](https://github.com/dry-rb/dry-validation/compare/v0.5.0...v0.6.0)
647
733
 
648
- ### Changed
734
+ ## 0.5.0 2016-01-11
649
735
 
650
- - Now depends on [dry-logic](https://github.com/dry-rb/dry-logic) for predicates and rules (solnic)
651
- - `dry/validation/schema/form` is now required by default (solnic)
652
736
 
653
737
  ### Fixed
654
738
 
655
739
  - `Schema::Form` uses safe `form.array` and `form.hash` types which fixes #42 (solnic)
656
740
 
741
+ ### Changed
742
+
743
+ - Now depends on [dry-logic](https://github.com/dry-rb/dry-logic) for predicates and rules (solnic)
744
+ - `dry/validation/schema/form` is now required by default (solnic)
745
+
657
746
  [Compare v0.4.1...v0.5.0](https://github.com/dry-rb/dry-validation/compare/v0.4.1...v0.5.0)
658
747
 
659
- # v0.4.1 2015-12-27
748
+ ## 0.4.1 2015-12-27
749
+
660
750
 
661
751
  ### Added
662
752
 
663
753
  - Support for `each` and type coercion inference in `Schema::Form` (solnic)
664
754
 
755
+
665
756
  [Compare v0.4.0...v0.4.1](https://github.com/dry-rb/dry-validation/compare/v0.4.0...v0.4.1)
666
757
 
667
- # v0.4.0 2015-12-21
758
+ ## 0.4.0 2015-12-21
759
+
668
760
 
669
761
  ### Added
670
762
 
@@ -678,9 +770,11 @@ Complete rewrite on top of `dry-schema`.
678
770
 
679
771
  - Error messages hash has now consistent structure `rule_name => [msgs_array, input_value]` (solnic)
680
772
 
773
+
681
774
  [Compare v0.3.1...v0.4.0](https://github.com/dry-rb/dry-validation/compare/v0.3.1...v0.4.0)
682
775
 
683
- # v0.3.1 2015-12-08
776
+ ## 0.3.1 2015-12-08
777
+
684
778
 
685
779
  ### Added
686
780
 
@@ -690,9 +784,11 @@ Complete rewrite on top of `dry-schema`.
690
784
 
691
785
  - Error compiler returns an empty hash rather than a nil when there are no errors (solnic)
692
786
 
787
+
693
788
  [Compare v0.3.0...v0.3.1](https://github.com/dry-rb/dry-validation/compare/v0.3.0...v0.3.1)
694
789
 
695
- # v0.3.0 2015-12-07
790
+ ## 0.3.0 2015-12-07
791
+
696
792
 
697
793
  ### Added
698
794
 
@@ -714,9 +810,10 @@ Complete rewrite on top of `dry-schema`.
714
810
  errors and messages
715
811
  - `Schema::Result#messages` returns a hash with rule names, messages and input values (solnic)
716
812
 
717
- [Compare v0.2.0...HEAD](https://github.com/dry-rb/dry-validation/compare/v0.2.0...HEAD)
813
+ [Compare v0.2.0...v0.3.0](https://github.com/dry-rb/dry-validation/compare/v0.2.0...v0.3.0)
814
+
815
+ ## 0.2.0 2015-11-30
718
816
 
719
- # v0.2.0 2015-11-30
720
817
 
721
818
  ### Added
722
819
 
@@ -737,8 +834,9 @@ Complete rewrite on top of `dry-schema`.
737
834
 
738
835
  - Added missing `and` / `or` interfaces to composite rules (solnic)
739
836
 
740
- [Compare v0.1.0...HEAD](https://github.com/dry-rb/dry-validation/compare/v0.1.0...HEAD)
741
837
 
742
- # v0.1.0 2015-11-25
838
+ [Compare v0.1.0...v0.2.0](https://github.com/dry-rb/dry-validation/compare/v0.1.0...v0.2.0)
839
+
840
+ ## 0.1.0 2015-11-25
743
841
 
744
842
  First public release