Dave Thomas and Andy Hunt are the "Pragmatic programmers", well known writers and hackers in the programming community. A few years ago they 'discovered' Ruby, which back then had a much smaller following than today, and set out to write a book that documents it.

Thus "Programming Ruby" (1st edition) was born. At its time it was the most complete guide to the Ruby language, and thus added a lot to its popularity, because of the authors' clear and flowing writing style and their obvious affection for the language.

The second edition of the book is somewhat expanded, containing a few extra chapters and documenting the latest major release of Ruby - version 1.8 (the authors helpfully include notices throughout the book of features that are new or have changed from 1.6 to 1.8).

This book serves as a very nice reference to the language. It is divided to two main parts - the first is a very detailed overview of the language - probably the closest to a formal spec of Ruby you will find. The second part is a complete reference of the Ruby core classes and the standard library distribution. Personally, I don't find the second part to be necessary, as all this information can now be generated from the Ruby installation by using 'ri' into a convenient .chm format.

I will certainly turn to this book when I need some feature of Ruby thoroughly explained, but it's not a book to learn the language from. It is too much of a reference for it, and is quite scarse or 'real' code samples.