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