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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- N2FhZWYzZTAzNmJhMmE3YjYxOThlNDhkMzM5NzlhYmQxNTMxOTQ5OQ==
4
+ ZjFhZmVhOTFiODE2NWY3MjJkYjA1OTczYWQ3ZjMxNGRmMWQ5YzAyZQ==
5
5
  data.tar.gz: !binary |-
6
- OWQ3NmQwYzA2OGZlNTNkNTM4MTY3ZjQ5M2FjNDU3YWU0ODRkZTE5ZQ==
6
+ ZGUxNTExNTRmYWUzMmYxNDA2MzQyNDkxNTllNTU3OTU4MDFiZjJhMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZDQwMDY2MzZjMTAxNmI1OTAzM2Q5M2VjY2M3YjgzY2E5NzI4ODM1Njk3YTYw
10
- MzQxZWI0N2VjNDg3YTA3Y2MxOGVlMGMxYWM1OWJlNGQ2MzJhYjM1MzExMjU2
11
- YWEwMTk5M2Q4NmE1ZTY0YWJkZWFmZjIyY2JkNWE4MWViYWQ1Y2I=
9
+ MjRlMGQzZjc0OWM4NDQwMjMzNGZlNjIxODMzNWRiYWU3ZDhiYTBkZDA0MjM4
10
+ NzM4OTRkM2M2ZmZiMGU2NWFlMTllYjA0ZThiMTc5NDgyMjhhMDQ5NTJkZTkz
11
+ YmI5MzZlYzlmODkxM2E4ZGU1MTk2YjcyMjgzMDQyY2Q3M2VhM2Y=
12
12
  data.tar.gz: !binary |-
13
- NzQ1N2U2MWMxNTg4OGQwMWViYmZlOTFlOGQ2ZjMyNjQyY2JjMDJlZDYwZDBm
14
- NjJiNWQzZDdkMzYxMThlYTViNDMyNTM3NGNlZjc1ZmQ2Yjg3YWI4MzBiMmVi
15
- MTU5N2QyMTM1ZWFmMDQwZGQ3OGZmMDRiMzJhODc2NzE5ODJlNWE=
13
+ ZTM0ZjlmMTJmNjI3MWE0NzIzYmM0NzljZjkyOTI0MDYzYTE3YWQ1ZTVlMmVh
14
+ ZjhlMWQ3ZGNlMmE4N2UyMTk0MjhlZjAyNmQxNWI0NjIxY2U4MjNjNzIyOWUx
15
+ ZmExMjgxNjc1YjY4YzQ5Yjc1NDU3NGEyYmZmNTJjYjkyOGIyNTA=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_params (1.3.6)
4
+ simple_params (1.4.0)
5
5
  activemodel (>= 3.0, < 5.0)
6
6
  shoulda-matchers (~> 2.8)
7
7
  virtus (>= 1.0.0)
@@ -97,7 +97,16 @@ module SimpleParams
97
97
  array
98
98
  end
99
99
  else
100
- initializer.map { |val| klass.new(val, self) }
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)
@@ -1,3 +1,3 @@
1
1
  module SimpleParams
2
- VERSION = "1.4.0"
2
+ VERSION = "1.4.1"
3
3
  end
@@ -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", failing: true do
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_params
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - brycesenz