Chapter 17. Engines
This chapter covers
- The importance of engines for Rails 3
- Building a new engine and exploring the base
- Using behavior-driven development to develop an engine
- Releasing the engine as a gem
- Integrating an engine with an app
Engines are a new feature for Rails 3. They are effectively miniature applications that provide additional functionality to an application, and they function in much the same way as an application.
An engine allows you to share common functionality across applications in the form of a gem or a plugin. This functionality could be an authentication system such as Devise, a commenting engine, or even a forum engine. If there’s ever been a need to have the same features across an application, this is what engines were made for.
4 In Rails 3, these two are basically interchangeable. One lives in vendor/plugins, the other is installed using gem. For all intents and purposes, they work in a near-identical manner. Developers should try to use gems where possible, as they are versioned and easy to upgrade to specific versions, where plugins are not.