RubyTapas
Short Screencasts of Gourmet Ruby, by Avdi Grimm
In this episode, we look at how to use dynamically generated modules to make metaprogrammed methods open for future extension.
Read More