dry-validation 1.0.0 → 1.5.6

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