Beginning Ruby from Novice to Professional 2nd Ed by Peter Cooper