Title is misleading. What I see presented in the article is a single technique, "implement the same interface." What I expected instead was to see methods for getting ruby core objects to present themselves as more complex objects or so on. In that case, I'd expect to see references to SimpleDelegate, Forwardable, duping the metaclass, extending the singleton class of the instantiated objects and so forth.