dry-validation 0.11.2 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
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