simple_params 1.4.0 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/Gemfile.lock +1 -1
- data/lib/simple_params/params.rb +10 -1
- data/lib/simple_params/version.rb +1 -1
- data/spec/acceptance_spec.rb +51 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZjFhZmVhOTFiODE2NWY3MjJkYjA1OTczYWQ3ZjMxNGRmMWQ5YzAyZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZGUxNTExNTRmYWUzMmYxNDA2MzQyNDkxNTllNTU3OTU4MDFiZjJhMw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MjRlMGQzZjc0OWM4NDQwMjMzNGZlNjIxODMzNWRiYWU3ZDhiYTBkZDA0MjM4
|
10
|
+
NzM4OTRkM2M2ZmZiMGU2NWFlMTllYjA0ZThiMTc5NDgyMjhhMDQ5NTJkZTkz
|
11
|
+
YmI5MzZlYzlmODkxM2E4ZGU1MTk2YjcyMjgzMDQyY2Q3M2VhM2Y=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZTM0ZjlmMTJmNjI3MWE0NzIzYmM0NzljZjkyOTI0MDYzYTE3YWQ1ZTVlMmVh
|
14
|
+
ZjhlMWQ3ZGNlMmE4N2UyMTk0MjhlZjAyNmQxNWI0NjIxY2U4MjNjNzIyOWUx
|
15
|
+
ZmExMjgxNjc1YjY4YzQ5Yjc1NDU3NGEyYmZmNTJjYjkyOGIyNTA=
|
data/Gemfile.lock
CHANGED
data/lib/simple_params/params.rb
CHANGED
@@ -97,7 +97,16 @@ module SimpleParams
|
|
97
97
|
array
|
98
98
|
end
|
99
99
|
else
|
100
|
-
initializer.map
|
100
|
+
initializer.map do |val|
|
101
|
+
destroyed = if val.has_key?(:_destroy)
|
102
|
+
val[:_destroy]
|
103
|
+
elsif val.has_key?("_destroy")
|
104
|
+
val["_destroy"]
|
105
|
+
end
|
106
|
+
unless [true, "1"].include?(destroyed)
|
107
|
+
klass.new(val, self)
|
108
|
+
end
|
109
|
+
end.compact
|
101
110
|
end
|
102
111
|
else
|
103
112
|
klass.new(initializer, self)
|
data/spec/acceptance_spec.rb
CHANGED
@@ -24,6 +24,7 @@ class AcceptanceParams < SimpleParams::Params
|
|
24
24
|
end
|
25
25
|
|
26
26
|
nested_array :dogs do
|
27
|
+
with_rails_helpers
|
27
28
|
param :name
|
28
29
|
param :age, type: :integer, validations: { inclusion: { in: 1..20 } }
|
29
30
|
end
|
@@ -114,7 +115,8 @@ describe SimpleParams::Params do
|
|
114
115
|
dogs: [
|
115
116
|
{
|
116
117
|
name: "Spot",
|
117
|
-
age: 8
|
118
|
+
age: 8,
|
119
|
+
_destroy: false
|
118
120
|
}
|
119
121
|
],
|
120
122
|
cats: [
|
@@ -423,6 +425,52 @@ describe SimpleParams::Params do
|
|
423
425
|
end
|
424
426
|
end
|
425
427
|
|
428
|
+
context "with destroyed dog" do
|
429
|
+
let(:params) do
|
430
|
+
{
|
431
|
+
name: "Tom",
|
432
|
+
age: 41,
|
433
|
+
address: {
|
434
|
+
street: "1 Main St.",
|
435
|
+
city: "Chicago",
|
436
|
+
state: "IL",
|
437
|
+
zip_code: 33440
|
438
|
+
},
|
439
|
+
phone: {
|
440
|
+
phone_number: "234"
|
441
|
+
},
|
442
|
+
dogs: [
|
443
|
+
{
|
444
|
+
name: "Spot",
|
445
|
+
age: 6
|
446
|
+
},
|
447
|
+
{
|
448
|
+
name: "Max",
|
449
|
+
age: 4,
|
450
|
+
_destroy: true
|
451
|
+
}
|
452
|
+
],
|
453
|
+
cats: [
|
454
|
+
"0" => {
|
455
|
+
name: "Fuzzball"
|
456
|
+
}
|
457
|
+
]
|
458
|
+
}
|
459
|
+
end
|
460
|
+
|
461
|
+
it "is valid after multiple times" do
|
462
|
+
acceptance_params = AcceptanceParams.new(params)
|
463
|
+
acceptance_params.valid?
|
464
|
+
acceptance_params.should be_valid
|
465
|
+
acceptance_params.should be_valid
|
466
|
+
end
|
467
|
+
|
468
|
+
it "only assigns 1 dog" do
|
469
|
+
acceptance_params = AcceptanceParams.new(params)
|
470
|
+
acceptance_params.dogs.count.should eq(1)
|
471
|
+
end
|
472
|
+
end
|
473
|
+
|
426
474
|
context "with destroyed cat" do
|
427
475
|
let(:params) do
|
428
476
|
{
|
@@ -462,7 +510,7 @@ describe SimpleParams::Params do
|
|
462
510
|
acceptance_params.should be_valid
|
463
511
|
end
|
464
512
|
|
465
|
-
it "only assigns 1 cat"
|
513
|
+
it "only assigns 1 cat" do
|
466
514
|
acceptance_params = AcceptanceParams.new(params)
|
467
515
|
acceptance_params.cats.count.should eq(1)
|
468
516
|
end
|
@@ -514,6 +562,7 @@ describe SimpleParams::Params do
|
|
514
562
|
param :dogs, Array, desc: '', required: true do
|
515
563
|
param :name, String, desc: '', required: true
|
516
564
|
param :age, Integer, desc: '', required: true
|
565
|
+
param :_destroy, Boolean, desc:'', required: false
|
517
566
|
end
|
518
567
|
param :cats, Array, desc:'', required: true do
|
519
568
|
param :name, String, desc:'', required: true
|