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