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.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/.travis.yml +4 -12
- data/CHANGES.md +8 -0
- data/README.md +36 -743
- data/Rakefile +1 -31
- data/gemfiles/{Gemfile.rails-3.1 → Gemfile.disposable-0.3} +1 -2
- data/lib/reform.rb +0 -9
- data/lib/reform/contract.rb +5 -1
- data/lib/reform/form.rb +1 -4
- data/lib/reform/form/composition.rb +1 -2
- data/lib/reform/form/dry.rb +29 -16
- data/lib/reform/form/module.rb +15 -3
- data/lib/reform/form/validate.rb +1 -1
- data/lib/reform/validation.rb +3 -3
- data/lib/reform/version.rb +1 -1
- data/reform.gemspec +3 -10
- data/test/coercion_test.rb +7 -7
- data/test/composition_test.rb +5 -1
- data/test/contract_test.rb +10 -4
- data/test/deserialize_test.rb +3 -3
- data/test/errors_test.rb +48 -28
- data/test/form_option_test.rb +3 -1
- data/test/form_test.rb +19 -14
- data/test/module_test.rb +51 -11
- data/test/populate_test.rb +21 -7
- data/test/reform_test.rb +24 -20
- data/test/save_test.rb +10 -4
- data/test/skip_if_test.rb +5 -3
- data/test/test_helper.rb +3 -43
- data/test/validate_test.rb +34 -14
- data/test/validation/dry_test.rb +60 -0
- data/test/validation/dry_validation_test.rb +65 -43
- data/test/validation/errors.yml +4 -0
- metadata +16 -192
- data/database.sqlite3 +0 -0
- data/gemfiles/Gemfile.rails-3.2 +0 -7
- data/gemfiles/Gemfile.rails-4.0 +0 -8
- data/gemfiles/Gemfile.rails-4.1 +0 -8
- data/gemfiles/Gemfile.rails-4.2 +0 -8
- data/lib/reform/active_record.rb +0 -4
- data/lib/reform/form/active_model.rb +0 -87
- data/lib/reform/form/active_model/form_builder_methods.rb +0 -48
- data/lib/reform/form/active_model/model_reflections.rb +0 -46
- data/lib/reform/form/active_model/model_validations.rb +0 -110
- data/lib/reform/form/active_model/validations.rb +0 -107
- data/lib/reform/form/active_record.rb +0 -30
- data/lib/reform/form/lotus.rb +0 -59
- data/lib/reform/form/multi_parameter_attributes.rb +0 -48
- data/lib/reform/form/validation/unique_validator.rb +0 -54
- data/lib/reform/rails.rb +0 -13
- data/test/active_model_custom_validation_translations_test.rb +0 -75
- data/test/active_model_test.rb +0 -207
- data/test/active_model_validation_for_property_named_format_test.rb +0 -18
- data/test/active_record_test.rb +0 -273
- data/test/builder_test.rb +0 -32
- data/test/custom_validation_test.rb +0 -47
- data/test/dummy/Rakefile +0 -7
- data/test/dummy/app/controllers/albums_controller.rb +0 -18
- data/test/dummy/app/controllers/application_controller.rb +0 -4
- data/test/dummy/app/controllers/musician_controller.rb +0 -5
- data/test/dummy/app/forms/album_form.rb +0 -18
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/models/album.rb +0 -4
- data/test/dummy/app/models/song.rb +0 -3
- data/test/dummy/app/views/albums/new.html.erb +0 -28
- data/test/dummy/app/views/layouts/application.html.erb +0 -14
- data/test/dummy/config.ru +0 -4
- data/test/dummy/config/application.rb +0 -20
- data/test/dummy/config/boot.rb +0 -10
- data/test/dummy/config/database.yml +0 -22
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -16
- data/test/dummy/config/environments/production.rb +0 -46
- data/test/dummy/config/environments/test.rb +0 -33
- data/test/dummy/config/locales/en.yml +0 -14
- data/test/dummy/config/routes.rb +0 -4
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/form_builder_test.rb +0 -138
- data/test/lotus/Gemfile +0 -5
- data/test/lotus/lotus_test.rb +0 -31
- data/test/lotus_test.rb +0 -150
- data/test/model_reflections_test.rb +0 -138
- data/test/model_validations_test.rb +0 -82
- data/test/mongoid_test.rb +0 -313
- data/test/multi_parameter_attributes_test.rb +0 -50
- data/test/rails/integration_test.rb +0 -54
- data/test/unique_test.rb +0 -135
- data/test/validation/activemodel_validation_test.rb +0 -252
data/test/validate_test.rb
CHANGED
@@ -7,14 +7,20 @@ class ContractValidateTest < MiniTest::Spec
|
|
7
7
|
|
8
8
|
class AlbumForm < Reform::Contract
|
9
9
|
property :name
|
10
|
-
|
10
|
+
validation do
|
11
|
+
key(:name).required
|
12
|
+
end
|
11
13
|
|
12
14
|
collection :songs do
|
13
15
|
property :title
|
14
|
-
|
16
|
+
validation do
|
17
|
+
key(:title).required
|
18
|
+
end
|
15
19
|
|
16
20
|
property :composer do
|
17
|
-
|
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=>[\"
|
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
|
-
|
66
|
+
validation do
|
67
|
+
key(:name).required
|
68
|
+
end
|
61
69
|
|
62
70
|
collection :songs do
|
63
71
|
|
64
72
|
property :title
|
65
|
-
|
73
|
+
validation do
|
74
|
+
key(:title).required
|
75
|
+
end
|
66
76
|
|
67
77
|
property :composer do
|
68
78
|
property :name
|
69
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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=>[\"
|
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(["
|
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
|
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
|
19
|
-
key(:email
|
44
|
+
key(:username).required
|
45
|
+
key(:email).required
|
20
46
|
end
|
21
47
|
|
22
48
|
validation :email, if: :default do
|
23
|
-
key(: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)
|
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)
|
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=>[\"
|
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=>[\"
|
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
|
-
|
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=>[\"
|
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)
|
111
|
-
|
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
|
-
|
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
|
-
|
117
|
-
|
118
|
-
|
119
|
-
value != 'Nickelback'
|
143
|
+
def form_access_validation?(value)
|
144
|
+
form.title == 'Reform'
|
145
|
+
end
|
120
146
|
end
|
121
147
|
|
122
|
-
|
123
|
-
|
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
|
-
|
146
|
-
|
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
|
266
|
+
key(:email).required
|
242
267
|
end
|
243
268
|
|
244
269
|
validation :email, inherit: true do # extends the above.
|
245
|
-
key(:username
|
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=>[\"
|
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
|
-
|
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
|
-
|
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
|
-
|
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=>[\"
|
322
|
+
form.errors.messages.inspect.must_equal "{:username=>[\"is missing\"]}"
|
301
323
|
end
|
302
324
|
end
|
303
325
|
|
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.
|
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:
|
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.
|
20
|
+
version: 0.3.0
|
21
21
|
- - "<"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 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.
|
30
|
+
version: 0.3.0
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 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:
|
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.
|
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:
|
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
|
-
-
|
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/
|
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:
|
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/
|
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
|