This is a presentation built using iPython Notebooks that covers Metaprogramming in Ruby.
If you choose to run the notebook (you'll need iPython installed), I highly recommend checking out a plugin for iPython called Rise. This will allow you to give a Reveal.js style presentation, but instead of manually coding your slides, you build them using an iPython Notebook. This allows you to use both Markdown and interactive REPLs to give a presentation. It's super powerful.
Enjoy!
I do not talk about Singleton Methods or Eigenclasses. Those concepts cover a good chunk of metaprogramming in Ruby, but they are in my opinion the most confusing concepts to master and I've never ran into a situation where using them would have made my code much better. Thus I chose to avoid them altogether, but if you're interested in learning more there are tons of articles about them.