June 11, 2006
Older: Parameter Driven Response-Type Determination
Newer: Using App Guts in Your Plugins
Hash Goodness
Over at caboo.se they just posted this hash trick:
class Hash
# lets through the keys in the argument
# >> {:one => 1, :two => 2, :three => 3}.pass(:one)
# => {:one=>1}
def pass(*keys)
tmp = self.clone
tmp.delete_if {|k,v| ! keys.include?(k) }
tmp
end
# blocks the keys in the arguments
# >> {:one => 1, :two => 2, :three => 3}.block(:one)
# => {:two=>2, :three=>3}
def block(*keys)
tmp = self.clone
tmp.delete_if {|k,v| keys.include?(k) }
tmp
end
end
which makes it possible to …
def some_action
# some script kiddie also passed in :bee,
# which we don't want tampered with
@model = Model.create(params.pass(:foo, :bar))
end
Nice!
0 Comments
Thoughts? Do Tell...