Source code from book Practical Object-Oriented Design in Ruby: An Agile Primer