dry-validation 1.3.1 → 1.5.1

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