params_cleaner 0.2.1 → 0.3.0

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.
Files changed (2) hide show
  1. data/lib/params_cleaner.rb +14 -5
  2. metadata +6 -6
@@ -5,14 +5,16 @@ require "active_support/hash_with_indifferent_access"
5
5
  module ParamsCleaner
6
6
  extend ActiveSupport::Concern
7
7
 
8
- VERSION = "0.2.1"
8
+ VERSION = "0.3.0"
9
9
 
10
10
  def clean_params(root_params = params, top_level = true)
11
- cleaned_params = root_params.map do |key, val|
12
- if val.kind_of?(Hash)
13
- _clean_hash(key, val)
11
+ cleaned_params = root_params.map do |key, value|
12
+ if value.kind_of?(Hash)
13
+ _clean_hash(key, value)
14
+ elsif value.kind_of?(Array)
15
+ _clean_array(key, value)
14
16
  else
15
- _clean_value(key, val, top_level)
17
+ _clean_value(key, value, top_level)
16
18
  end
17
19
  end
18
20
 
@@ -20,6 +22,13 @@ module ParamsCleaner
20
22
  HashWithIndifferentAccess.new(cleaned_params_hash)
21
23
  end
22
24
 
25
+ def _clean_array(key, value)
26
+ cleaned_values = value.map do |sub_value|
27
+ _clean_hash(key, sub_value).last
28
+ end
29
+ [key, cleaned_values]
30
+ end
31
+
23
32
  def _clean_hash(key, value)
24
33
  allowed_keys = value.slice(*self.class._allowed_nested[key.to_sym])
25
34
  clean_values = clean_params(allowed_keys, false)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: params_cleaner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-24 00:00:00.000000000 Z
12
+ date: 2012-05-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &70144811460760 !ruby/object:Gem::Requirement
16
+ requirement: &70149936901760 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70144811460760
24
+ version_requirements: *70149936901760
25
25
  description: Rails mass assignment protection in the controller
26
26
  email:
27
27
  - drew@drewolson.org
@@ -44,7 +44,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
44
44
  version: '0'
45
45
  segments:
46
46
  - 0
47
- hash: 2864435694347274043
47
+ hash: -3038972351718504170
48
48
  required_rubygems_version: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
@@ -53,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
53
  version: '0'
54
54
  segments:
55
55
  - 0
56
- hash: 2864435694347274043
56
+ hash: -3038972351718504170
57
57
  requirements: []
58
58
  rubyforge_project:
59
59
  rubygems_version: 1.8.15