Effective Ruby: 48 Specific Ways to Write Better Ruby (Effective Software Development Series)