Ruby Cookbook: Recipes for Object-Oriented Scripting