reform 2.2.3 → 2.3.2

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 (97) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +5 -1
  3. data/.travis.yml +11 -6
  4. data/Appraisals +8 -0
  5. data/CHANGES.md +56 -0
  6. data/CONTRIBUTING.md +31 -0
  7. data/Gemfile +2 -16
  8. data/ISSUE_TEMPLATE.md +25 -0
  9. data/LICENSE.txt +1 -1
  10. data/README.md +5 -7
  11. data/Rakefile +16 -9
  12. data/gemfiles/0.13.0.gemfile +8 -0
  13. data/gemfiles/1.5.0.gemfile +9 -0
  14. data/lib/reform.rb +1 -0
  15. data/lib/reform/contract.rb +7 -17
  16. data/lib/reform/contract/custom_error.rb +41 -0
  17. data/lib/reform/contract/validate.rb +53 -23
  18. data/lib/reform/errors.rb +61 -0
  19. data/lib/reform/form.rb +36 -10
  20. data/lib/reform/form/call.rb +1 -1
  21. data/lib/reform/form/composition.rb +2 -2
  22. data/lib/reform/form/dry.rb +10 -58
  23. data/lib/reform/form/dry/input_hash.rb +37 -0
  24. data/lib/reform/form/dry/new_api.rb +47 -0
  25. data/lib/reform/form/dry/old_api.rb +61 -0
  26. data/lib/reform/form/populator.rb +11 -29
  27. data/lib/reform/form/prepopulate.rb +5 -4
  28. data/lib/reform/form/validate.rb +28 -13
  29. data/lib/reform/result.rb +90 -0
  30. data/lib/reform/validation.rb +19 -11
  31. data/lib/reform/validation/groups.rb +12 -27
  32. data/lib/reform/version.rb +1 -1
  33. data/reform.gemspec +13 -13
  34. data/test/benchmarking.rb +39 -6
  35. data/test/call_new_api.rb +23 -0
  36. data/test/{call_test.rb → call_old_api.rb} +4 -4
  37. data/test/changed_test.rb +8 -8
  38. data/test/coercion_test.rb +51 -19
  39. data/test/composition_new_api.rb +186 -0
  40. data/test/{composition_test.rb → composition_old_api.rb} +66 -31
  41. data/test/contract/custom_error_test.rb +55 -0
  42. data/test/contract_new_api.rb +77 -0
  43. data/test/{contract_test.rb → contract_old_api.rb} +13 -13
  44. data/test/default_test.rb +2 -2
  45. data/test/deserialize_test.rb +11 -14
  46. data/test/errors_new_api.rb +225 -0
  47. data/test/errors_old_api.rb +230 -0
  48. data/test/feature_test.rb +8 -10
  49. data/test/fixtures/dry_error_messages.yml +73 -23
  50. data/test/fixtures/dry_new_api_error_messages.yml +104 -0
  51. data/test/form_new_api.rb +57 -0
  52. data/test/{form_test.rb → form_old_api.rb} +5 -5
  53. data/test/form_option_new_api.rb +24 -0
  54. data/test/{form_option_test.rb → form_option_old_api.rb} +4 -4
  55. data/test/from_test.rb +9 -13
  56. data/test/inherit_new_api.rb +105 -0
  57. data/test/inherit_old_api.rb +105 -0
  58. data/test/{module_test.rb → module_new_api.rb} +20 -25
  59. data/test/module_old_api.rb +146 -0
  60. data/test/parse_option_test.rb +40 -0
  61. data/test/parse_pipeline_test.rb +3 -3
  62. data/test/populate_new_api.rb +304 -0
  63. data/test/{populate_test.rb → populate_old_api.rb} +83 -49
  64. data/test/populator_skip_test.rb +9 -9
  65. data/test/prepopulator_test.rb +8 -9
  66. data/test/read_only_test.rb +12 -1
  67. data/test/readable_test.rb +7 -7
  68. data/test/reform_new_api.rb +204 -0
  69. data/test/{reform_test.rb → reform_old_api.rb} +30 -51
  70. data/test/save_new_api.rb +101 -0
  71. data/test/{save_test.rb → save_old_api.rb} +32 -20
  72. data/test/setup_test.rb +8 -8
  73. data/test/{skip_if_test.rb → skip_if_new_api.rb} +23 -12
  74. data/test/skip_if_old_api.rb +92 -0
  75. data/test/skip_setter_and_getter_test.rb +3 -4
  76. data/test/test_helper.rb +25 -14
  77. data/test/validate_new_api.rb +453 -0
  78. data/test/{validate_test.rb → validate_old_api.rb} +59 -69
  79. data/test/validation/dry_validation_new_api.rb +836 -0
  80. data/test/validation/dry_validation_old_api.rb +772 -0
  81. data/test/validation/result_test.rb +77 -0
  82. data/test/validation_library_provided_test.rb +16 -0
  83. data/test/virtual_test.rb +47 -7
  84. data/test/writeable_test.rb +35 -6
  85. metadata +101 -72
  86. data/gemfiles/Gemfile.disposable-0.3 +0 -6
  87. data/lib/reform/contract/errors.rb +0 -43
  88. data/lib/reform/form/mongoid.rb +0 -37
  89. data/lib/reform/form/orm.rb +0 -26
  90. data/lib/reform/mongoid.rb +0 -4
  91. data/test/deprecation_test.rb +0 -27
  92. data/test/errors_test.rb +0 -165
  93. data/test/inherit_test.rb +0 -119
  94. data/test/readonly_test.rb +0 -14
  95. data/test/validation/dry_test.rb +0 -60
  96. data/test/validation/dry_validation_test.rb +0 -352
  97. 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.3
4
+ version: 2.3.2
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: 2016-12-04 00:00:00.000000000 Z
12
+ date: 2020-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: disposable
@@ -17,60 +17,54 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 0.3.0
20
+ version: 0.4.2
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: 0.4.0
23
+ version: 0.5.0
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- version: 0.3.0
30
+ version: 0.4.2
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.4.0
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
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.15
40
+ version: 2.4.0
41
41
  - - "<"
42
42
  - !ruby/object:Gem::Version
43
- version: 0.2.0
43
+ version: 3.1.0
44
44
  type: :runtime
45
45
  prerelease: false
46
46
  version_requirements: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: 0.0.15
50
+ version: 2.4.0
51
51
  - - "<"
52
52
  - !ruby/object:Gem::Version
53
- version: 0.2.0
53
+ version: 3.1.0
54
54
  - !ruby/object:Gem::Dependency
55
- name: representable
55
+ name: uber
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 2.4.0
61
58
  - - "<"
62
59
  - !ruby/object:Gem::Version
63
- version: 3.1.0
60
+ version: 0.2.0
64
61
  type: :runtime
65
62
  prerelease: false
66
63
  version_requirements: !ruby/object:Gem::Requirement
67
64
  requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 2.4.0
71
65
  - - "<"
72
66
  - !ruby/object:Gem::Version
73
- version: 3.1.0
67
+ version: 0.2.0
74
68
  - !ruby/object:Gem::Dependency
75
69
  name: bundler
76
70
  requirement: !ruby/object:Gem::Requirement
@@ -86,7 +80,7 @@ dependencies:
86
80
  - !ruby/object:Gem::Version
87
81
  version: '0'
88
82
  - !ruby/object:Gem::Dependency
89
- name: rake
83
+ name: minitest
90
84
  requirement: !ruby/object:Gem::Requirement
91
85
  requirements:
92
86
  - - ">="
@@ -100,7 +94,7 @@ dependencies:
100
94
  - !ruby/object:Gem::Version
101
95
  version: '0'
102
96
  - !ruby/object:Gem::Dependency
103
- name: minitest
97
+ name: minitest-line
104
98
  requirement: !ruby/object:Gem::Requirement
105
99
  requirements:
106
100
  - - ">="
@@ -114,7 +108,7 @@ dependencies:
114
108
  - !ruby/object:Gem::Version
115
109
  version: '0'
116
110
  - !ruby/object:Gem::Dependency
117
- name: dry-types
111
+ name: pry-byebug
118
112
  requirement: !ruby/object:Gem::Requirement
119
113
  requirements:
120
114
  - - ">="
@@ -142,93 +136,114 @@ dependencies:
142
136
  - !ruby/object:Gem::Version
143
137
  version: '0'
144
138
  - !ruby/object:Gem::Dependency
145
- name: dry-validation
139
+ name: rake
146
140
  requirement: !ruby/object:Gem::Requirement
147
141
  requirements:
148
142
  - - ">="
149
143
  - !ruby/object:Gem::Version
150
- version: 0.10.0
144
+ version: '0'
151
145
  type: :development
152
146
  prerelease: false
153
147
  version_requirements: !ruby/object:Gem::Requirement
154
148
  requirements:
155
149
  - - ">="
156
150
  - !ruby/object:Gem::Version
157
- version: 0.10.0
151
+ version: '0'
158
152
  description: Form object decoupled from models.
159
153
  email:
160
154
  - apotonick@gmail.com
161
- - heinleng@gmail.com
155
+ - frances@safetytoolbox.co.uk
162
156
  executables: []
163
157
  extensions: []
164
158
  extra_rdoc_files: []
165
159
  files:
166
160
  - ".gitignore"
167
161
  - ".travis.yml"
162
+ - Appraisals
168
163
  - CHANGES.md
164
+ - CONTRIBUTING.md
169
165
  - Gemfile
166
+ - ISSUE_TEMPLATE.md
170
167
  - LICENSE.txt
171
168
  - README.md
172
169
  - Rakefile
173
170
  - TODO.md
174
- - gemfiles/Gemfile.disposable-0.3
171
+ - gemfiles/0.13.0.gemfile
172
+ - gemfiles/1.5.0.gemfile
175
173
  - lib/reform.rb
176
174
  - lib/reform/contract.rb
177
- - lib/reform/contract/errors.rb
175
+ - lib/reform/contract/custom_error.rb
178
176
  - lib/reform/contract/validate.rb
177
+ - lib/reform/errors.rb
179
178
  - lib/reform/form.rb
180
179
  - lib/reform/form/call.rb
181
180
  - lib/reform/form/coercion.rb
182
181
  - lib/reform/form/composition.rb
183
182
  - lib/reform/form/dry.rb
183
+ - lib/reform/form/dry/input_hash.rb
184
+ - lib/reform/form/dry/new_api.rb
185
+ - lib/reform/form/dry/old_api.rb
184
186
  - lib/reform/form/module.rb
185
- - lib/reform/form/mongoid.rb
186
- - lib/reform/form/orm.rb
187
187
  - lib/reform/form/populator.rb
188
188
  - lib/reform/form/prepopulate.rb
189
189
  - lib/reform/form/validate.rb
190
- - lib/reform/mongoid.rb
190
+ - lib/reform/result.rb
191
191
  - lib/reform/validation.rb
192
192
  - lib/reform/validation/groups.rb
193
193
  - lib/reform/version.rb
194
194
  - reform.gemspec
195
195
  - test/benchmarking.rb
196
- - test/call_test.rb
196
+ - test/call_new_api.rb
197
+ - test/call_old_api.rb
197
198
  - test/changed_test.rb
198
199
  - test/coercion_test.rb
199
- - test/composition_test.rb
200
- - test/contract_test.rb
200
+ - test/composition_new_api.rb
201
+ - test/composition_old_api.rb
202
+ - test/contract/custom_error_test.rb
203
+ - test/contract_new_api.rb
204
+ - test/contract_old_api.rb
201
205
  - test/default_test.rb
202
- - test/deprecation_test.rb
203
206
  - test/deserialize_test.rb
204
- - test/errors_test.rb
207
+ - test/errors_new_api.rb
208
+ - test/errors_old_api.rb
205
209
  - test/feature_test.rb
206
210
  - test/fixtures/dry_error_messages.yml
207
- - test/form_option_test.rb
208
- - test/form_test.rb
211
+ - test/fixtures/dry_new_api_error_messages.yml
212
+ - test/form_new_api.rb
213
+ - test/form_old_api.rb
214
+ - test/form_option_new_api.rb
215
+ - test/form_option_old_api.rb
209
216
  - test/from_test.rb
210
- - test/inherit_test.rb
211
- - test/module_test.rb
217
+ - test/inherit_new_api.rb
218
+ - test/inherit_old_api.rb
219
+ - test/module_new_api.rb
220
+ - test/module_old_api.rb
221
+ - test/parse_option_test.rb
212
222
  - test/parse_pipeline_test.rb
213
- - test/populate_test.rb
223
+ - test/populate_new_api.rb
224
+ - test/populate_old_api.rb
214
225
  - test/populator_skip_test.rb
215
226
  - test/prepopulator_test.rb
216
227
  - test/read_only_test.rb
217
228
  - test/readable_test.rb
218
- - test/readonly_test.rb
219
- - test/reform_test.rb
220
- - test/save_test.rb
229
+ - test/reform_new_api.rb
230
+ - test/reform_old_api.rb
231
+ - test/save_new_api.rb
232
+ - test/save_old_api.rb
221
233
  - test/setup_test.rb
222
- - test/skip_if_test.rb
234
+ - test/skip_if_new_api.rb
235
+ - test/skip_if_old_api.rb
223
236
  - test/skip_setter_and_getter_test.rb
224
237
  - test/test_helper.rb
225
- - test/validate_test.rb
226
- - test/validation/dry_test.rb
227
- - test/validation/dry_validation_test.rb
228
- - test/validation/errors.yml
238
+ - test/validate_new_api.rb
239
+ - test/validate_old_api.rb
240
+ - test/validation/dry_validation_new_api.rb
241
+ - test/validation/dry_validation_old_api.rb
242
+ - test/validation/result_test.rb
243
+ - test/validation_library_provided_test.rb
229
244
  - test/virtual_test.rb
230
245
  - test/writeable_test.rb
231
- homepage: https://github.com/apotonick/reform
246
+ homepage: https://github.com/trailblazer/reform
232
247
  licenses:
233
248
  - MIT
234
249
  metadata: {}
@@ -247,45 +262,59 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
262
  - !ruby/object:Gem::Version
248
263
  version: '0'
249
264
  requirements: []
250
- rubyforge_project:
251
- rubygems_version: 2.6.3
265
+ rubygems_version: 3.0.3
252
266
  signing_key:
253
267
  specification_version: 4
254
268
  summary: Form object decoupled from models with validation, population and presentation.
255
269
  test_files:
256
270
  - test/benchmarking.rb
257
- - test/call_test.rb
271
+ - test/call_new_api.rb
272
+ - test/call_old_api.rb
258
273
  - test/changed_test.rb
259
274
  - test/coercion_test.rb
260
- - test/composition_test.rb
261
- - test/contract_test.rb
275
+ - test/composition_new_api.rb
276
+ - test/composition_old_api.rb
277
+ - test/contract/custom_error_test.rb
278
+ - test/contract_new_api.rb
279
+ - test/contract_old_api.rb
262
280
  - test/default_test.rb
263
- - test/deprecation_test.rb
264
281
  - test/deserialize_test.rb
265
- - test/errors_test.rb
282
+ - test/errors_new_api.rb
283
+ - test/errors_old_api.rb
266
284
  - test/feature_test.rb
267
285
  - test/fixtures/dry_error_messages.yml
268
- - test/form_option_test.rb
269
- - test/form_test.rb
286
+ - test/fixtures/dry_new_api_error_messages.yml
287
+ - test/form_new_api.rb
288
+ - test/form_old_api.rb
289
+ - test/form_option_new_api.rb
290
+ - test/form_option_old_api.rb
270
291
  - test/from_test.rb
271
- - test/inherit_test.rb
272
- - test/module_test.rb
292
+ - test/inherit_new_api.rb
293
+ - test/inherit_old_api.rb
294
+ - test/module_new_api.rb
295
+ - test/module_old_api.rb
296
+ - test/parse_option_test.rb
273
297
  - test/parse_pipeline_test.rb
274
- - test/populate_test.rb
298
+ - test/populate_new_api.rb
299
+ - test/populate_old_api.rb
275
300
  - test/populator_skip_test.rb
276
301
  - test/prepopulator_test.rb
277
302
  - test/read_only_test.rb
278
303
  - test/readable_test.rb
279
- - test/readonly_test.rb
280
- - test/reform_test.rb
281
- - test/save_test.rb
304
+ - test/reform_new_api.rb
305
+ - test/reform_old_api.rb
306
+ - test/save_new_api.rb
307
+ - test/save_old_api.rb
282
308
  - test/setup_test.rb
283
- - test/skip_if_test.rb
309
+ - test/skip_if_new_api.rb
310
+ - test/skip_if_old_api.rb
284
311
  - test/skip_setter_and_getter_test.rb
285
312
  - test/test_helper.rb
286
- - test/validate_test.rb
287
- - test/validation/dry_test.rb
288
- - test/validation/dry_validation_test.rb
289
- - test/validation/errors.yml
313
+ - test/validate_new_api.rb
314
+ - test/validate_old_api.rb
315
+ - test/validation/dry_validation_new_api.rb
316
+ - test/validation/dry_validation_old_api.rb
317
+ - test/validation/result_test.rb
318
+ - test/validation_library_provided_test.rb
290
319
  - test/virtual_test.rb
291
320
  - test/writeable_test.rb