dry-validation 0.11.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +10 -0
  4. data/Gemfile +7 -5
  5. data/README.md +4 -2
  6. data/Rakefile +5 -3
  7. data/benchmarks/benchmark_form_invalid.rb +2 -2
  8. data/benchmarks/benchmark_form_valid.rb +2 -2
  9. data/dry-validation.gemspec +2 -2
  10. data/examples/{form.rb → params.rb} +1 -1
  11. data/lib/dry/validation.rb +3 -3
  12. data/lib/dry/validation/{input_processor_compiler → compat}/form.rb +20 -2
  13. data/lib/dry/validation/extensions/monads.rb +6 -5
  14. data/lib/dry/validation/input_processor_compiler.rb +2 -1
  15. data/lib/dry/validation/input_processor_compiler/params.rb +49 -0
  16. data/lib/dry/validation/message_compiler.rb +4 -0
  17. data/lib/dry/validation/messages/abstract.rb +1 -1
  18. data/lib/dry/validation/predicate_registry.rb +12 -11
  19. data/lib/dry/validation/schema/class_interface.rb +7 -4
  20. data/lib/dry/validation/schema/form.rb +3 -15
  21. data/lib/dry/validation/schema/params.rb +22 -0
  22. data/lib/dry/validation/version.rb +1 -1
  23. data/spec/extensions/monads/result_spec.rb +15 -13
  24. data/spec/integration/messages/i18n_spec.rb +0 -2
  25. data/spec/integration/{form → params}/predicates/array_spec.rb +5 -5
  26. data/spec/integration/{form → params}/predicates/empty_spec.rb +8 -8
  27. data/spec/integration/{form → params}/predicates/eql_spec.rb +8 -8
  28. data/spec/integration/{form → params}/predicates/even_spec.rb +8 -8
  29. data/spec/integration/{form → params}/predicates/excluded_from_spec.rb +8 -8
  30. data/spec/integration/{form → params}/predicates/excludes_spec.rb +8 -8
  31. data/spec/integration/{form → params}/predicates/false_spec.rb +8 -8
  32. data/spec/integration/{form → params}/predicates/filled_spec.rb +10 -10
  33. data/spec/integration/{form → params}/predicates/format_spec.rb +8 -8
  34. data/spec/integration/{form → params}/predicates/gt_spec.rb +8 -8
  35. data/spec/integration/{form → params}/predicates/gteq_spec.rb +8 -8
  36. data/spec/integration/{form → params}/predicates/included_in_spec.rb +8 -8
  37. data/spec/integration/{form → params}/predicates/includes_spec.rb +8 -8
  38. data/spec/integration/{form → params}/predicates/key_spec.rb +5 -5
  39. data/spec/integration/{form → params}/predicates/lt_spec.rb +8 -8
  40. data/spec/integration/{form → params}/predicates/lteq_spec.rb +8 -8
  41. data/spec/integration/{form → params}/predicates/max_size_spec.rb +8 -8
  42. data/spec/integration/{form → params}/predicates/min_size_spec.rb +8 -8
  43. data/spec/integration/{form → params}/predicates/none_spec.rb +8 -8
  44. data/spec/integration/{form → params}/predicates/not_eql_spec.rb +8 -8
  45. data/spec/integration/{form → params}/predicates/odd_spec.rb +8 -8
  46. data/spec/integration/{form → params}/predicates/size/fixed_spec.rb +8 -8
  47. data/spec/integration/{form → params}/predicates/size/range_spec.rb +8 -8
  48. data/spec/integration/{form → params}/predicates/true_spec.rb +8 -8
  49. data/spec/integration/{form → params}/predicates/type_spec.rb +8 -8
  50. data/spec/integration/schema/array_schema_spec.rb +3 -3
  51. data/spec/integration/schema/extending_dsl_spec.rb +2 -2
  52. data/spec/integration/schema/form_spec.rb +3 -1
  53. data/spec/integration/schema/hash_schema_spec.rb +3 -3
  54. data/spec/integration/schema/json/explicit_types_spec.rb +1 -1
  55. data/spec/integration/schema/macros/each_spec.rb +1 -1
  56. data/spec/integration/schema/{form → params}/defining_base_schema_spec.rb +1 -1
  57. data/spec/integration/schema/{form → params}/explicit_types_spec.rb +35 -22
  58. data/spec/integration/schema/params_spec.rb +234 -0
  59. data/spec/integration/schema/reusing_schema_spec.rb +1 -1
  60. data/spec/integration/schema/using_types_spec.rb +1 -1
  61. data/spec/integration/schema_spec.rb +5 -5
  62. data/spec/spec_helper.rb +5 -2
  63. data/spec/unit/input_processor_compiler/{form_spec.rb → params_spec.rb} +13 -13
  64. metadata +77 -67
@@ -1,7 +1,7 @@
1
1
  RSpec.describe 'Predicates: False' do
2
2
  context 'with key' do
3
3
  subject(:schema) do
4
- Dry::Validation.Form do
4
+ Dry::Validation.Params do
5
5
  required(:foo) { false? }
6
6
  end
7
7
  end
@@ -57,7 +57,7 @@ RSpec.describe 'Predicates: False' do
57
57
 
58
58
  context 'with optional' do
59
59
  subject(:schema) do
60
- Dry::Validation.Form do
60
+ Dry::Validation.Params do
61
61
  optional(:foo) { false? }
62
62
  end
63
63
  end
@@ -115,7 +115,7 @@ RSpec.describe 'Predicates: False' do
115
115
  context 'with required' do
116
116
  context 'with value' do
117
117
  subject(:schema) do
118
- Dry::Validation.Form do
118
+ Dry::Validation.Params do
119
119
  required(:foo).value(:false?)
120
120
  end
121
121
  end
@@ -171,7 +171,7 @@ RSpec.describe 'Predicates: False' do
171
171
 
172
172
  context 'with filled' do
173
173
  subject(:schema) do
174
- Dry::Validation.Form do
174
+ Dry::Validation.Params do
175
175
  required(:foo).filled(:false?)
176
176
  end
177
177
  end
@@ -227,7 +227,7 @@ RSpec.describe 'Predicates: False' do
227
227
 
228
228
  context 'with maybe' do
229
229
  subject(:schema) do
230
- Dry::Validation.Form do
230
+ Dry::Validation.Params do
231
231
  required(:foo).maybe(:false?)
232
232
  end
233
233
  end
@@ -285,7 +285,7 @@ RSpec.describe 'Predicates: False' do
285
285
  context 'with optional' do
286
286
  context 'with value' do
287
287
  subject(:schema) do
288
- Dry::Validation.Form do
288
+ Dry::Validation.Params do
289
289
  optional(:foo).value(:false?)
290
290
  end
291
291
  end
@@ -341,7 +341,7 @@ RSpec.describe 'Predicates: False' do
341
341
 
342
342
  context 'with filled' do
343
343
  subject(:schema) do
344
- Dry::Validation.Form do
344
+ Dry::Validation.Params do
345
345
  optional(:foo).filled(:false?)
346
346
  end
347
347
  end
@@ -397,7 +397,7 @@ RSpec.describe 'Predicates: False' do
397
397
 
398
398
  context 'with maybe' do
399
399
  subject(:schema) do
400
- Dry::Validation.Form do
400
+ Dry::Validation.Params do
401
401
  optional(:foo).maybe(:false?)
402
402
  end
403
403
  end
@@ -1,7 +1,7 @@
1
1
  RSpec.describe 'Predicates: Filled' do
2
2
  context 'with key' do
3
3
  subject(:schema) do
4
- Dry::Validation.Form do
4
+ Dry::Validation.Params do
5
5
  required(:foo) { filled? }
6
6
  end
7
7
  end
@@ -57,7 +57,7 @@ RSpec.describe 'Predicates: Filled' do
57
57
 
58
58
  context 'with optional' do
59
59
  subject(:schema) do
60
- Dry::Validation.Form do
60
+ Dry::Validation.Params do
61
61
  optional(:foo) { filled? }
62
62
  end
63
63
  end
@@ -115,7 +115,7 @@ RSpec.describe 'Predicates: Filled' do
115
115
  context 'with required' do
116
116
  context 'with value' do
117
117
  subject(:schema) do
118
- Dry::Validation.Form do
118
+ Dry::Validation.Params do
119
119
  required(:foo).value(:filled?)
120
120
  end
121
121
  end
@@ -171,13 +171,13 @@ RSpec.describe 'Predicates: Filled' do
171
171
 
172
172
  context 'with filled' do
173
173
  it "raises error" do
174
- expect { Dry::Validation.Form do
174
+ expect { Dry::Validation.Params do
175
175
  required(:foo).filled(:filled?)
176
176
  end }.to raise_error InvalidSchemaError
177
177
  end
178
178
 
179
179
  subject(:schema) do
180
- Dry::Validation.Form do
180
+ Dry::Validation.Params do
181
181
  required(:foo).filled
182
182
  end
183
183
  end
@@ -233,7 +233,7 @@ RSpec.describe 'Predicates: Filled' do
233
233
 
234
234
  context 'with maybe' do
235
235
  subject(:schema) do
236
- Dry::Validation.Form do
236
+ Dry::Validation.Params do
237
237
  required(:foo).maybe(:filled?)
238
238
  end
239
239
  end
@@ -291,7 +291,7 @@ RSpec.describe 'Predicates: Filled' do
291
291
  context 'with optional' do
292
292
  context 'with value' do
293
293
  subject(:schema) do
294
- Dry::Validation.Form do
294
+ Dry::Validation.Params do
295
295
  optional(:foo).value(:filled?)
296
296
  end
297
297
  end
@@ -347,13 +347,13 @@ RSpec.describe 'Predicates: Filled' do
347
347
 
348
348
  context 'with filled' do
349
349
  it "raises error" do
350
- expect { Dry::Validation.Form do
350
+ expect { Dry::Validation.Params do
351
351
  optional(:foo).filled(:filled?)
352
352
  end }.to raise_error InvalidSchemaError
353
353
  end
354
354
 
355
355
  subject(:schema) do
356
- Dry::Validation.Form do
356
+ Dry::Validation.Params do
357
357
  optional(:foo).filled
358
358
  end
359
359
  end
@@ -409,7 +409,7 @@ RSpec.describe 'Predicates: Filled' do
409
409
 
410
410
  context 'with maybe' do
411
411
  subject(:schema) do
412
- Dry::Validation.Form do
412
+ Dry::Validation.Params do
413
413
  optional(:foo).maybe(:filled?)
414
414
  end
415
415
  end
@@ -1,7 +1,7 @@
1
1
  RSpec.describe 'Predicates: Format' do
2
2
  context 'with required' do
3
3
  subject(:schema) do
4
- Dry::Validation.Form do
4
+ Dry::Validation.Params do
5
5
  required(:foo) { str? & format?(/bar/) }
6
6
  end
7
7
  end
@@ -57,7 +57,7 @@ RSpec.describe 'Predicates: Format' do
57
57
 
58
58
  context 'with optional' do
59
59
  subject(:schema) do
60
- Dry::Validation.Form do
60
+ Dry::Validation.Params do
61
61
  optional(:foo) { str? & format?(/bar/) }
62
62
  end
63
63
  end
@@ -115,7 +115,7 @@ RSpec.describe 'Predicates: Format' do
115
115
  context 'with required' do
116
116
  context 'with value' do
117
117
  subject(:schema) do
118
- Dry::Validation.Form do
118
+ Dry::Validation.Params do
119
119
  required(:foo).value(:str?, format?: /bar/)
120
120
  end
121
121
  end
@@ -171,7 +171,7 @@ RSpec.describe 'Predicates: Format' do
171
171
 
172
172
  context 'with filled' do
173
173
  subject(:schema) do
174
- Dry::Validation.Form do
174
+ Dry::Validation.Params do
175
175
  required(:foo).filled(:str?, format?: /bar/)
176
176
  end
177
177
  end
@@ -227,7 +227,7 @@ RSpec.describe 'Predicates: Format' do
227
227
 
228
228
  context 'with maybe' do
229
229
  subject(:schema) do
230
- Dry::Validation.Form do
230
+ Dry::Validation.Params do
231
231
  required(:foo).maybe(:str?, format?: /bar/)
232
232
  end
233
233
  end
@@ -284,7 +284,7 @@ RSpec.describe 'Predicates: Format' do
284
284
  context 'with optional' do
285
285
  context 'with value' do
286
286
  subject(:schema) do
287
- Dry::Validation.Form do
287
+ Dry::Validation.Params do
288
288
  optional(:foo).value(:str?, format?: /bar/)
289
289
  end
290
290
  end
@@ -340,7 +340,7 @@ RSpec.describe 'Predicates: Format' do
340
340
 
341
341
  context 'with filled' do
342
342
  subject(:schema) do
343
- Dry::Validation.Form do
343
+ Dry::Validation.Params do
344
344
  optional(:foo).filled(:str?, format?: /bar/)
345
345
  end
346
346
  end
@@ -396,7 +396,7 @@ RSpec.describe 'Predicates: Format' do
396
396
 
397
397
  context 'with maybe' do
398
398
  subject(:schema) do
399
- Dry::Validation.Form do
399
+ Dry::Validation.Params do
400
400
  optional(:foo).maybe(:str?, format?: /bar/)
401
401
  end
402
402
  end
@@ -1,7 +1,7 @@
1
1
  RSpec.describe 'Predicates: Gt' do
2
2
  context 'with required' do
3
3
  subject(:schema) do
4
- Dry::Validation.Form do
4
+ Dry::Validation.Params do
5
5
  required(:foo) { int? & gt?(23) }
6
6
  end
7
7
  end
@@ -65,7 +65,7 @@ RSpec.describe 'Predicates: Gt' do
65
65
 
66
66
  context 'with optional' do
67
67
  subject(:schema) do
68
- Dry::Validation.Form do
68
+ Dry::Validation.Params do
69
69
  optional(:foo) { int? & gt?(23) }
70
70
  end
71
71
  end
@@ -131,7 +131,7 @@ RSpec.describe 'Predicates: Gt' do
131
131
  context 'with required' do
132
132
  context 'with value' do
133
133
  subject(:schema) do
134
- Dry::Validation.Form do
134
+ Dry::Validation.Params do
135
135
  required(:foo).value(:int?, gt?: 23)
136
136
  end
137
137
  end
@@ -195,7 +195,7 @@ RSpec.describe 'Predicates: Gt' do
195
195
 
196
196
  context 'with filled' do
197
197
  subject(:schema) do
198
- Dry::Validation.Form do
198
+ Dry::Validation.Params do
199
199
  required(:foo).filled(:int?, gt?: 23)
200
200
  end
201
201
  end
@@ -259,7 +259,7 @@ RSpec.describe 'Predicates: Gt' do
259
259
 
260
260
  context 'with maybe' do
261
261
  subject(:schema) do
262
- Dry::Validation.Form do
262
+ Dry::Validation.Params do
263
263
  required(:foo).maybe(:int?, gt?: 23)
264
264
  end
265
265
  end
@@ -325,7 +325,7 @@ RSpec.describe 'Predicates: Gt' do
325
325
  context 'with optional' do
326
326
  context 'with value' do
327
327
  subject(:schema) do
328
- Dry::Validation.Form do
328
+ Dry::Validation.Params do
329
329
  optional(:foo).value(:int?, gt?: 23)
330
330
  end
331
331
  end
@@ -389,7 +389,7 @@ RSpec.describe 'Predicates: Gt' do
389
389
 
390
390
  context 'with filled' do
391
391
  subject(:schema) do
392
- Dry::Validation.Form do
392
+ Dry::Validation.Params do
393
393
  optional(:foo).filled(:int?, gt?: 23)
394
394
  end
395
395
  end
@@ -453,7 +453,7 @@ RSpec.describe 'Predicates: Gt' do
453
453
 
454
454
  context 'with maybe' do
455
455
  subject(:schema) do
456
- Dry::Validation.Form do
456
+ Dry::Validation.Params do
457
457
  optional(:foo).maybe(:int?, gt?: 23)
458
458
  end
459
459
  end
@@ -1,7 +1,7 @@
1
1
  RSpec.describe 'Predicates: Gteq' do
2
2
  context 'with required' do
3
3
  subject(:schema) do
4
- Dry::Validation.Form do
4
+ Dry::Validation.Params do
5
5
  required(:foo) { int? & gteq?(23) }
6
6
  end
7
7
  end
@@ -65,7 +65,7 @@ RSpec.describe 'Predicates: Gteq' do
65
65
 
66
66
  context 'with optional' do
67
67
  subject(:schema) do
68
- Dry::Validation.Form do
68
+ Dry::Validation.Params do
69
69
  optional(:foo) { int? & gteq?(23) }
70
70
  end
71
71
  end
@@ -131,7 +131,7 @@ RSpec.describe 'Predicates: Gteq' do
131
131
  context 'with required' do
132
132
  context 'with value' do
133
133
  subject(:schema) do
134
- Dry::Validation.Form do
134
+ Dry::Validation.Params do
135
135
  required(:foo).value(:int?, gteq?: 23)
136
136
  end
137
137
  end
@@ -195,7 +195,7 @@ RSpec.describe 'Predicates: Gteq' do
195
195
 
196
196
  context 'with filled' do
197
197
  subject(:schema) do
198
- Dry::Validation.Form do
198
+ Dry::Validation.Params do
199
199
  required(:foo).filled(:int?, gteq?: 23)
200
200
  end
201
201
  end
@@ -259,7 +259,7 @@ RSpec.describe 'Predicates: Gteq' do
259
259
 
260
260
  context 'with maybe' do
261
261
  subject(:schema) do
262
- Dry::Validation.Form do
262
+ Dry::Validation.Params do
263
263
  required(:foo).maybe(:int?, gteq?: 23)
264
264
  end
265
265
  end
@@ -325,7 +325,7 @@ RSpec.describe 'Predicates: Gteq' do
325
325
  context 'with optional' do
326
326
  context 'with value' do
327
327
  subject(:schema) do
328
- Dry::Validation.Form do
328
+ Dry::Validation.Params do
329
329
  optional(:foo).value(:int?, gteq?: 23)
330
330
  end
331
331
  end
@@ -389,7 +389,7 @@ RSpec.describe 'Predicates: Gteq' do
389
389
 
390
390
  context 'with filled' do
391
391
  subject(:schema) do
392
- Dry::Validation.Form do
392
+ Dry::Validation.Params do
393
393
  optional(:foo).filled(:int?, gteq?: 23)
394
394
  end
395
395
  end
@@ -453,7 +453,7 @@ RSpec.describe 'Predicates: Gteq' do
453
453
 
454
454
  context 'with maybe' do
455
455
  subject(:schema) do
456
- Dry::Validation.Form do
456
+ Dry::Validation.Params do
457
457
  optional(:foo).maybe(:int?, gteq?: 23)
458
458
  end
459
459
  end
@@ -1,7 +1,7 @@
1
1
  RSpec.describe 'Predicates: Included In' do
2
2
  context 'with required' do
3
3
  subject(:schema) do
4
- Dry::Validation.Form do
4
+ Dry::Validation.Params do
5
5
  required(:foo) { included_in?(%w(1 3 5)) }
6
6
  end
7
7
  end
@@ -57,7 +57,7 @@ RSpec.describe 'Predicates: Included In' do
57
57
 
58
58
  context 'with optional' do
59
59
  subject(:schema) do
60
- Dry::Validation.Form do
60
+ Dry::Validation.Params do
61
61
  optional(:foo) { included_in?(%w(1 3 5)) }
62
62
  end
63
63
  end
@@ -115,7 +115,7 @@ RSpec.describe 'Predicates: Included In' do
115
115
  context 'with required' do
116
116
  context 'with value' do
117
117
  subject(:schema) do
118
- Dry::Validation.Form do
118
+ Dry::Validation.Params do
119
119
  required(:foo).value(included_in?: %w(1 3 5))
120
120
  end
121
121
  end
@@ -171,7 +171,7 @@ RSpec.describe 'Predicates: Included In' do
171
171
 
172
172
  context 'with filled' do
173
173
  subject(:schema) do
174
- Dry::Validation.Form do
174
+ Dry::Validation.Params do
175
175
  required(:foo).filled(included_in?: %w(1 3 5))
176
176
  end
177
177
  end
@@ -227,7 +227,7 @@ RSpec.describe 'Predicates: Included In' do
227
227
 
228
228
  context 'with maybe' do
229
229
  subject(:schema) do
230
- Dry::Validation.Form do
230
+ Dry::Validation.Params do
231
231
  required(:foo).maybe(included_in?: %w(1 3 5))
232
232
  end
233
233
  end
@@ -285,7 +285,7 @@ RSpec.describe 'Predicates: Included In' do
285
285
  context 'with optional' do
286
286
  context 'with value' do
287
287
  subject(:schema) do
288
- Dry::Validation.Form do
288
+ Dry::Validation.Params do
289
289
  optional(:foo).value(included_in?: %w(1 3 5))
290
290
  end
291
291
  end
@@ -341,7 +341,7 @@ RSpec.describe 'Predicates: Included In' do
341
341
 
342
342
  context 'with filled' do
343
343
  subject(:schema) do
344
- Dry::Validation.Form do
344
+ Dry::Validation.Params do
345
345
  optional(:foo).filled(included_in?: %w(1 3 5))
346
346
  end
347
347
  end
@@ -397,7 +397,7 @@ RSpec.describe 'Predicates: Included In' do
397
397
 
398
398
  context 'with maybe' do
399
399
  subject(:schema) do
400
- Dry::Validation.Form do
400
+ Dry::Validation.Params do
401
401
  optional(:foo).maybe(included_in?: %w(1 3 5))
402
402
  end
403
403
  end
@@ -1,7 +1,7 @@
1
1
  RSpec.describe 'Predicates: Includes' do
2
2
  context 'with required' do
3
3
  subject(:schema) do
4
- Dry::Validation.Form do
4
+ Dry::Validation.Params do
5
5
  required(:foo) { array? { each { int? } & includes?(1) } }
6
6
  end
7
7
  end
@@ -49,7 +49,7 @@ RSpec.describe 'Predicates: Includes' do
49
49
 
50
50
  context 'with optional' do
51
51
  subject(:schema) do
52
- Dry::Validation.Form do
52
+ Dry::Validation.Params do
53
53
  optional(:foo) { array? { each { int? } & includes?(1) } }
54
54
  end
55
55
  end
@@ -99,7 +99,7 @@ RSpec.describe 'Predicates: Includes' do
99
99
  context 'with required' do
100
100
  context 'with value' do
101
101
  subject(:schema) do
102
- Dry::Validation.Form do
102
+ Dry::Validation.Params do
103
103
  required(:foo).value(includes?: 'Hello')
104
104
  end
105
105
  end
@@ -147,7 +147,7 @@ RSpec.describe 'Predicates: Includes' do
147
147
 
148
148
  context 'with filled' do
149
149
  subject(:schema) do
150
- Dry::Validation.Form do
150
+ Dry::Validation.Params do
151
151
  required(:foo).filled(includes?: 'Hello')
152
152
  end
153
153
  end
@@ -195,7 +195,7 @@ RSpec.describe 'Predicates: Includes' do
195
195
 
196
196
  context 'with maybe' do
197
197
  subject(:schema) do
198
- Dry::Validation.Form do
198
+ Dry::Validation.Params do
199
199
  required(:foo).maybe(includes?: 'Hello')
200
200
  end
201
201
  end
@@ -245,7 +245,7 @@ RSpec.describe 'Predicates: Includes' do
245
245
  context 'with optional' do
246
246
  context 'with value' do
247
247
  subject(:schema) do
248
- Dry::Validation.Form do
248
+ Dry::Validation.Params do
249
249
  optional(:foo).value(includes?: 'Hello')
250
250
  end
251
251
  end
@@ -293,7 +293,7 @@ RSpec.describe 'Predicates: Includes' do
293
293
 
294
294
  context 'with filled' do
295
295
  subject(:schema) do
296
- Dry::Validation.Form do
296
+ Dry::Validation.Params do
297
297
  optional(:foo).filled(includes?: 'Hello')
298
298
  end
299
299
  end
@@ -341,7 +341,7 @@ RSpec.describe 'Predicates: Includes' do
341
341
 
342
342
  context 'with maybe' do
343
343
  subject(:schema) do
344
- Dry::Validation.Form do
344
+ Dry::Validation.Params do
345
345
  optional(:foo).maybe(includes?: 'Hello')
346
346
  end
347
347
  end