-# From:\r
-# http://www.bigbold.com/snippets/posts/show/2178\r
-# http://blog.caboo.se/articles/2006/06/11/stupid-hash-tricks\r
-# \r
-# An example utilisation of these methods in a controller is:\r
-# def some_action\r
-# # some script kiddie also passed in :bee, which we don't want tampered with _here_.\r
-# @model = Model.create(params.pass(:foo, :bar))\r
-# end\r
-class Hash\r
-\r
- # lets through the keys in the argument\r
- # >> {:one => 1, :two => 2, :three => 3}.pass(:one)\r
- # => {:one=>1}\r
- def pass(*keys)\r
- keys = keys.first if keys.first.is_a?(Array)\r
- tmp = self.clone\r
- tmp.delete_if {|k,v| ! keys.include?(k.to_sym) }\r
- tmp.delete_if {|k,v| ! keys.include?(k.to_s) }\r
- tmp\r
- end\r
-\r
- # blocks the keys in the arguments\r
- # >> {:one => 1, :two => 2, :three => 3}.block(:one)\r
- # => {:two=>2, :three=>3}\r
- def block(*keys)\r
- keys = keys.first if keys.first.is_a?(Array)\r
- tmp = self.clone\r
- tmp.delete_if {|k,v| keys.include?(k.to_sym) }\r
- tmp.delete_if {|k,v| keys.include?(k.to_s) }\r
- tmp\r
- end\r
-\r
-end\r
+# From:
+# http://www.bigbold.com/snippets/posts/show/2178
+# http://blog.caboo.se/articles/2006/06/11/stupid-hash-tricks
+#
+# An example utilisation of these methods in a controller is:
+# def some_action
+# # some script kiddie also passed in :bee, which we don't want tampered with _here_.
+# @model = Model.create(params.pass(:foo, :bar))
+# end
+class Hash
+
+ # lets through the keys in the argument
+ # >> {:one => 1, :two => 2, :three => 3}.pass(:one)
+ # => {:one=>1}
+ def pass(*keys)
+ keys = keys.first if keys.first.is_a?(Array)
+ tmp = self.clone
+ tmp.delete_if {|k,v| ! keys.include?(k.to_sym) }
+ tmp.delete_if {|k,v| ! keys.include?(k.to_s) }
+ tmp
+ end
+
+ # blocks the keys in the arguments
+ # >> {:one => 1, :two => 2, :three => 3}.block(:one)
+ # => {:two=>2, :three=>3}
+ def block(*keys)
+ keys = keys.first if keys.first.is_a?(Array)
+ tmp = self.clone
+ tmp.delete_if {|k,v| keys.include?(k.to_sym) }
+ tmp.delete_if {|k,v| keys.include?(k.to_s) }
+ tmp
+ end
+
+end