UPDATE: Objects on Rails is now complete and freely available online.

Often, at conferences and users group meetings, I find myself discussing the intersection of Ruby on Rails, Object-Oriented development, and Test-Driven Development, and I’ll mention something like “I prefer to develop my business objects first, and add ActiveRecord in later”. This usually leads to questions about how I structure my projects, how I isolate the business logic from ActiveRecord for testing, and so on. These discussions usually wind up with me saying “I’ll write a blog post about it…”.

A couple months ago I set out to start that blog post. I looked up from my keyboard a few hours later and realized that I had something rather larger than a blog post on my hands. Since then I’ve been pecking away at from time to time, in between work and conference travel. Now it’s reached the point where I’ve got a rough draft and it’s time to get some reader input.

When the book is complete I plan on releasing it for free for online reading in it’s entirety. It’s not quite ready for that stage yet. But today, I’m making an early-access (very) beta draft available for $5.

Wait a second… I’m selling you a book which I’ll eventually put online for free? How is that a good deal?

Here’s what you get for your money:

Early access!

Input into the final product.

When they are ready, you’ll get PDF, Mobi, and Epub versions for your offline reading pleasure. These versions will not be made available for free.

for your offline reading pleasure. These versions will not be made available for free. Once it is ready, a copy of the full source code including revision history of the working demo project the book is based on. Again, this will not be made available for free.

of the working demo project the book is based on. Again, this will not be made available for free. A warm, fuzzy feeling because you’re supporting me in writing this and future books, like my upcoming “Confident Ruby”.

Curious about what’s in the book? Here are some of the topics covered:





Starting with business models, adding persistence later.

Blazing-fast isolated tests using minitest without Rails loaded.

Using the language of the domain, not the language of the framework.

Stubbing out whole classes and modules in tests.

Stop worrying and learn to love Dependency Injection

Using the Presenter pattern to iron out convoluted view logic.

Exposing rich hypermedia RESTful resources with presenters.

Treating ActiveRecord as an implementation detail.

Separating fast unit tests from slower integration tests.

When to throw away your tests.

Using object composition to separate concerns.

Extracting object Roles into their own objects.

Sound interesting? Click here to buy it now:

UPDATE: Want to submit feedback or discuss the book? I’ve created a Google Group for that purpose: https://groups.google.com/group/objects-on-rails