Start Your Engines

Start Your Engines

About the Book

Ruby on Rails is one of the most used frameworks for web development and it is used even more by companies providing SaaS. In my opinion SaaS should be all about modularity, and that's where Rails Engines come in. So, if you're doing SaaS, want to create RoR Engines or just want to learn one of the coolest things in RoR, this book is for you! ;)

It will focus mainly on:

  1. How to create an engine
  2. Best practices for developing an engine
  3. A bit of metaprogramming (one of the most essential parts of building engines, IMO)
  4. Testing
  5. Deploying (i.e, merging with an actual app)

This is obviously subject to major refactoring until the book is published.

Here's the intro so you can have a little taste. Enjoy.

A little bit of History

Rails applications have evolved a whole lot throughout the years so, before even talking about engines let's take a step back and look at that nasty beast that were plugins.

Plugins and Engines are very much alike in terms of the problem then intend to solve, that is when you want to experiment on new stuff without hurting the stable code base or just modularize your code so that it is more easily tested, maintained and reused. They do, however, have some differences in how they approach this problem.

Prior to rails 3 plugins would live in the vendor/plugin directory and they would work fine if what you wanted was to extend ActiveRecord or String or any other class. On the other hand if you wanted like to add an actual model, controller, asset or even migration, brace yourself, your were in for a real treat.

Adding a controller would involve creating a generator that would copy it to the correct folder in the app, and the same goes for assets and migrations. This not only was a tedious job as it defeats one of the reasons we were using plugins in the first place, since it merges the plugin code with the application code. What a mess!*

As you might imagine these are just some of the more obvious problems with rails 2 plugins and quite frankly I think this is why nobody really used them.

When rails 3 came out the concept of engines came with it, these were plugins but were bundled in a gem. They were not quite as spectacular as they are today and I will not give them too much attention, I just want to mention a gem that was written by José Valim, a core Rails contributor, called Enginex. What this gem does is scaffold an engine with all the structure you need, as well as some very helpful boilerplate code.

At the time rails 3.1 was released, Enginex was bundled together with it bringing some other nice tweaks. This was the dawn of the age of the Engines!

*Some of them were actually more inteligent than this, but with practically no support from rails itself, it was a hard task.

About the Author

Luís Ferreira
Luís Ferreira

CTO, Developer and Major Geek at Group Buddies.

Co-Fouder of Minho.RB.

Sports Lover.

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub