simple_params 1.4.0 → 1.4.1
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 +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
|