reform 2.3.0.rc1 → 2.3.0.rc2

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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +30 -0
  4. data/.rubocop_todo.yml +460 -0
  5. data/.travis.yml +26 -11
  6. data/CHANGES.md +25 -2
  7. data/Gemfile +6 -3
  8. data/ISSUE_TEMPLATE.md +1 -1
  9. data/README.md +2 -4
  10. data/Rakefile +18 -9
  11. data/lib/reform/contract.rb +7 -7
  12. data/lib/reform/contract/custom_error.rb +41 -0
  13. data/lib/reform/contract/validate.rb +9 -5
  14. data/lib/reform/errors.rb +27 -15
  15. data/lib/reform/form.rb +22 -11
  16. data/lib/reform/form/call.rb +1 -1
  17. data/lib/reform/form/composition.rb +2 -2
  18. data/lib/reform/form/dry.rb +10 -86
  19. data/lib/reform/form/dry/input_hash.rb +37 -0
  20. data/lib/reform/form/dry/new_api.rb +58 -0
  21. data/lib/reform/form/dry/old_api.rb +61 -0
  22. data/lib/reform/form/populator.rb +9 -11
  23. data/lib/reform/form/prepopulate.rb +3 -2
  24. data/lib/reform/form/validate.rb +19 -12
  25. data/lib/reform/result.rb +36 -9
  26. data/lib/reform/validation.rb +10 -8
  27. data/lib/reform/validation/groups.rb +2 -3
  28. data/lib/reform/version.rb +1 -1
  29. data/reform.gemspec +10 -9
  30. data/test/benchmarking.rb +10 -11
  31. data/test/call_new_api.rb +23 -0
  32. data/test/{call_test.rb → call_old_api.rb} +3 -3
  33. data/test/changed_test.rb +7 -7
  34. data/test/coercion_test.rb +50 -18
  35. data/test/composition_new_api.rb +186 -0
  36. data/test/{composition_test.rb → composition_old_api.rb} +23 -26
  37. data/test/contract/custom_error_test.rb +55 -0
  38. data/test/contract_new_api.rb +77 -0
  39. data/test/{contract_test.rb → contract_old_api.rb} +8 -8
  40. data/test/default_test.rb +1 -1
  41. data/test/deserialize_test.rb +8 -11
  42. data/test/errors_new_api.rb +225 -0
  43. data/test/errors_old_api.rb +230 -0
  44. data/test/feature_test.rb +7 -9
  45. data/test/fixtures/dry_error_messages.yml +5 -2
  46. data/test/fixtures/dry_new_api_error_messages.yml +104 -0
  47. data/test/form_new_api.rb +57 -0
  48. data/test/{form_test.rb → form_old_api.rb} +2 -2
  49. data/test/form_option_new_api.rb +24 -0
  50. data/test/{form_option_test.rb → form_option_old_api.rb} +1 -1
  51. data/test/from_test.rb +8 -12
  52. data/test/inherit_new_api.rb +105 -0
  53. data/test/{inherit_test.rb → inherit_old_api.rb} +10 -17
  54. data/test/module_new_api.rb +137 -0
  55. data/test/{module_test.rb → module_old_api.rb} +19 -15
  56. data/test/parse_option_test.rb +5 -5
  57. data/test/parse_pipeline_test.rb +2 -2
  58. data/test/populate_new_api.rb +304 -0
  59. data/test/{populate_test.rb → populate_old_api.rb} +28 -34
  60. data/test/populator_skip_test.rb +1 -2
  61. data/test/prepopulator_test.rb +5 -6
  62. data/test/read_only_test.rb +12 -1
  63. data/test/readable_test.rb +5 -5
  64. data/test/reform_new_api.rb +204 -0
  65. data/test/{reform_test.rb → reform_old_api.rb} +17 -23
  66. data/test/save_new_api.rb +101 -0
  67. data/test/{save_test.rb → save_old_api.rb} +10 -13
  68. data/test/setup_test.rb +6 -6
  69. data/test/{skip_if_test.rb → skip_if_new_api.rb} +20 -9
  70. data/test/skip_if_old_api.rb +92 -0
  71. data/test/skip_setter_and_getter_test.rb +2 -3
  72. data/test/test_helper.rb +13 -5
  73. data/test/validate_new_api.rb +408 -0
  74. data/test/{validate_test.rb → validate_old_api.rb} +43 -53
  75. data/test/validation/dry_validation_new_api.rb +826 -0
  76. data/test/validation/{dry_validation_test.rb → dry_validation_old_api.rb} +223 -116
  77. data/test/validation/result_test.rb +20 -22
  78. data/test/validation_library_provided_test.rb +3 -3
  79. data/test/virtual_test.rb +46 -6
  80. data/test/writeable_test.rb +7 -7
  81. metadata +101 -51
  82. data/test/errors_test.rb +0 -180
  83. data/test/readonly_test.rb +0 -14
@@ -8,8 +8,8 @@ class ErrorsResultTest < Minitest::Spec
8
8
  # TODO: errors(args) not tested.
9
9
 
10
10
  describe "Contract::Result#success?" do
11
- let (:failed) { MyResult.new(false) }
12
- let (:succeeded) { MyResult.new(true) }
11
+ let(:failed) { MyResult.new(false) }
12
+ let(:succeeded) { MyResult.new(true) }
13
13
 
14
14
  it { Reform::Contract::Result.new([failed, failed]).success?.must_equal false }
15
15
  it { Reform::Contract::Result.new([succeeded, failed]).success?.must_equal false }
@@ -18,62 +18,60 @@ class ErrorsResultTest < Minitest::Spec
18
18
  end
19
19
 
20
20
  describe "Contract::Result#errors" do
21
- let (:results) {
21
+ let(:results) do
22
22
  [
23
- MyResult.new(false, { title: ["must be filled"], nested: { something: [] } }),
24
- MyResult.new(false, { length: ["no Int"] })
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: []}})
25
27
  ]
26
- }
28
+ end
27
29
 
28
- it { Reform::Contract::Result.new(results).errors.must_equal({:title=>["must be filled"], :length=>["no Int"]}) }
30
+ it { Reform::Contract::Result.new(results).errors.must_equal({title: ["must be filled", "something more"], length: ["no Int"]}) }
29
31
  end
30
32
 
31
33
  describe "Result::Pointer" do
32
- let (:errors) do # dry result #errors format.
34
+ let(:errors) do # dry result #errors format.
33
35
  {
34
36
  title: ["ignore"],
35
- artist: { age: ["too old"],
37
+ artist: {age: ["too old"],
36
38
  bands: {
37
- 0 => { name: "too new school" },
38
- 1 => { name: "too boring" },
39
+ 0 => {name: "too new school"},
40
+ 1 => {name: "too boring"},
39
41
  }
40
42
  }
41
43
  }
42
44
  end
43
45
 
44
- let (:top) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), []) }
46
+ let(:top) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), []) }
45
47
  it { top.success?.must_equal false }
46
48
  it { top.errors.must_equal errors }
47
49
 
48
- let (:artist) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), [:artist]) }
50
+ let(:artist) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), [:artist]) }
49
51
  it { artist.success?.must_equal false }
50
- it { artist.errors.must_equal({:age=>["too old"], :bands=>{0=>{:name=>"too new school"}, 1=>{:name=>"too boring"}}}) }
52
+ it { artist.errors.must_equal({age: ["too old"], bands: {0 => {name: "too new school"}, 1 => {name: "too boring"}}}) }
51
53
 
52
- let (:band) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), [:artist, :bands, 1]) }
54
+ let(:band) { Reform::Contract::Result::Pointer.new(MyResult.new(false, errors), [:artist, :bands, 1]) }
53
55
  it { band.success?.must_equal false }
54
- it { band.errors.must_equal({:name=>"too boring"}) }
56
+ it { band.errors.must_equal({name: "too boring"}) }
55
57
 
56
58
  describe "advance" do
57
59
  let(:advanced) { artist.advance(:bands, 1) }
58
60
 
59
61
  it { advanced.success?.must_equal false }
60
- it { advanced.errors.must_equal({:name=>"too boring"}) }
62
+ it { advanced.errors.must_equal({name: "too boring"}) }
61
63
 
62
- it { artist.advance([:absolute, :nonsense]).must_equal nil }
64
+ it { artist.advance(%i[absolute nonsense]).must_be_nil }
63
65
  end
64
66
  end
65
67
  end
66
68
 
67
-
68
69
  # validation group:
69
70
 
70
71
  # form.errors/messages/hint(*args) ==> {:title: [..]}
71
72
  # @call_result.errors/messages/hint(*args) }
72
73
 
73
-
74
-
75
74
  # # result = Result(original_result => [:band, :label], my_local_result => [] )
76
75
  # # result.messages(locale: :en) merges original_result and my_local_result
77
76
 
78
77
  # form.errors => Result(fetch tree of all nested forms.messages(*args))
79
-
@@ -1,8 +1,8 @@
1
- require 'reform'
2
- require 'minitest/autorun'
1
+ require "reform"
2
+ require "minitest/autorun"
3
3
 
4
4
  class ValidationLibraryProvidedTest < MiniTest::Spec
5
- it 'no validation library loaded' do
5
+ it "no validation library loaded" do
6
6
  assert_raises Reform::Validation::NoValidationLibraryError do
7
7
  class PersonForm < Reform::Form
8
8
  property :name
@@ -1,16 +1,20 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class VirtualTest < MiniTest::Spec
4
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,4 +1,4 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class WriteableTest < MiniTest::Spec
4
4
  Location = Struct.new(:country)
@@ -7,8 +7,8 @@ class WriteableTest < MiniTest::Spec
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,7 +24,7 @@ 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
29
  end
30
30
 
@@ -36,8 +36,8 @@ class WritableTest < MiniTest::Spec
36
36
  property :country, writable: false
37
37
  end
38
38
 
39
- let (:loc) { Location.new("Australia") }
40
- let (:form) { LocationForm.new(loc) }
39
+ let(:loc) { Location.new("Australia") }
40
+ let(:form) { LocationForm.new(loc) }
41
41
 
42
42
  it do
43
43
  form.country.must_equal "Australia"
@@ -53,6 +53,6 @@ class WritableTest < MiniTest::Spec
53
53
  hash = nested
54
54
  end
55
55
 
56
- hash.must_equal("country"=> "Germany")
56
+ hash.must_equal("country" => "Germany")
57
57
  end
58
58
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reform
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0.rc1
4
+ version: 2.3.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-02-26 00:00:00.000000000 Z
12
+ date: 2019-11-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: disposable
@@ -32,39 +32,39 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.5.0
34
34
  - !ruby/object:Gem::Dependency
35
- name: uber
35
+ name: representable
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 2.4.0
38
41
  - - "<"
39
42
  - !ruby/object:Gem::Version
40
- version: 0.2.0
43
+ version: 3.1.0
41
44
  type: :runtime
42
45
  prerelease: false
43
46
  version_requirements: !ruby/object:Gem::Requirement
44
47
  requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 2.4.0
45
51
  - - "<"
46
52
  - !ruby/object:Gem::Version
47
- version: 0.2.0
53
+ version: 3.1.0
48
54
  - !ruby/object:Gem::Dependency
49
- name: representable
55
+ name: uber
50
56
  requirement: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: 2.4.0
55
58
  - - "<"
56
59
  - !ruby/object:Gem::Version
57
- version: 3.1.0
60
+ version: 0.2.0
58
61
  type: :runtime
59
62
  prerelease: false
60
63
  version_requirements: !ruby/object:Gem::Requirement
61
64
  requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 2.4.0
65
65
  - - "<"
66
66
  - !ruby/object:Gem::Version
67
- version: 3.1.0
67
+ version: 0.2.0
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: bundler
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -80,7 +80,7 @@ dependencies:
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  - !ruby/object:Gem::Dependency
83
- name: rake
83
+ name: minitest
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - ">="
@@ -94,7 +94,7 @@ dependencies:
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
96
  - !ruby/object:Gem::Dependency
97
- name: minitest
97
+ name: minitest-line
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - ">="
@@ -108,7 +108,7 @@ dependencies:
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  - !ruby/object:Gem::Dependency
111
- name: dry-types
111
+ name: byebug
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - ">="
@@ -136,19 +136,33 @@ dependencies:
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  - !ruby/object:Gem::Dependency
139
- name: dry-validation
139
+ name: rake
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - ">="
143
143
  - !ruby/object:Gem::Version
144
- version: 0.10.1
144
+ version: '0'
145
145
  type: :development
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - ">="
150
150
  - !ruby/object:Gem::Version
151
- version: 0.10.1
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'
152
166
  description: Form object decoupled from models.
153
167
  email:
154
168
  - apotonick@gmail.com
@@ -158,6 +172,8 @@ extensions: []
158
172
  extra_rdoc_files: []
159
173
  files:
160
174
  - ".gitignore"
175
+ - ".rubocop.yml"
176
+ - ".rubocop_todo.yml"
161
177
  - ".travis.yml"
162
178
  - CHANGES.md
163
179
  - CONTRIBUTING.md
@@ -169,6 +185,7 @@ files:
169
185
  - TODO.md
170
186
  - lib/reform.rb
171
187
  - lib/reform/contract.rb
188
+ - lib/reform/contract/custom_error.rb
172
189
  - lib/reform/contract/validate.rb
173
190
  - lib/reform/errors.rb
174
191
  - lib/reform/form.rb
@@ -176,6 +193,9 @@ files:
176
193
  - lib/reform/form/coercion.rb
177
194
  - lib/reform/form/composition.rb
178
195
  - lib/reform/form/dry.rb
196
+ - lib/reform/form/dry/input_hash.rb
197
+ - lib/reform/form/dry/new_api.rb
198
+ - lib/reform/form/dry/old_api.rb
179
199
  - lib/reform/form/module.rb
180
200
  - lib/reform/form/populator.rb
181
201
  - lib/reform/form/prepopulate.rb
@@ -186,37 +206,52 @@ files:
186
206
  - lib/reform/version.rb
187
207
  - reform.gemspec
188
208
  - test/benchmarking.rb
189
- - test/call_test.rb
209
+ - test/call_new_api.rb
210
+ - test/call_old_api.rb
190
211
  - test/changed_test.rb
191
212
  - test/coercion_test.rb
192
- - test/composition_test.rb
193
- - test/contract_test.rb
213
+ - test/composition_new_api.rb
214
+ - test/composition_old_api.rb
215
+ - test/contract/custom_error_test.rb
216
+ - test/contract_new_api.rb
217
+ - test/contract_old_api.rb
194
218
  - test/default_test.rb
195
219
  - test/deserialize_test.rb
196
- - test/errors_test.rb
220
+ - test/errors_new_api.rb
221
+ - test/errors_old_api.rb
197
222
  - test/feature_test.rb
198
223
  - test/fixtures/dry_error_messages.yml
199
- - test/form_option_test.rb
200
- - test/form_test.rb
224
+ - test/fixtures/dry_new_api_error_messages.yml
225
+ - test/form_new_api.rb
226
+ - test/form_old_api.rb
227
+ - test/form_option_new_api.rb
228
+ - test/form_option_old_api.rb
201
229
  - test/from_test.rb
202
- - test/inherit_test.rb
203
- - test/module_test.rb
230
+ - test/inherit_new_api.rb
231
+ - test/inherit_old_api.rb
232
+ - test/module_new_api.rb
233
+ - test/module_old_api.rb
204
234
  - test/parse_option_test.rb
205
235
  - test/parse_pipeline_test.rb
206
- - test/populate_test.rb
236
+ - test/populate_new_api.rb
237
+ - test/populate_old_api.rb
207
238
  - test/populator_skip_test.rb
208
239
  - test/prepopulator_test.rb
209
240
  - test/read_only_test.rb
210
241
  - test/readable_test.rb
211
- - test/readonly_test.rb
212
- - test/reform_test.rb
213
- - test/save_test.rb
242
+ - test/reform_new_api.rb
243
+ - test/reform_old_api.rb
244
+ - test/save_new_api.rb
245
+ - test/save_old_api.rb
214
246
  - test/setup_test.rb
215
- - test/skip_if_test.rb
247
+ - test/skip_if_new_api.rb
248
+ - test/skip_if_old_api.rb
216
249
  - test/skip_setter_and_getter_test.rb
217
250
  - test/test_helper.rb
218
- - test/validate_test.rb
219
- - test/validation/dry_validation_test.rb
251
+ - test/validate_new_api.rb
252
+ - test/validate_old_api.rb
253
+ - test/validation/dry_validation_new_api.rb
254
+ - test/validation/dry_validation_old_api.rb
220
255
  - test/validation/result_test.rb
221
256
  - test/validation_library_provided_test.rb
222
257
  - test/virtual_test.rb
@@ -241,43 +276,58 @@ required_rubygems_version: !ruby/object:Gem::Requirement
241
276
  version: 1.3.1
242
277
  requirements: []
243
278
  rubyforge_project:
244
- rubygems_version: 2.6.3
279
+ rubygems_version: 2.6.14.3
245
280
  signing_key:
246
281
  specification_version: 4
247
282
  summary: Form object decoupled from models with validation, population and presentation.
248
283
  test_files:
249
284
  - test/benchmarking.rb
250
- - test/call_test.rb
285
+ - test/call_new_api.rb
286
+ - test/call_old_api.rb
251
287
  - test/changed_test.rb
252
288
  - test/coercion_test.rb
253
- - test/composition_test.rb
254
- - test/contract_test.rb
289
+ - test/composition_new_api.rb
290
+ - test/composition_old_api.rb
291
+ - test/contract/custom_error_test.rb
292
+ - test/contract_new_api.rb
293
+ - test/contract_old_api.rb
255
294
  - test/default_test.rb
256
295
  - test/deserialize_test.rb
257
- - test/errors_test.rb
296
+ - test/errors_new_api.rb
297
+ - test/errors_old_api.rb
258
298
  - test/feature_test.rb
259
299
  - test/fixtures/dry_error_messages.yml
260
- - test/form_option_test.rb
261
- - test/form_test.rb
300
+ - test/fixtures/dry_new_api_error_messages.yml
301
+ - test/form_new_api.rb
302
+ - test/form_old_api.rb
303
+ - test/form_option_new_api.rb
304
+ - test/form_option_old_api.rb
262
305
  - test/from_test.rb
263
- - test/inherit_test.rb
264
- - test/module_test.rb
306
+ - test/inherit_new_api.rb
307
+ - test/inherit_old_api.rb
308
+ - test/module_new_api.rb
309
+ - test/module_old_api.rb
265
310
  - test/parse_option_test.rb
266
311
  - test/parse_pipeline_test.rb
267
- - test/populate_test.rb
312
+ - test/populate_new_api.rb
313
+ - test/populate_old_api.rb
268
314
  - test/populator_skip_test.rb
269
315
  - test/prepopulator_test.rb
270
316
  - test/read_only_test.rb
271
317
  - test/readable_test.rb
272
- - test/readonly_test.rb
273
- - test/reform_test.rb
274
- - test/save_test.rb
318
+ - test/reform_new_api.rb
319
+ - test/reform_old_api.rb
320
+ - test/save_new_api.rb
321
+ - test/save_old_api.rb
275
322
  - test/setup_test.rb
276
- - test/skip_if_test.rb
323
+ - test/skip_if_new_api.rb
324
+ - test/skip_if_old_api.rb
277
325
  - test/skip_setter_and_getter_test.rb
278
326
  - test/test_helper.rb
279
- - test/validate_test.rb
280
- - test/validation/dry_validation_test.rb
327
+ - test/validate_new_api.rb
328
+ - test/validate_old_api.rb
329
+ - test/validation/dry_validation_new_api.rb
330
+ - test/validation/dry_validation_old_api.rb
281
331
  - test/validation/result_test.rb
282
332
  - test/validation_library_provided_test.rb
283
333
  - test/virtual_test.rb