A ruby practice exercise, written using TDD