RubyTapas
Short Screencasts of Gourmet Ruby, by Avdi Grimm
Sometimes you need to attach new functionality, such as logging, to other people's code. Learn to leverage Ruby's ancestor chain for (relatively) clean patching, using prepended modules!
Read More
How to check class of uncooperative, or outright dishonest Ruby objects.
What's the best way to ask a Ruby object what class it belongs to?
Auto-detecting subclasses (and why you might not want to)