reform 2.1.0 → 2.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/.travis.yml +4 -12
  4. data/CHANGES.md +8 -0
  5. data/README.md +36 -743
  6. data/Rakefile +1 -31
  7. data/gemfiles/{Gemfile.rails-3.1 → Gemfile.disposable-0.3} +1 -2
  8. data/lib/reform.rb +0 -9
  9. data/lib/reform/contract.rb +5 -1
  10. data/lib/reform/form.rb +1 -4
  11. data/lib/reform/form/composition.rb +1 -2
  12. data/lib/reform/form/dry.rb +29 -16
  13. data/lib/reform/form/module.rb +15 -3
  14. data/lib/reform/form/validate.rb +1 -1
  15. data/lib/reform/validation.rb +3 -3
  16. data/lib/reform/version.rb +1 -1
  17. data/reform.gemspec +3 -10
  18. data/test/coercion_test.rb +7 -7
  19. data/test/composition_test.rb +5 -1
  20. data/test/contract_test.rb +10 -4
  21. data/test/deserialize_test.rb +3 -3
  22. data/test/errors_test.rb +48 -28
  23. data/test/form_option_test.rb +3 -1
  24. data/test/form_test.rb +19 -14
  25. data/test/module_test.rb +51 -11
  26. data/test/populate_test.rb +21 -7
  27. data/test/reform_test.rb +24 -20
  28. data/test/save_test.rb +10 -4
  29. data/test/skip_if_test.rb +5 -3
  30. data/test/test_helper.rb +3 -43
  31. data/test/validate_test.rb +34 -14
  32. data/test/validation/dry_test.rb +60 -0
  33. data/test/validation/dry_validation_test.rb +65 -43
  34. data/test/validation/errors.yml +4 -0
  35. metadata +16 -192
  36. data/database.sqlite3 +0 -0
  37. data/gemfiles/Gemfile.rails-3.2 +0 -7
  38. data/gemfiles/Gemfile.rails-4.0 +0 -8
  39. data/gemfiles/Gemfile.rails-4.1 +0 -8
  40. data/gemfiles/Gemfile.rails-4.2 +0 -8
  41. data/lib/reform/active_record.rb +0 -4
  42. data/lib/reform/form/active_model.rb +0 -87
  43. data/lib/reform/form/active_model/form_builder_methods.rb +0 -48
  44. data/lib/reform/form/active_model/model_reflections.rb +0 -46
  45. data/lib/reform/form/active_model/model_validations.rb +0 -110
  46. data/lib/reform/form/active_model/validations.rb +0 -107
  47. data/lib/reform/form/active_record.rb +0 -30
  48. data/lib/reform/form/lotus.rb +0 -59
  49. data/lib/reform/form/multi_parameter_attributes.rb +0 -48
  50. data/lib/reform/form/validation/unique_validator.rb +0 -54
  51. data/lib/reform/rails.rb +0 -13
  52. data/test/active_model_custom_validation_translations_test.rb +0 -75
  53. data/test/active_model_test.rb +0 -207
  54. data/test/active_model_validation_for_property_named_format_test.rb +0 -18
  55. data/test/active_record_test.rb +0 -273
  56. data/test/builder_test.rb +0 -32
  57. data/test/custom_validation_test.rb +0 -47
  58. data/test/dummy/Rakefile +0 -7
  59. data/test/dummy/app/controllers/albums_controller.rb +0 -18
  60. data/test/dummy/app/controllers/application_controller.rb +0 -4
  61. data/test/dummy/app/controllers/musician_controller.rb +0 -5
  62. data/test/dummy/app/forms/album_form.rb +0 -18
  63. data/test/dummy/app/helpers/application_helper.rb +0 -2
  64. data/test/dummy/app/models/album.rb +0 -4
  65. data/test/dummy/app/models/song.rb +0 -3
  66. data/test/dummy/app/views/albums/new.html.erb +0 -28
  67. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  68. data/test/dummy/config.ru +0 -4
  69. data/test/dummy/config/application.rb +0 -20
  70. data/test/dummy/config/boot.rb +0 -10
  71. data/test/dummy/config/database.yml +0 -22
  72. data/test/dummy/config/environment.rb +0 -5
  73. data/test/dummy/config/environments/development.rb +0 -16
  74. data/test/dummy/config/environments/production.rb +0 -46
  75. data/test/dummy/config/environments/test.rb +0 -33
  76. data/test/dummy/config/locales/en.yml +0 -14
  77. data/test/dummy/config/routes.rb +0 -4
  78. data/test/dummy/db/test.sqlite3 +0 -0
  79. data/test/form_builder_test.rb +0 -138
  80. data/test/lotus/Gemfile +0 -5
  81. data/test/lotus/lotus_test.rb +0 -31
  82. data/test/lotus_test.rb +0 -150
  83. data/test/model_reflections_test.rb +0 -138
  84. data/test/model_validations_test.rb +0 -82
  85. data/test/mongoid_test.rb +0 -313
  86. data/test/multi_parameter_attributes_test.rb +0 -50
  87. data/test/rails/integration_test.rb +0 -54
  88. data/test/unique_test.rb +0 -135
  89. data/test/validation/activemodel_validation_test.rb +0 -252
@@ -7,14 +7,20 @@ class ContractValidateTest < MiniTest::Spec
7
7
 
8
8
  class AlbumForm < Reform::Contract
9
9
  property :name
10
- validates :name, presence: true
10
+ validation do
11
+ key(:name).required
12
+ end
11
13
 
12
14
  collection :songs do
13
15
  property :title
14
- validates :title, presence: true
16
+ validation do
17
+ key(:title).required
18
+ end
15
19
 
16
20
  property :composer do
17
- validates :name, presence: true
21
+ validation do
22
+ key(:name).required
23
+ end
18
24
  property :name
19
25
  end
20
26
  end
@@ -44,7 +50,7 @@ class ContractValidateTest < MiniTest::Spec
44
50
  album.name = nil
45
51
 
46
52
  form.validate.must_equal false
47
- form.errors.messages.inspect.must_equal "{:name=>[\"can't be blank\"], :\"songs.composer.name\"=>[\"can't be blank\"]}"
53
+ form.errors.messages.inspect.must_equal "{:name=>[\"is missing\"], :\"songs.composer.name\"=>[\"is missing\"]}"
48
54
  end
49
55
  end
50
56
 
@@ -57,16 +63,22 @@ class ValidateWithoutConfigurationTest < MiniTest::Spec
57
63
 
58
64
  class AlbumForm < Reform::Form
59
65
  property :name
60
- validates :name, presence: true
66
+ validation do
67
+ key(:name).required
68
+ end
61
69
 
62
70
  collection :songs do
63
71
 
64
72
  property :title
65
- validates :title, presence: true
73
+ validation do
74
+ key(:title).required
75
+ end
66
76
 
67
77
  property :composer do
68
78
  property :name
69
- validates :name, presence: true
79
+ validation do
80
+ key(:name).required
81
+ end
70
82
  end
71
83
  end
72
84
 
@@ -150,7 +162,9 @@ class ValidateWithInternalPopulatorOptionTest < MiniTest::Spec
150
162
 
151
163
  class AlbumForm < Reform::Form
152
164
  property :name
153
- validates :name, presence: true
165
+ validation do
166
+ key(:name).required
167
+ end
154
168
 
155
169
  collection :songs,
156
170
  internal_populator: lambda { |input, options|
@@ -158,17 +172,23 @@ class ValidateWithInternalPopulatorOptionTest < MiniTest::Spec
158
172
  (item = collection[options[:index]]) ? item : collection.insert(options[:index], Song.new) } do
159
173
 
160
174
  property :title
161
- validates :title, presence: true
175
+ validation do
176
+ key(:title).required
177
+ end
162
178
 
163
179
  property :composer, internal_populator: lambda { |input, options| (item = options[:represented].composer) ? item : Artist.new } do
164
180
  property :name
165
- validates :name, presence: true
181
+ validation do
182
+ key(:name).required
183
+ end
166
184
  end
167
185
  end
168
186
 
169
187
  property :artist, internal_populator: lambda { |input, options| (item = options[:represented].artist) ? item : Artist.new } do
170
188
  property :name
171
- validates :name, presence: true
189
+ validation do
190
+ key(:name).required
191
+ end
172
192
  end
173
193
  end
174
194
 
@@ -214,7 +234,7 @@ class ValidateWithInternalPopulatorOptionTest < MiniTest::Spec
214
234
  "artist" => {"name" => ""},
215
235
  ).must_equal false
216
236
 
217
- form.errors.messages.inspect.must_equal "{:name=>[\"can't be blank\"], :\"songs.composer.name\"=>[\"can't be blank\"], :\"artist.name\"=>[\"can't be blank\"]}"
237
+ form.errors.messages.inspect.must_equal "{:name=>[\"must be filled\"], :\"songs.composer.name\"=>[\"must be filled\"], :\"artist.name\"=>[\"must be filled\"]}"
218
238
  end
219
239
 
220
240
  # adding to collection via :instance.
@@ -317,7 +337,7 @@ end
317
337
  # # ensure that only hit and songs keys are present
318
338
  # subject.errors.messages.keys.sort.must_equal([:hit, :songs])
319
339
  # # validate content of hit and songs keys
320
- # subject.errors.messages[:hit].must_equal(["can't be blank"])
340
+ # subject.errors.messages[:hit].must_equal(["must be filled"])
321
341
  # subject.errors.messages[:songs].first.must_match(/\Ais too short \(minimum is 1 characters?\)\z/)
322
342
  # end
323
343
  # end
@@ -397,4 +417,4 @@ end
397
417
  # album.songs.first.title.must_equal "Stand Your Ground"
398
418
  # end
399
419
  # end
400
- # end
420
+ # end
@@ -0,0 +1,60 @@
1
+ # require "test_helper"
2
+ # require "reform/form/dry"
3
+
4
+ # class BlaTest < MiniTest::Spec
5
+ # class CartForm < Reform::Form
6
+ # include Reform::Form::Dry::Validations
7
+
8
+ # property :user_id
9
+
10
+ # collection :variants do
11
+ # property :id
12
+ # end
13
+
14
+
15
+ # validation :default do
16
+ # key(:user_id).required
17
+
18
+ # key(:variants).schema do
19
+ # each do
20
+ # key(:id).required
21
+ # end
22
+ # end
23
+
24
+ # configure do
25
+ # config.messages_file = 'test/validation/errors.yml'
26
+
27
+ # option :form
28
+ # # message need to be defined on fixtures/dry_error_messages
29
+ # # d-v expects you to define your custome messages on the .yml file
30
+
31
+
32
+ # def form_access_validation?(value)
33
+ # raise value.inspect
34
+ # form.title == 'Reform'
35
+ # end
36
+ # end
37
+
38
+ # rule(form_present: [:form]) do |form|
39
+ # form.user_id == "hallo"
40
+ # end
41
+ # end
42
+ # end
43
+
44
+ # it do
45
+ # cart = Struct.new(:user_id, :variants).new(1, [Struct.new(:id).new])
46
+
47
+ # form = CartForm.new(cart)
48
+ # form.validate(user_id: 2, variants: [{id: 3}])
49
+ # puts form.errors.inspect
50
+ # end
51
+ # end
52
+
53
+
54
+ # # current_id: BlaTest
55
+ # # cart: {
56
+ # # carts: {
57
+ # # products: [{current_id}]
58
+ # # }
59
+
60
+ # # }
@@ -1,8 +1,34 @@
1
1
  require "test_helper"
2
2
  require "reform/form/dry"
3
3
 
4
- class ValidationGroupsTest < MiniTest::Spec
4
+ class DryValidationDefaultGroupTest < Minitest::Spec
5
+ Session = Struct.new(:username, :email, :password, :confirm_password)
6
+
7
+ class SessionForm < Reform::Form
8
+ include Reform::Form::Dry
9
+
10
+ property :username
11
+ property :email
12
+ property :password
13
+ property :confirm_password
14
+
15
+ validation do
16
+ key(:username).required
17
+ key(:email).required
18
+ end
19
+ end
20
+
21
+ let (:form) { SessionForm.new(Session.new) }
22
+
23
+ # valid.
24
+ it do
25
+ form.validate(username: "Helloween",
26
+ email: "yep").must_equal true
27
+ form.errors.messages.inspect.must_equal "{}"
28
+ end
29
+ end
5
30
 
31
+ class ValidationGroupsTest < MiniTest::Spec
6
32
  describe "basic validations" do
7
33
  Session = Struct.new(:username, :email, :password, :confirm_password)
8
34
 
@@ -15,26 +41,20 @@ class ValidationGroupsTest < MiniTest::Spec
15
41
  property :confirm_password
16
42
 
17
43
  validation :default do
18
- key(:username, &:filled?)
19
- key(:email, &:filled?)
44
+ key(:username).required
45
+ key(:email).required
20
46
  end
21
47
 
22
48
  validation :email, if: :default do
23
- key(:email) do |email|
24
- email.min_size?(3)
25
- end
49
+ key(:email).required(min_size?: 3)
26
50
  end
27
51
 
28
52
  validation :nested, if: :default do
29
- key(:password) do |password|
30
- password.filled? & password.min_size?(2)
31
- end
53
+ key(:password).required(min_size?: 2)
32
54
  end
33
55
 
34
56
  validation :confirm, if: :default, after: :email do
35
- key(:confirm_password) do |confirm_password|
36
- confirm_password.filled? & confirm_password.min_size?(2)
37
- end
57
+ key(:confirm_password).required(min_size?: 2)
38
58
  end
39
59
  end
40
60
 
@@ -52,29 +72,28 @@ class ValidationGroupsTest < MiniTest::Spec
52
72
  # invalid.
53
73
  it do
54
74
  form.validate({}).must_equal false
55
- form.errors.messages.inspect.must_equal "{:username=>[\"username must be filled\"], :email=>[\"email must be filled\"]}"
75
+ form.errors.messages.inspect.must_equal "{:username=>[\"is missing\"], :email=>[\"is missing\"]}"
56
76
  end
57
77
 
58
78
  # partially invalid.
59
79
  # 2nd group fails.
60
80
  it do
61
81
  form.validate(username: "Helloween", email: "yo", confirm_password:"9").must_equal false
62
- form.errors.messages.inspect.must_equal "{:email=>[\"email size cannot be less than 3\"], :confirm_password=>[\"confirm_password size cannot be less than 2\"], :password=>[\"password must be filled\", \"password size cannot be less than 2\"]}"
82
+ form.errors.messages.inspect.must_equal "{:email=>[\"size cannot be less than 3\"], :confirm_password=>[\"size cannot be less than 2\"], :password=>[\"is missing\", \"size cannot be less than 2\"]}"
63
83
  end
64
84
  # 3rd group fails.
65
85
  it do
66
86
  form.validate(username: "Helloween", email: "yo!", confirm_password:"9").must_equal false
67
87
  form.errors.messages.inspect
68
- .must_equal "{:confirm_password=>[\"confirm_password size cannot be less than 2\"], :password=>[\"password must be filled\", \"password size cannot be less than 2\"]}"
88
+ .must_equal "{:confirm_password=>[\"size cannot be less than 2\"], :password=>[\"is missing\", \"size cannot be less than 2\"]}"
69
89
  end
70
90
  # 4th group with after: fails.
71
91
  it do
72
92
  form.validate(username: "Helloween", email: "yo!", password: "", confirm_password: "9").must_equal false
73
- form.errors.messages.inspect.must_equal "{:confirm_password=>[\"confirm_password size cannot be less than 2\"], :password=>[\"password must be filled\", \"password size cannot be less than 2\"]}"
93
+ form.errors.messages.inspect.must_equal "{:confirm_password=>[\"size cannot be less than 2\"], :password=>[\"must be filled\", \"size cannot be less than 2\"]}"
74
94
  end
75
95
  end
76
96
 
77
-
78
97
  describe "Nested validations" do
79
98
  class AlbumForm < Reform::Form
80
99
  include Reform::Form::Dry::Validations
@@ -103,25 +122,31 @@ class ValidationGroupsTest < MiniTest::Spec
103
122
  end
104
123
 
105
124
  validation :default do
106
- configure { |config|
107
- # config.messages_file = 'test/fixtures/dry_error_messages.yml'
108
- }
109
125
 
110
- key(:title) do |title|
111
- title.filled? & title.good_musical_taste?
126
+ key(:title).required
127
+
128
+ key(:band).schema do
129
+ key(:name).required
130
+ key(:label).schema do
131
+ key(:name).required
132
+ end
112
133
  end
113
134
 
114
- key(:title, &:form_access_validation?)
135
+ configure do
136
+ option :form
137
+ # message need to be defined on fixtures/dry_error_messages
138
+ # d-v expects you to define your custome messages on the .yml file
139
+ def good_musical_taste?(value)
140
+ value != 'Nickelback'
141
+ end
115
142
 
116
- # message need to be defined on fixtures/dry_error_messages
117
- # d-v expects you to define your custome messages on the .yml file
118
- def good_musical_taste?(value)
119
- value != 'Nickelback'
143
+ def form_access_validation?(value)
144
+ form.title == 'Reform'
145
+ end
120
146
  end
121
147
 
122
- def form_access_validation?(value)
123
- form.title == 'Reform'
124
- end
148
+ key(:title).required(:good_musical_taste?)
149
+ key(:title).required(:form_access_validation?)
125
150
  end
126
151
  end
127
152
 
@@ -142,9 +167,9 @@ class ValidationGroupsTest < MiniTest::Spec
142
167
  result = form.validate(
143
168
  "title" => "Reform",
144
169
  "songs" => [
145
- {"title" => "Fallout"},
146
- {"title" => "Roxanne", "composer" => {"name" => "Sting"}}
147
- ],
170
+ {"title" => "Fallout"},
171
+ {"title" => "Roxanne", "composer" => {"name" => "Sting"}}
172
+ ],
148
173
  "band" => {"label" => {"name" => "Epitaph"}},
149
174
  )
150
175
 
@@ -238,11 +263,11 @@ class ValidationGroupsTest < MiniTest::Spec
238
263
  property :email
239
264
 
240
265
  validation :email do
241
- key(:email, &:filled?)
266
+ key(:email).required
242
267
  end
243
268
 
244
269
  validation :email, inherit: true do # extends the above.
245
- key(:username, &:filled?)
270
+ key(:username).required
246
271
  end
247
272
  end
248
273
 
@@ -256,7 +281,7 @@ class ValidationGroupsTest < MiniTest::Spec
256
281
  # invalid.
257
282
  it do
258
283
  form.validate({}).must_equal false
259
- form.errors.messages.inspect.must_equal "{:email=>[\"email must be filled\"], :username=>[\"username must be filled\"]}"
284
+ form.errors.messages.inspect.must_equal "{:email=>[\"is missing\"], :username=>[\"is missing\"]}"
260
285
  end
261
286
  end
262
287
 
@@ -270,20 +295,17 @@ class ValidationGroupsTest < MiniTest::Spec
270
295
  property :password
271
296
 
272
297
  validation :email do
273
- # validates :email, presence: true
274
- key(:email, &:filled?)
298
+ key(:email).required
275
299
  end
276
300
 
277
301
  # run this is :email group is true.
278
302
  validation :after_email, if: lambda { |results| results[:email]==true } do # extends the above.
279
- # validates :username, presence: true
280
- key(:username, &:filled?)
303
+ key(:username).required
281
304
  end
282
305
 
283
306
  # block gets evaled in form instance context.
284
307
  validation :password, if: lambda { |results| email == "john@trb.org" } do
285
- # validates :password, presence: true
286
- key(:password, &:filled?)
308
+ key(:password).required
287
309
  end
288
310
  end
289
311
 
@@ -297,7 +319,7 @@ class ValidationGroupsTest < MiniTest::Spec
297
319
  # invalid.
298
320
  it do
299
321
  form.validate({email: 9}).must_equal false
300
- form.errors.messages.inspect.must_equal "{:username=>[\"username must be filled\"]}"
322
+ form.errors.messages.inspect.must_equal "{:username=>[\"is missing\"]}"
301
323
  end
302
324
  end
303
325
 
@@ -0,0 +1,4 @@
1
+ en:
2
+ errors:
3
+ music_taste_ok?: "You are a bad person"
4
+
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.1.0
4
+ version: 2.2.0.rc1
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: 2015-12-23 00:00:00.000000000 Z
12
+ date: 2016-06-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: disposable
@@ -17,20 +17,20 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 0.2.2
20
+ version: 0.3.0
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: 0.3.0
23
+ version: 0.4.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.2.2
30
+ version: 0.3.0
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.0
33
+ version: 0.4.0
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: uber
36
36
  requirement: !ruby/object:Gem::Requirement
@@ -108,63 +108,7 @@ dependencies:
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  - !ruby/object:Gem::Dependency
111
- name: activerecord
112
- requirement: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
- type: :development
118
- prerelease: false
119
- version_requirements: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: '0'
124
- - !ruby/object:Gem::Dependency
125
- name: sqlite3
126
- requirement: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- version: '0'
131
- type: :development
132
- prerelease: false
133
- version_requirements: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- - !ruby/object:Gem::Dependency
139
- name: virtus
140
- requirement: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
- type: :development
146
- prerelease: false
147
- version_requirements: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
- - !ruby/object:Gem::Dependency
153
- name: rails
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'
166
- - !ruby/object:Gem::Dependency
167
- name: mongoid
111
+ name: dry-types
168
112
  requirement: !ruby/object:Gem::Requirement
169
113
  requirements:
170
114
  - - ">="
@@ -191,48 +135,20 @@ dependencies:
191
135
  - - ">="
192
136
  - !ruby/object:Gem::Version
193
137
  version: '0'
194
- - !ruby/object:Gem::Dependency
195
- name: lotus-validations
196
- requirement: !ruby/object:Gem::Requirement
197
- requirements:
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- version: '0'
201
- type: :development
202
- prerelease: false
203
- version_requirements: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- version: '0'
208
138
  - !ruby/object:Gem::Dependency
209
139
  name: dry-validation
210
140
  requirement: !ruby/object:Gem::Requirement
211
141
  requirements:
212
142
  - - ">="
213
143
  - !ruby/object:Gem::Version
214
- version: 0.4.0
215
- type: :development
216
- prerelease: false
217
- version_requirements: !ruby/object:Gem::Requirement
218
- requirements:
219
- - - ">="
220
- - !ruby/object:Gem::Version
221
- version: 0.4.0
222
- - !ruby/object:Gem::Dependency
223
- name: actionpack
224
- requirement: !ruby/object:Gem::Requirement
225
- requirements:
226
- - - ">="
227
- - !ruby/object:Gem::Version
228
- version: '0'
144
+ version: 0.7.0
229
145
  type: :development
230
146
  prerelease: false
231
147
  version_requirements: !ruby/object:Gem::Requirement
232
148
  requirements:
233
149
  - - ">="
234
150
  - !ruby/object:Gem::Version
235
- version: '0'
151
+ version: 0.7.0
236
152
  description: Form object decoupled from models.
237
153
  email:
238
154
  - apotonick@gmail.com
@@ -249,100 +165,46 @@ files:
249
165
  - README.md
250
166
  - Rakefile
251
167
  - TODO.md
252
- - database.sqlite3
253
- - gemfiles/Gemfile.rails-3.1
254
- - gemfiles/Gemfile.rails-3.2
255
- - gemfiles/Gemfile.rails-4.0
256
- - gemfiles/Gemfile.rails-4.1
257
- - gemfiles/Gemfile.rails-4.2
168
+ - gemfiles/Gemfile.disposable-0.3
258
169
  - lib/reform.rb
259
- - lib/reform/active_record.rb
260
170
  - lib/reform/contract.rb
261
171
  - lib/reform/contract/errors.rb
262
172
  - lib/reform/contract/validate.rb
263
173
  - lib/reform/form.rb
264
- - lib/reform/form/active_model.rb
265
- - lib/reform/form/active_model/form_builder_methods.rb
266
- - lib/reform/form/active_model/model_reflections.rb
267
- - lib/reform/form/active_model/model_validations.rb
268
- - lib/reform/form/active_model/validations.rb
269
- - lib/reform/form/active_record.rb
270
174
  - lib/reform/form/coercion.rb
271
175
  - lib/reform/form/composition.rb
272
176
  - lib/reform/form/dry.rb
273
- - lib/reform/form/lotus.rb
274
177
  - lib/reform/form/module.rb
275
178
  - lib/reform/form/mongoid.rb
276
- - lib/reform/form/multi_parameter_attributes.rb
277
179
  - lib/reform/form/orm.rb
278
180
  - lib/reform/form/populator.rb
279
181
  - lib/reform/form/prepopulate.rb
280
182
  - lib/reform/form/validate.rb
281
- - lib/reform/form/validation/unique_validator.rb
282
183
  - lib/reform/mongoid.rb
283
- - lib/reform/rails.rb
284
184
  - lib/reform/validation.rb
285
185
  - lib/reform/validation/groups.rb
286
186
  - lib/reform/version.rb
287
187
  - reform.gemspec
288
- - test/active_model_custom_validation_translations_test.rb
289
- - test/active_model_test.rb
290
- - test/active_model_validation_for_property_named_format_test.rb
291
- - test/active_record_test.rb
292
188
  - test/benchmarking.rb
293
- - test/builder_test.rb
294
189
  - test/changed_test.rb
295
190
  - test/coercion_test.rb
296
191
  - test/composition_test.rb
297
192
  - test/contract_test.rb
298
- - test/custom_validation_test.rb
299
193
  - test/default_test.rb
300
194
  - test/deprecation_test.rb
301
195
  - test/deserialize_test.rb
302
- - test/dummy/Rakefile
303
- - test/dummy/app/controllers/albums_controller.rb
304
- - test/dummy/app/controllers/application_controller.rb
305
- - test/dummy/app/controllers/musician_controller.rb
306
- - test/dummy/app/forms/album_form.rb
307
- - test/dummy/app/helpers/application_helper.rb
308
- - test/dummy/app/models/album.rb
309
- - test/dummy/app/models/song.rb
310
- - test/dummy/app/views/albums/new.html.erb
311
- - test/dummy/app/views/layouts/application.html.erb
312
- - test/dummy/config.ru
313
- - test/dummy/config/application.rb
314
- - test/dummy/config/boot.rb
315
- - test/dummy/config/database.yml
316
- - test/dummy/config/environment.rb
317
- - test/dummy/config/environments/development.rb
318
- - test/dummy/config/environments/production.rb
319
- - test/dummy/config/environments/test.rb
320
- - test/dummy/config/locales/en.yml
321
- - test/dummy/config/routes.rb
322
- - test/dummy/db/test.sqlite3
323
- - test/dummy/log/production.log
324
- - test/dummy/log/server.log
325
196
  - test/errors_test.rb
326
197
  - test/feature_test.rb
327
198
  - test/fixtures/dry_error_messages.yml
328
- - test/form_builder_test.rb
329
199
  - test/form_option_test.rb
330
200
  - test/form_test.rb
331
201
  - test/from_test.rb
332
202
  - test/inherit_test.rb
333
- - test/lotus/Gemfile
334
- - test/lotus/lotus_test.rb
335
- - test/lotus_test.rb
336
- - test/model_reflections_test.rb
337
- - test/model_validations_test.rb
338
203
  - test/module_test.rb
339
- - test/mongoid_test.rb
340
- - test/multi_parameter_attributes_test.rb
341
204
  - test/parse_pipeline_test.rb
342
205
  - test/populate_test.rb
343
206
  - test/populator_skip_test.rb
344
207
  - test/prepopulator_test.rb
345
- - test/rails/integration_test.rb
346
208
  - test/read_only_test.rb
347
209
  - test/readable_test.rb
348
210
  - test/readonly_test.rb
@@ -352,10 +214,10 @@ files:
352
214
  - test/skip_if_test.rb
353
215
  - test/skip_setter_and_getter_test.rb
354
216
  - test/test_helper.rb
355
- - test/unique_test.rb
356
217
  - test/validate_test.rb
357
- - test/validation/activemodel_validation_test.rb
218
+ - test/validation/dry_test.rb
358
219
  - test/validation/dry_validation_test.rb
220
+ - test/validation/errors.yml
359
221
  - test/virtual_test.rb
360
222
  - test/writeable_test.rb
361
223
  homepage: https://github.com/apotonick/reform
@@ -373,9 +235,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
373
235
  version: '0'
374
236
  required_rubygems_version: !ruby/object:Gem::Requirement
375
237
  requirements:
376
- - - ">="
238
+ - - ">"
377
239
  - !ruby/object:Gem::Version
378
- version: '0'
240
+ version: 1.3.1
379
241
  requirements: []
380
242
  rubyforge_project:
381
243
  rubygems_version: 2.4.8
@@ -383,64 +245,26 @@ signing_key:
383
245
  specification_version: 4
384
246
  summary: Form object decoupled from models with validation, population and presentation.
385
247
  test_files:
386
- - test/active_model_custom_validation_translations_test.rb
387
- - test/active_model_test.rb
388
- - test/active_model_validation_for_property_named_format_test.rb
389
- - test/active_record_test.rb
390
248
  - test/benchmarking.rb
391
- - test/builder_test.rb
392
249
  - test/changed_test.rb
393
250
  - test/coercion_test.rb
394
251
  - test/composition_test.rb
395
252
  - test/contract_test.rb
396
- - test/custom_validation_test.rb
397
253
  - test/default_test.rb
398
254
  - test/deprecation_test.rb
399
255
  - test/deserialize_test.rb
400
- - test/dummy/Rakefile
401
- - test/dummy/app/controllers/albums_controller.rb
402
- - test/dummy/app/controllers/application_controller.rb
403
- - test/dummy/app/controllers/musician_controller.rb
404
- - test/dummy/app/forms/album_form.rb
405
- - test/dummy/app/helpers/application_helper.rb
406
- - test/dummy/app/models/album.rb
407
- - test/dummy/app/models/song.rb
408
- - test/dummy/app/views/albums/new.html.erb
409
- - test/dummy/app/views/layouts/application.html.erb
410
- - test/dummy/config.ru
411
- - test/dummy/config/application.rb
412
- - test/dummy/config/boot.rb
413
- - test/dummy/config/database.yml
414
- - test/dummy/config/environment.rb
415
- - test/dummy/config/environments/development.rb
416
- - test/dummy/config/environments/production.rb
417
- - test/dummy/config/environments/test.rb
418
- - test/dummy/config/locales/en.yml
419
- - test/dummy/config/routes.rb
420
- - test/dummy/db/test.sqlite3
421
- - test/dummy/log/production.log
422
- - test/dummy/log/server.log
423
256
  - test/errors_test.rb
424
257
  - test/feature_test.rb
425
258
  - test/fixtures/dry_error_messages.yml
426
- - test/form_builder_test.rb
427
259
  - test/form_option_test.rb
428
260
  - test/form_test.rb
429
261
  - test/from_test.rb
430
262
  - test/inherit_test.rb
431
- - test/lotus/Gemfile
432
- - test/lotus/lotus_test.rb
433
- - test/lotus_test.rb
434
- - test/model_reflections_test.rb
435
- - test/model_validations_test.rb
436
263
  - test/module_test.rb
437
- - test/mongoid_test.rb
438
- - test/multi_parameter_attributes_test.rb
439
264
  - test/parse_pipeline_test.rb
440
265
  - test/populate_test.rb
441
266
  - test/populator_skip_test.rb
442
267
  - test/prepopulator_test.rb
443
- - test/rails/integration_test.rb
444
268
  - test/read_only_test.rb
445
269
  - test/readable_test.rb
446
270
  - test/readonly_test.rb
@@ -450,9 +274,9 @@ test_files:
450
274
  - test/skip_if_test.rb
451
275
  - test/skip_setter_and_getter_test.rb
452
276
  - test/test_helper.rb
453
- - test/unique_test.rb
454
277
  - test/validate_test.rb
455
- - test/validation/activemodel_validation_test.rb
278
+ - test/validation/dry_test.rb
456
279
  - test/validation/dry_validation_test.rb
280
+ - test/validation/errors.yml
457
281
  - test/virtual_test.rb
458
282
  - test/writeable_test.rb