|Design Patterns in Ruby||bambi||384||4.5|
|Refactoring: Ruby Edition||intermediate/professional code reviewer||481||3|
|Ruby Under a Microscope||sensei||362||5|
|Ruby Best Practices||intermediate||330||5|
Design Patterns in Ruby
An example of basic OO patterns. Well written for a beginner Rubyist with great analogy in the OO world. Very shallow explanations of meta/core Ruby internals, but great examples of clean code. Bonus—a chapter dedicated to DSL, with an example.
This is much closer to Ruby than
Design Patterns in Ruby. More focused on practical issues and how to attend to their needs in the
Ruby way. Bonus
Refactoring: Ruby Edition
This one requires a ton of patience. The book explains how to apply various refactoring techniques and (almost) never cross to the red area in the Red-Green-Refactor cycle. It was really hard for me to concentrate on each technique shown because they were as useful as they were boring.
Ruby Under a Microscope
This is one of the best books ever written. The level of detail is, well, microscopic. You cannot get to a much lower level than this, and, at the same time, every higher-level behavior is explained in respect to internal implementation. This book will not leave you guessing how things work, it explains and then demonstrates them with C code implementation.
Ruby Best Practices
This is a self-improvement book for every Rubyist with a couple of years of experience. It is filled with code examples of idioms and methodologies which you've already seen in practice, but this book reveals why they are so dominant over alternatives. The author was the owner/maintainer of some XML builder/parser, so this book provides knowledge that solves real-world problems. A chapter dedicated to gem/project maintenance is a bonus. Bonus^2—there are a lot of references to context-relevant thingies, sometimes an article, other times a book, not necessarily Ruby related but still great reads.
Easy to read, but hard to find projects which need that kind of knowledge.
The community accepted this one as a textbook for writing tests in Ruby, and for good reason. It's everything one needs to start practicing TDD.