reform 2.2.4 → 2.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) 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 +57 -4
  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 +45 -0
  25. data/lib/reform/form/dry/old_api.rb +61 -0
  26. data/lib/reform/form/populator.rb +11 -27
  27. data/lib/reform/form/prepopulate.rb +4 -3
  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 +14 -13
  34. data/test/benchmarking.rb +39 -6
  35. data/test/call_new_api.rb +23 -0
  36. data/test/call_old_api.rb +23 -0
  37. data/test/changed_test.rb +14 -14
  38. data/test/coercion_test.rb +57 -25
  39. data/test/composition_new_api.rb +186 -0
  40. data/test/composition_old_api.rb +184 -0
  41. data/test/contract/custom_error_test.rb +55 -0
  42. data/test/contract_new_api.rb +77 -0
  43. data/test/contract_old_api.rb +77 -0
  44. data/test/default_test.rb +4 -4
  45. data/test/deserialize_test.rb +17 -20
  46. data/test/errors_new_api.rb +225 -0
  47. data/test/errors_old_api.rb +230 -0
  48. data/test/feature_test.rb +10 -12
  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} +8 -8
  53. data/test/form_option_new_api.rb +24 -0
  54. data/test/{form_option_test.rb → form_option_old_api.rb} +5 -5
  55. data/test/from_test.rb +18 -22
  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} +26 -31
  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 +4 -4
  62. data/test/populate_new_api.rb +304 -0
  63. data/test/populate_old_api.rb +304 -0
  64. data/test/populator_skip_test.rb +11 -11
  65. data/test/prepopulator_test.rb +23 -24
  66. data/test/read_only_test.rb +12 -1
  67. data/test/readable_test.rb +9 -9
  68. data/test/reform_new_api.rb +204 -0
  69. data/test/{reform_test.rb → reform_old_api.rb} +44 -65
  70. data/test/save_new_api.rb +101 -0
  71. data/test/save_old_api.rb +101 -0
  72. data/test/setup_test.rb +17 -17
  73. data/test/skip_if_new_api.rb +85 -0
  74. data/test/skip_if_old_api.rb +92 -0
  75. data/test/skip_setter_and_getter_test.rb +9 -10
  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} +121 -131
  79. data/test/validation/dry_validation_new_api.rb +835 -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 +38 -9
  85. metadata +111 -56
  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/call_test.rb +0 -23
  92. data/test/composition_test.rb +0 -149
  93. data/test/contract_test.rb +0 -77
  94. data/test/deprecation_test.rb +0 -27
  95. data/test/errors_test.rb +0 -165
  96. data/test/inherit_test.rb +0 -119
  97. data/test/populate_test.rb +0 -270
  98. data/test/readonly_test.rb +0 -14
  99. data/test/save_test.rb +0 -89
  100. data/test/skip_if_test.rb +0 -74
  101. data/test/validation/dry_test.rb +0 -60
  102. data/test/validation/dry_validation_test.rb +0 -352
  103. 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,29 +1,58 @@
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
- form.country.must_equal "Australia"
14
+ _(form.country).must_equal "Australia"
15
15
 
16
16
  form.validate("country" => "Germany") # this usually won't change when submitting.
17
- form.country.must_equal "Germany"
17
+ _(form.country).must_equal "Germany"
18
18
 
19
19
  form.sync
20
- loc.country.must_equal "Australia" # the writer wasn't called.
20
+ _(loc.country).must_equal "Australia" # the writer wasn't called.
21
21
 
22
22
  hash = {}
23
23
  form.save do |nested|
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.3
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-07-09 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,114 @@ 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'
132
152
  description: Form object decoupled from models.
133
153
  email:
134
154
  - apotonick@gmail.com
135
- - heinleng@gmail.com
155
+ - frances@safetytoolbox.co.uk
136
156
  executables: []
137
157
  extensions: []
138
158
  extra_rdoc_files: []
139
159
  files:
140
160
  - ".gitignore"
141
161
  - ".travis.yml"
162
+ - Appraisals
142
163
  - CHANGES.md
164
+ - CONTRIBUTING.md
143
165
  - Gemfile
166
+ - ISSUE_TEMPLATE.md
144
167
  - LICENSE.txt
145
168
  - README.md
146
169
  - Rakefile
147
170
  - TODO.md
148
- - gemfiles/Gemfile.disposable-0.3
171
+ - gemfiles/0.13.0.gemfile
172
+ - gemfiles/1.5.0.gemfile
149
173
  - lib/reform.rb
150
174
  - lib/reform/contract.rb
151
- - lib/reform/contract/errors.rb
175
+ - lib/reform/contract/custom_error.rb
152
176
  - lib/reform/contract/validate.rb
177
+ - lib/reform/errors.rb
153
178
  - lib/reform/form.rb
154
179
  - lib/reform/form/call.rb
155
180
  - lib/reform/form/coercion.rb
156
181
  - lib/reform/form/composition.rb
157
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
158
186
  - lib/reform/form/module.rb
159
- - lib/reform/form/mongoid.rb
160
- - lib/reform/form/orm.rb
161
187
  - lib/reform/form/populator.rb
162
188
  - lib/reform/form/prepopulate.rb
163
189
  - lib/reform/form/validate.rb
164
- - lib/reform/mongoid.rb
190
+ - lib/reform/result.rb
165
191
  - lib/reform/validation.rb
166
192
  - lib/reform/validation/groups.rb
167
193
  - lib/reform/version.rb
168
194
  - reform.gemspec
169
195
  - test/benchmarking.rb
170
- - test/call_test.rb
196
+ - test/call_new_api.rb
197
+ - test/call_old_api.rb
171
198
  - test/changed_test.rb
172
199
  - test/coercion_test.rb
173
- - test/composition_test.rb
174
- - 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
175
205
  - test/default_test.rb
176
- - test/deprecation_test.rb
177
206
  - test/deserialize_test.rb
178
- - test/errors_test.rb
207
+ - test/errors_new_api.rb
208
+ - test/errors_old_api.rb
179
209
  - test/feature_test.rb
180
210
  - test/fixtures/dry_error_messages.yml
181
- - test/form_option_test.rb
182
- - 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
183
216
  - test/from_test.rb
184
- - test/inherit_test.rb
185
- - 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
186
222
  - test/parse_pipeline_test.rb
187
- - test/populate_test.rb
223
+ - test/populate_new_api.rb
224
+ - test/populate_old_api.rb
188
225
  - test/populator_skip_test.rb
189
226
  - test/prepopulator_test.rb
190
227
  - test/read_only_test.rb
191
228
  - test/readable_test.rb
192
- - test/readonly_test.rb
193
- - test/reform_test.rb
194
- - 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
195
233
  - test/setup_test.rb
196
- - test/skip_if_test.rb
234
+ - test/skip_if_new_api.rb
235
+ - test/skip_if_old_api.rb
197
236
  - test/skip_setter_and_getter_test.rb
198
237
  - 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
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
203
244
  - test/virtual_test.rb
204
245
  - test/writeable_test.rb
205
- homepage: https://github.com/apotonick/reform
246
+ homepage: https://github.com/trailblazer/reform
206
247
  licenses:
207
248
  - MIT
208
249
  metadata: {}
@@ -221,45 +262,59 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
262
  - !ruby/object:Gem::Version
222
263
  version: '0'
223
264
  requirements: []
224
- rubyforge_project:
225
- rubygems_version: 2.5.1
265
+ rubygems_version: 3.0.3
226
266
  signing_key:
227
267
  specification_version: 4
228
268
  summary: Form object decoupled from models with validation, population and presentation.
229
269
  test_files:
230
270
  - test/benchmarking.rb
231
- - test/call_test.rb
271
+ - test/call_new_api.rb
272
+ - test/call_old_api.rb
232
273
  - test/changed_test.rb
233
274
  - test/coercion_test.rb
234
- - test/composition_test.rb
235
- - 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
236
280
  - test/default_test.rb
237
- - test/deprecation_test.rb
238
281
  - test/deserialize_test.rb
239
- - test/errors_test.rb
282
+ - test/errors_new_api.rb
283
+ - test/errors_old_api.rb
240
284
  - test/feature_test.rb
241
285
  - test/fixtures/dry_error_messages.yml
242
- - test/form_option_test.rb
243
- - 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
244
291
  - test/from_test.rb
245
- - test/inherit_test.rb
246
- - 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
247
297
  - test/parse_pipeline_test.rb
248
- - test/populate_test.rb
298
+ - test/populate_new_api.rb
299
+ - test/populate_old_api.rb
249
300
  - test/populator_skip_test.rb
250
301
  - test/prepopulator_test.rb
251
302
  - test/read_only_test.rb
252
303
  - test/readable_test.rb
253
- - test/readonly_test.rb
254
- - test/reform_test.rb
255
- - 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
256
308
  - test/setup_test.rb
257
- - test/skip_if_test.rb
309
+ - test/skip_if_new_api.rb
310
+ - test/skip_if_old_api.rb
258
311
  - test/skip_setter_and_getter_test.rb
259
312
  - 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
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
264
319
  - test/virtual_test.rb
265
320
  - test/writeable_test.rb