Meta Ruby

Learn to use Ruby's rich metaprogramming capabilities to augment the language - safely and sustainably.

Module Prepend

Sometimes you need to attach new functionality, such as logging, to other people's code. Learn to leverage Ruby's ancestor chain for (relatively) clea…

Send Variations

Sometimes you need to invoke a method whose name you won't know until runtime. In this episode, you'll learn the differences between #send, #public_se…

Bindings and Local Variables

Learn how to use the power of Ruby's Binding objects to take precise control of the environment code is executed within!

Dynamic Inspect

When it comes to debugging, you can fight with Ruby's dynamic nature... Or you can embrace it. A little just-in-time metaprogramming can give you a cl…

Mixed Argument Struct

Ruby is all about giving coders choices. What if you could give users of your code the choice between positional or keyword arguments, or some mix of …