Wow. I just watched Dave Thomas' talk Ruby Metaprogramming: Extending Ruby for Fun and Profit and it explained so many things.

It's quite worth watching if you like Ruby and don't know about metaprogramming and Ruby hooks and what 'self' means, fully.