reform 2.1.0 → 2.2.0.rc1

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 (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