params_cleaner 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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