TL;DR This book is for advanced Rails developers who wants to know how Rails magic works and/or write their own Rails plugins.
This book is for advanced Rails developers. Not for intermediates and definetely not for beginners. But if you want to understand Rails more deeply than you should read it.
Jose Valim is Rails core team member and also very good author. I like the style in which is this book written.
Jose explains different Rails subsystems like Models, Controllers, Generators, ... just before you need to know how they works so you can write some plugin which utilizes or extend given subsystem.
And what I really liked is that everything is tested. So you will learn not just how to write Rails plugins but also how to test them.
Personally I am not sure if I will use something from this book in near future but I would like to keep it as a great Rails reference.
TL;DR: Really good book for intermediate and experienced Rails developers who would like to look closely Rails under the hood.
The Author of the book expects reader to be experienced with Ruby language and Rails framework. There are no elementary explanations of how to do basic stuff like you will find in Beginning Rails and similar sort of books. Every reader should consider this before reading this book.
The book takes reader deeper into Rails framework, explains how framework works by using diagrams and parts of Rails source codes. What I really liked was that explanations do not end here, but they are more like starting point for further learning. For example author describes how rendering stack in Rails works and then tries to learn reader how to write custom renderers, template handlers, responders, etc. In many cases via Rails plug-ins.
What I consider as one of the strong points of book is that author tends to use TDD when implementing examples. It can help and inspire reader to try TDD in real life situations.
It may be just me, but chapters usually consist of more than 20 pages and examples are scattered on many pages, which was sometimes really confusing. To not lose track of what's going on, I found useful to have all code samples in computer and play with them after I finished chapter or during reading.
To sum up, I really enjoyed reading this book (it's around 200 pages, I would gladly read more 100 pages), it was not boring, I would highly recommend this book.