Ruby implementations of the Gang of Four Design Patterns