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.