complete examples on Head First Design Pattern in Ruby