aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel
diff options
context:
space:
mode:
authorNikita Pomyashchiy <pomnikita@gmail.com>2012-06-08 01:00:34 +0400
committerNikita Pomyashchiy <pomnikita@gmail.com>2012-06-08 01:00:34 +0400
commit00ff0a6776aca4977dc6eab5ec130c67e36c36ac (patch)
tree84c8d16621c40b3791a25ae0368583204f7a47a4 /activemodel
parente638c613d0ecfa44ddc3d328c0979318cf73e33e (diff)
downloadrails-00ff0a6776aca4977dc6eab5ec130c67e36c36ac.tar.gz
rails-00ff0a6776aca4977dc6eab5ec130c67e36c36ac.tar.bz2
rails-00ff0a6776aca4977dc6eab5ec130c67e36c36ac.zip
Compact array of values added to PermissionSet instance
Diffstat (limited to 'activemodel')
-rw-r--r--activemodel/lib/active_model/mass_assignment_security/permission_set.rb2
-rw-r--r--activemodel/test/cases/mass_assignment_security/permission_set_test.rb6
2 files changed, 7 insertions, 1 deletions
diff --git a/activemodel/lib/active_model/mass_assignment_security/permission_set.rb b/activemodel/lib/active_model/mass_assignment_security/permission_set.rb
index 9661349503..415ab0ad17 100644
--- a/activemodel/lib/active_model/mass_assignment_security/permission_set.rb
+++ b/activemodel/lib/active_model/mass_assignment_security/permission_set.rb
@@ -5,7 +5,7 @@ module ActiveModel
class PermissionSet < Set
def +(values)
- super(values.map(&:to_s))
+ super(values.compact.map(&:to_s))
end
def include?(key)
diff --git a/activemodel/test/cases/mass_assignment_security/permission_set_test.rb b/activemodel/test/cases/mass_assignment_security/permission_set_test.rb
index d005b638e4..8082c49852 100644
--- a/activemodel/test/cases/mass_assignment_security/permission_set_test.rb
+++ b/activemodel/test/cases/mass_assignment_security/permission_set_test.rb
@@ -13,6 +13,12 @@ class PermissionSetTest < ActiveModel::TestCase
assert new_list.include?('admin'), "did not add collection to #{@permission_list.inspect}}"
end
+ test "+ compacts added collection values" do
+ added_collection = [ nil ]
+ new_list = @permission_list + added_collection
+ assert_equal new_list, @permission_list, "did not add collection to #{@permission_list.inspect}}"
+ end
+
test "include? normalizes multi-parameter keys" do
multi_param_key = 'admin(1)'
new_list = @permission_list += [ 'admin' ]