deep_send
If you’re Ruby metaprogramming and you need to call send several levels deep, give this little utility method I made a try:
class Object
def deep_send(s)
s.split('.').inject(self) { |memo, obj| memo ? memo.send(obj) : nil }
end
end
Then you can say some_object.deep_send(’this.that.whatever’), instead of a bunch of inject/Proc messiness.