Programing ruby: the pragmatic programmers' guide - Thomas D.