When I read a computer book titled "Learning (Something)" and I don't learn anything, I have to ask myself: is the fault in the book, or in myself? This time, I believe, it's the book.
O'Reilly has an excellent reputation as a publisher of technical books. The table of contents suggests a carefully organized survey of language features, but the actual discussion is flighty and shallow. The author is clearly a Ruby enthusiast. It seems as if he wanted to mention everything, but didn't have time to EXPLAIN anything. In short order, he shows us eval, methods, blocks, and procs, but in the sample code, they all just print "Hello, Matz!" There is no discussion of when or why one technique might be preferable to another.
The book is full of sample code that illustrates syntax without even slightly illuminating the reasoning behind it. To illustrate logical AND:
if a == 10 && b == 27 && c == 43 && d == -14
print sum = a + b + c + d
end
Later the same tests are shown separated with "||" for logical OR. Beginning programmers might wonder, "Why in the world would I want to do THAT?" Better sample code would use scenarios where the specified actions make obvious logical sense. Experienced programmers won't have trouble with AND and OR, but the same unhelpful style of sample code illustrates unique Ruby features and more complex topics, too. (Maybe it's not a problem if you already know all this stuff.)
Each chapter ends with several review questions. Here are a couple from the first chapter: "What is the nickname of the inventor of Ruby?" and "Who wrote the pickaxe book?" To be fair, in later chapters some of the answers might be the name of an object method or a math constant. But all the questions test the reader's ability to repeat something from the chapter, never his real understanding.
Oh, maybe I'm too harsh, saying I didn't learn ANYTHING from this book. The nickname of the inventor of Ruby? Matz.