reform 2.2.4 → 2.3.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.
Files changed (99) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +5 -1
  3. data/.rubocop.yml +30 -0
  4. data/.rubocop_todo.yml +460 -0
  5. data/.travis.yml +11 -6
  6. data/Appraisals +8 -0
  7. data/CHANGES.md +54 -4
  8. data/CONTRIBUTING.md +31 -0
  9. data/Gemfile +2 -16
  10. data/ISSUE_TEMPLATE.md +25 -0
  11. data/LICENSE.txt +1 -1
  12. data/README.md +5 -7
  13. data/Rakefile +18 -9
  14. data/gemfiles/0.13.0.gemfile +8 -0
  15. data/gemfiles/1.5.0.gemfile +9 -0
  16. data/lib/reform.rb +1 -0
  17. data/lib/reform/contract.rb +7 -17
  18. data/lib/reform/contract/custom_error.rb +41 -0
  19. data/lib/reform/contract/validate.rb +53 -23
  20. data/lib/reform/errors.rb +61 -0
  21. data/lib/reform/form.rb +36 -10
  22. data/lib/reform/form/call.rb +1 -1
  23. data/lib/reform/form/composition.rb +2 -2
  24. data/lib/reform/form/dry.rb +10 -58
  25. data/lib/reform/form/dry/input_hash.rb +37 -0
  26. data/lib/reform/form/dry/new_api.rb +46 -0
  27. data/lib/reform/form/dry/old_api.rb +61 -0
  28. data/lib/reform/form/populator.rb +11 -27
  29. data/lib/reform/form/prepopulate.rb +4 -3
  30. data/lib/reform/form/validate.rb +28 -13
  31. data/lib/reform/result.rb +90 -0
  32. data/lib/reform/validation.rb +19 -11
  33. data/lib/reform/validation/groups.rb +12 -27
  34. data/lib/reform/version.rb +1 -1
  35. data/reform.gemspec +15 -13
  36. data/test/benchmarking.rb +39 -6
  37. data/test/call_new_api.rb +23 -0
  38. data/test/{call_test.rb → call_old_api.rb} +4 -4
  39. data/test/changed_test.rb +8 -8
  40. data/test/coercion_test.rb +51 -19
  41. data/test/composition_new_api.rb +186 -0
  42. data/test/{composition_test.rb → composition_old_api.rb} +66 -31
  43. data/test/contract/custom_error_test.rb +55 -0
  44. data/test/contract_new_api.rb +77 -0
  45. data/test/{contract_test.rb → contract_old_api.rb} +13 -13
  46. data/test/default_test.rb +2 -2
  47. data/test/deserialize_test.rb +11 -14
  48. data/test/errors_new_api.rb +225 -0
  49. data/test/errors_old_api.rb +230 -0
  50. data/test/feature_test.rb +8 -10
  51. data/test/fixtures/dry_error_messages.yml +73 -23
  52. data/test/fixtures/dry_new_api_error_messages.yml +104 -0
  53. data/test/form_new_api.rb +57 -0
  54. data/test/{form_test.rb → form_old_api.rb} +5 -5
  55. data/test/form_option_new_api.rb +24 -0
  56. data/test/{form_option_test.rb → form_option_old_api.rb} +4 -4
  57. data/test/from_test.rb +9 -13
  58. data/test/inherit_new_api.rb +105 -0
  59. data/test/inherit_old_api.rb +105 -0
  60. data/test/{module_test.rb → module_new_api.rb} +20 -25
  61. data/test/module_old_api.rb +146 -0
  62. data/test/parse_option_test.rb +40 -0
  63. data/test/parse_pipeline_test.rb +3 -3
  64. data/test/populate_new_api.rb +304 -0
  65. data/test/{populate_test.rb → populate_old_api.rb} +83 -49
  66. data/test/populator_skip_test.rb +9 -9
  67. data/test/prepopulator_test.rb +8 -9
  68. data/test/read_only_test.rb +12 -1
  69. data/test/readable_test.rb +7 -7
  70. data/test/reform_new_api.rb +204 -0
  71. data/test/{reform_test.rb → reform_old_api.rb} +30 -51
  72. data/test/save_new_api.rb +101 -0
  73. data/test/{save_test.rb → save_old_api.rb} +32 -20
  74. data/test/setup_test.rb +8 -8
  75. data/test/{skip_if_test.rb → skip_if_new_api.rb} +23 -12
  76. data/test/skip_if_old_api.rb +92 -0
  77. data/test/skip_setter_and_getter_test.rb +3 -4
  78. data/test/test_helper.rb +25 -14
  79. data/test/validate_new_api.rb +408 -0
  80. data/test/{validate_test.rb → validate_old_api.rb} +59 -69
  81. data/test/validation/dry_validation_new_api.rb +836 -0
  82. data/test/validation/dry_validation_old_api.rb +772 -0
  83. data/test/validation/result_test.rb +77 -0
  84. data/test/validation_library_provided_test.rb +16 -0
  85. data/test/virtual_test.rb +47 -7
  86. data/test/writeable_test.rb +35 -6
  87. metadata +127 -56
  88. data/gemfiles/Gemfile.disposable-0.3 +0 -6
  89. data/lib/reform/contract/errors.rb +0 -43
  90. data/lib/reform/form/mongoid.rb +0 -37
  91. data/lib/reform/form/orm.rb +0 -26
  92. data/lib/reform/mongoid.rb +0 -4
  93. data/test/deprecation_test.rb +0 -27
  94. data/test/errors_test.rb +0 -165
  95. data/test/inherit_test.rb +0 -119
  96. data/test/readonly_test.rb +0 -14
  97. data/test/validation/dry_test.rb +0 -60
  98. data/test/validation/dry_validation_test.rb +0 -352
  99. data/test/validation/errors.yml +0 -4
@@ -0,0 +1,77 @@
1
+ require "test_helper"
2
+
3
+ class ErrorsResultTest < Minitest::Spec
4
+ MyResult = Struct.new(:success?, :errors) do
5
+ def failure?; !success? end
6
+ end
7
+
8
+ # TODO: errors(args) not tested.
9
+
10
+ describe "Contract::Result#success?" do
11
+ let(:failed) { MyResult.new(false) }
12
+ let(:succeeded) { MyResult.new(true) }
13
+
14
+ it { Reform::Contract::Result.new([failed, failed]).success?.must_equal false }
15
+ it { Reform::Contract::Result.new([succeeded, failed]).success?.must_equal false }
16
+ it { Reform::Contract::Result.new([failed, succeeded]).success?.must_equal false }
17
+ it { Reform::Contract::Result.new([succeeded, succeeded]).success?.must_equal true }
18
+ end
19
+
20
+ describe "Contract::Result#errors" do
21
+ let(:results) do
22
+ [
23
+ MyResult.new(false, {length: ["no Int"]}),
24
+ MyResult.new(false, {title: ["must be filled"], nested: {something: []}}),
25
+ MyResult.new(false, {title: ["must be filled"], nested: {something: []}}),
26
+ MyResult.new(false, {title: ["something more"], nested: {something: []}})
27
+ ]
28
+ end
29
+
30
+ it { Reform::Contract::Result.new(results).errors.must_equal({title: ["must be filled", "something more"], length: ["no Int"]}) }
31
+ end
32
+
33
+ describe "Result::Pointer" do
34
+ let(:errors) do # dry result #errors format.
35
+ {
36
+ title: ["ignore"],
37
+ artist: {age: ["too old"],
38
+ bands: {
39
+ 0 => {name: "too new school"},
40
+ 1 => {name: "too boring"},
41
+ }
42
+ }
43
+ }
44
+ end
45
+
46
+ let(:top) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), []) }
47
+ it { top.success?.must_equal false }
48
+ it { top.errors.must_equal errors }
49
+
50
+ let(:artist) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), [:artist]) }
51
+ it { artist.success?.must_equal false }
52
+ it { artist.errors.must_equal({age: ["too old"], bands: {0 => {name: "too new school"}, 1 => {name: "too boring"}}}) }
53
+
54
+ let(:band) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), [:artist, :bands, 1]) }
55
+ it { band.success?.must_equal false }
56
+ it { band.errors.must_equal({name: "too boring"}) }
57
+
58
+ describe "advance" do
59
+ let(:advanced) { artist.advance(:bands, 1) }
60
+
61
+ it { advanced.success?.must_equal false }
62
+ it { advanced.errors.must_equal({name: "too boring"}) }
63
+
64
+ it { artist.advance(%i[absolute nonsense]).must_be_nil }
65
+ end
66
+ end
67
+ end
68
+
69
+ # validation group:
70
+
71
+ # form.errors/messages/hint(*args) ==> {:title: [..]}
72
+ # @call_result.errors/messages/hint(*args) }
73
+
74
+ # # result = Result(original_result => [:band, :label], my_local_result => [] )
75
+ # # result.messages(locale: :en) merges original_result and my_local_result
76
+
77
+ # form.errors => Result(fetch tree of all nested forms.messages(*args))
@@ -0,0 +1,16 @@
1
+ require "reform"
2
+ require "minitest/autorun"
3
+
4
+ class ValidationLibraryProvidedTest < MiniTest::Spec
5
+ it "no validation library loaded" do
6
+ assert_raises Reform::Validation::NoValidationLibraryError do
7
+ class PersonForm < Reform::Form
8
+ property :name
9
+
10
+ validation do
11
+ required(:name).maybe(:str?)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,16 +1,20 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class VirtualTest < MiniTest::Spec
4
- class CreditCardForm < Reform::Form
4
+ class CreditCardForm < TestForm
5
5
  property :credit_card_number, virtual: true # no read, no write, it's virtual.
6
+ collection :transactions, virtual: true, populate_if_empty: OpenStruct do
7
+ property :id
8
+ end
6
9
  end
7
10
 
8
- let (:form) { CreditCardForm.new(Object.new) }
11
+ let(:form) { CreditCardForm.new(Object.new) }
9
12
 
10
13
  it {
11
- form.validate("credit_card_number" => "123")
14
+ form.validate(credit_card_number: "123", transactions: [id: 1])
12
15
 
13
- form.credit_card_number.must_equal "123" # this is still readable in the UI.
16
+ form.credit_card_number.must_equal "123" # this is still readable in the UI.
17
+ form.transactions.first.id.must_equal 1 # this is still readable in the UI.
14
18
 
15
19
  form.sync
16
20
 
@@ -19,6 +23,42 @@ class VirtualTest < MiniTest::Spec
19
23
  hash = nested
20
24
  end
21
25
 
22
- hash.must_equal("credit_card_number"=> "123")
26
+ hash.must_equal("credit_card_number" => "123", "transactions" => ["id" => 1])
27
+ }
28
+ end
29
+
30
+ class VirtualAndDefaultTest < MiniTest::Spec
31
+ class CreditCardForm < TestForm
32
+ property :credit_card_number, virtual: true, default: "123" # no read, no write, it's virtual.
33
+ collection :transactions, virtual: true, populate_if_empty: OpenStruct, default: [OpenStruct.new(id: 2)] do
34
+ property :id
35
+ end
36
+ end
37
+
38
+ def hash(form)
39
+ hash = {}
40
+ form.save do |nested|
41
+ hash = nested
42
+ end
43
+ hash
44
+ end
45
+
46
+ let(:form) { CreditCardForm.new(Object.new) }
47
+
48
+ it {
49
+ form = CreditCardForm.new(Object.new)
50
+ form.validate({})
51
+
52
+ hash(form).must_equal("credit_card_number" => "123", "transactions" => ["id" => 2])
53
+
54
+ form = CreditCardForm.new(Object.new)
55
+ form.validate(credit_card_number: "123", transactions: [id: 1])
56
+
57
+ form.credit_card_number.must_equal "123" # this is still readable in the UI.
58
+ form.transactions.first.id.must_equal 1 # this is still readable in the UI.
59
+
60
+ form.sync
61
+
62
+ hash(form).must_equal("credit_card_number" => "123", "transactions" => ["id" => 1])
23
63
  }
24
- end
64
+ end
@@ -1,14 +1,14 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class WriteableTest < MiniTest::Spec
4
4
  Location = Struct.new(:country)
5
5
 
6
- class LocationForm < Reform::Form
6
+ class LocationForm < TestForm
7
7
  property :country, writeable: false
8
8
  end
9
9
 
10
- let (:loc) { Location.new("Australia") }
11
- let (:form) { LocationForm.new(loc) }
10
+ let(:loc) { Location.new("Australia") }
11
+ let(:form) { LocationForm.new(loc) }
12
12
 
13
13
  it do
14
14
  form.country.must_equal "Australia"
@@ -24,6 +24,35 @@ class WriteableTest < MiniTest::Spec
24
24
  hash = nested
25
25
  end
26
26
 
27
- hash.must_equal("country"=> "Germany")
27
+ hash.must_equal("country" => "Germany")
28
28
  end
29
- end
29
+ end
30
+
31
+ # writable option is alias of writeable option.
32
+ class WritableTest < MiniTest::Spec
33
+ Location = Struct.new(:country)
34
+
35
+ class LocationForm < TestForm
36
+ property :country, writable: false
37
+ end
38
+
39
+ let(:loc) { Location.new("Australia") }
40
+ let(:form) { LocationForm.new(loc) }
41
+
42
+ it do
43
+ form.country.must_equal "Australia"
44
+
45
+ form.validate("country" => "Germany") # this usually won't change when submitting.
46
+ form.country.must_equal "Germany"
47
+
48
+ form.sync
49
+ loc.country.must_equal "Australia" # the writer wasn't called.
50
+
51
+ hash = {}
52
+ form.save do |nested|
53
+ hash = nested
54
+ end
55
+
56
+ hash.must_equal("country" => "Germany")
57
+ end
58
+ end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reform
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.4
4
+ version: 2.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
8
- - Garrett Heinlen
8
+ - Fran Worley
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-01-31 00:00:00.000000000 Z
12
+ date: 2020-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: disposable
@@ -17,14 +17,20 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 0.4.1
20
+ version: 0.4.2
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.5.0
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
28
  - - ">="
26
29
  - !ruby/object:Gem::Version
27
- version: 0.4.1
30
+ version: 0.4.2
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.5.0
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: representable
30
36
  requirement: !ruby/object:Gem::Requirement
@@ -45,6 +51,20 @@ dependencies:
45
51
  - - "<"
46
52
  - !ruby/object:Gem::Version
47
53
  version: 3.1.0
54
+ - !ruby/object:Gem::Dependency
55
+ name: uber
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: 0.2.0
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: 0.2.0
48
68
  - !ruby/object:Gem::Dependency
49
69
  name: bundler
50
70
  requirement: !ruby/object:Gem::Requirement
@@ -60,7 +80,7 @@ dependencies:
60
80
  - !ruby/object:Gem::Version
61
81
  version: '0'
62
82
  - !ruby/object:Gem::Dependency
63
- name: rake
83
+ name: minitest
64
84
  requirement: !ruby/object:Gem::Requirement
65
85
  requirements:
66
86
  - - ">="
@@ -74,7 +94,7 @@ dependencies:
74
94
  - !ruby/object:Gem::Version
75
95
  version: '0'
76
96
  - !ruby/object:Gem::Dependency
77
- name: minitest
97
+ name: minitest-line
78
98
  requirement: !ruby/object:Gem::Requirement
79
99
  requirements:
80
100
  - - ">="
@@ -88,7 +108,7 @@ dependencies:
88
108
  - !ruby/object:Gem::Version
89
109
  version: '0'
90
110
  - !ruby/object:Gem::Dependency
91
- name: dry-types
111
+ name: pry-byebug
92
112
  requirement: !ruby/object:Gem::Requirement
93
113
  requirements:
94
114
  - - ">="
@@ -116,93 +136,130 @@ dependencies:
116
136
  - !ruby/object:Gem::Version
117
137
  version: '0'
118
138
  - !ruby/object:Gem::Dependency
119
- name: dry-validation
139
+ name: rake
120
140
  requirement: !ruby/object:Gem::Requirement
121
141
  requirements:
122
142
  - - ">="
123
143
  - !ruby/object:Gem::Version
124
- version: 0.10.0
144
+ version: '0'
125
145
  type: :development
126
146
  prerelease: false
127
147
  version_requirements: !ruby/object:Gem::Requirement
128
148
  requirements:
129
149
  - - ">="
130
150
  - !ruby/object:Gem::Version
131
- version: 0.10.0
151
+ version: '0'
152
+ - !ruby/object:Gem::Dependency
153
+ name: rubocop
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
132
166
  description: Form object decoupled from models.
133
167
  email:
134
168
  - apotonick@gmail.com
135
- - heinleng@gmail.com
169
+ - frances@safetytoolbox.co.uk
136
170
  executables: []
137
171
  extensions: []
138
172
  extra_rdoc_files: []
139
173
  files:
140
174
  - ".gitignore"
175
+ - ".rubocop.yml"
176
+ - ".rubocop_todo.yml"
141
177
  - ".travis.yml"
178
+ - Appraisals
142
179
  - CHANGES.md
180
+ - CONTRIBUTING.md
143
181
  - Gemfile
182
+ - ISSUE_TEMPLATE.md
144
183
  - LICENSE.txt
145
184
  - README.md
146
185
  - Rakefile
147
186
  - TODO.md
148
- - gemfiles/Gemfile.disposable-0.3
187
+ - gemfiles/0.13.0.gemfile
188
+ - gemfiles/1.5.0.gemfile
149
189
  - lib/reform.rb
150
190
  - lib/reform/contract.rb
151
- - lib/reform/contract/errors.rb
191
+ - lib/reform/contract/custom_error.rb
152
192
  - lib/reform/contract/validate.rb
193
+ - lib/reform/errors.rb
153
194
  - lib/reform/form.rb
154
195
  - lib/reform/form/call.rb
155
196
  - lib/reform/form/coercion.rb
156
197
  - lib/reform/form/composition.rb
157
198
  - lib/reform/form/dry.rb
199
+ - lib/reform/form/dry/input_hash.rb
200
+ - lib/reform/form/dry/new_api.rb
201
+ - lib/reform/form/dry/old_api.rb
158
202
  - lib/reform/form/module.rb
159
- - lib/reform/form/mongoid.rb
160
- - lib/reform/form/orm.rb
161
203
  - lib/reform/form/populator.rb
162
204
  - lib/reform/form/prepopulate.rb
163
205
  - lib/reform/form/validate.rb
164
- - lib/reform/mongoid.rb
206
+ - lib/reform/result.rb
165
207
  - lib/reform/validation.rb
166
208
  - lib/reform/validation/groups.rb
167
209
  - lib/reform/version.rb
168
210
  - reform.gemspec
169
211
  - test/benchmarking.rb
170
- - test/call_test.rb
212
+ - test/call_new_api.rb
213
+ - test/call_old_api.rb
171
214
  - test/changed_test.rb
172
215
  - test/coercion_test.rb
173
- - test/composition_test.rb
174
- - test/contract_test.rb
216
+ - test/composition_new_api.rb
217
+ - test/composition_old_api.rb
218
+ - test/contract/custom_error_test.rb
219
+ - test/contract_new_api.rb
220
+ - test/contract_old_api.rb
175
221
  - test/default_test.rb
176
- - test/deprecation_test.rb
177
222
  - test/deserialize_test.rb
178
- - test/errors_test.rb
223
+ - test/errors_new_api.rb
224
+ - test/errors_old_api.rb
179
225
  - test/feature_test.rb
180
226
  - test/fixtures/dry_error_messages.yml
181
- - test/form_option_test.rb
182
- - test/form_test.rb
227
+ - test/fixtures/dry_new_api_error_messages.yml
228
+ - test/form_new_api.rb
229
+ - test/form_old_api.rb
230
+ - test/form_option_new_api.rb
231
+ - test/form_option_old_api.rb
183
232
  - test/from_test.rb
184
- - test/inherit_test.rb
185
- - test/module_test.rb
233
+ - test/inherit_new_api.rb
234
+ - test/inherit_old_api.rb
235
+ - test/module_new_api.rb
236
+ - test/module_old_api.rb
237
+ - test/parse_option_test.rb
186
238
  - test/parse_pipeline_test.rb
187
- - test/populate_test.rb
239
+ - test/populate_new_api.rb
240
+ - test/populate_old_api.rb
188
241
  - test/populator_skip_test.rb
189
242
  - test/prepopulator_test.rb
190
243
  - test/read_only_test.rb
191
244
  - test/readable_test.rb
192
- - test/readonly_test.rb
193
- - test/reform_test.rb
194
- - test/save_test.rb
245
+ - test/reform_new_api.rb
246
+ - test/reform_old_api.rb
247
+ - test/save_new_api.rb
248
+ - test/save_old_api.rb
195
249
  - test/setup_test.rb
196
- - test/skip_if_test.rb
250
+ - test/skip_if_new_api.rb
251
+ - test/skip_if_old_api.rb
197
252
  - test/skip_setter_and_getter_test.rb
198
253
  - test/test_helper.rb
199
- - test/validate_test.rb
200
- - test/validation/dry_test.rb
201
- - test/validation/dry_validation_test.rb
202
- - test/validation/errors.yml
254
+ - test/validate_new_api.rb
255
+ - test/validate_old_api.rb
256
+ - test/validation/dry_validation_new_api.rb
257
+ - test/validation/dry_validation_old_api.rb
258
+ - test/validation/result_test.rb
259
+ - test/validation_library_provided_test.rb
203
260
  - test/virtual_test.rb
204
261
  - test/writeable_test.rb
205
- homepage: https://github.com/apotonick/reform
262
+ homepage: https://github.com/trailblazer/reform
206
263
  licenses:
207
264
  - MIT
208
265
  metadata: {}
@@ -221,45 +278,59 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
278
  - !ruby/object:Gem::Version
222
279
  version: '0'
223
280
  requirements: []
224
- rubyforge_project:
225
- rubygems_version: 2.5.1
281
+ rubygems_version: 3.0.6
226
282
  signing_key:
227
283
  specification_version: 4
228
284
  summary: Form object decoupled from models with validation, population and presentation.
229
285
  test_files:
230
286
  - test/benchmarking.rb
231
- - test/call_test.rb
287
+ - test/call_new_api.rb
288
+ - test/call_old_api.rb
232
289
  - test/changed_test.rb
233
290
  - test/coercion_test.rb
234
- - test/composition_test.rb
235
- - test/contract_test.rb
291
+ - test/composition_new_api.rb
292
+ - test/composition_old_api.rb
293
+ - test/contract/custom_error_test.rb
294
+ - test/contract_new_api.rb
295
+ - test/contract_old_api.rb
236
296
  - test/default_test.rb
237
- - test/deprecation_test.rb
238
297
  - test/deserialize_test.rb
239
- - test/errors_test.rb
298
+ - test/errors_new_api.rb
299
+ - test/errors_old_api.rb
240
300
  - test/feature_test.rb
241
301
  - test/fixtures/dry_error_messages.yml
242
- - test/form_option_test.rb
243
- - test/form_test.rb
302
+ - test/fixtures/dry_new_api_error_messages.yml
303
+ - test/form_new_api.rb
304
+ - test/form_old_api.rb
305
+ - test/form_option_new_api.rb
306
+ - test/form_option_old_api.rb
244
307
  - test/from_test.rb
245
- - test/inherit_test.rb
246
- - test/module_test.rb
308
+ - test/inherit_new_api.rb
309
+ - test/inherit_old_api.rb
310
+ - test/module_new_api.rb
311
+ - test/module_old_api.rb
312
+ - test/parse_option_test.rb
247
313
  - test/parse_pipeline_test.rb
248
- - test/populate_test.rb
314
+ - test/populate_new_api.rb
315
+ - test/populate_old_api.rb
249
316
  - test/populator_skip_test.rb
250
317
  - test/prepopulator_test.rb
251
318
  - test/read_only_test.rb
252
319
  - test/readable_test.rb
253
- - test/readonly_test.rb
254
- - test/reform_test.rb
255
- - test/save_test.rb
320
+ - test/reform_new_api.rb
321
+ - test/reform_old_api.rb
322
+ - test/save_new_api.rb
323
+ - test/save_old_api.rb
256
324
  - test/setup_test.rb
257
- - test/skip_if_test.rb
325
+ - test/skip_if_new_api.rb
326
+ - test/skip_if_old_api.rb
258
327
  - test/skip_setter_and_getter_test.rb
259
328
  - test/test_helper.rb
260
- - test/validate_test.rb
261
- - test/validation/dry_test.rb
262
- - test/validation/dry_validation_test.rb
263
- - test/validation/errors.yml
329
+ - test/validate_new_api.rb
330
+ - test/validate_old_api.rb
331
+ - test/validation/dry_validation_new_api.rb
332
+ - test/validation/dry_validation_old_api.rb
333
+ - test/validation/result_test.rb
334
+ - test/validation_library_provided_test.rb
264
335
  - test/virtual_test.rb
265
336
  - test/writeable_test.rb