I'm not ashamed to admit Ruby messes with my head. I'm pretty much an ice-cold master of C, Java, and (mostly) C#, but I feel I've only scratched the surface of Ruby.
So my trick of the day comes from trying to think up a way to unit test a Ruby module with non-module methods, meaning it has to be mixed-into a class before those methods can be called and tested. My first pass was simply to write a throw-away Ruby class that mixed-in the module. But then I though, why not make a function that works for any module?
So I actually wrote two functions:
Here's the code for the first one. All it does is create the new Class object, passing as its body an include statement for the module.
And the second, which simply calls new on the class created from the previous function: