The old way I implemented fire_class_double used Module.new with a giant block that defined lots of singleton methods. @avdi's talk at GoGaRuCo inspired me to subclass Module instead.
I find this cleaner, although it is a bit more code.
Subclass Module rather than having a giant builder method.
On the one hand I'm a little worried about doing something so non-standard, but on the other hand this code is totally nuts anyway :D Merging.