James Adam posted this to the rails-ML.
Announcing the birth of a bouncing plugin baby boy:
… at which you can digest all manner of propaganda and rdoc.…
well, docs. You might particularly want to watch the demo movie:
Any mirrors of this would be greatly appreciated! Below is the hype:
What are Rails Engines? Rails Engines are a way of dropping in whole chunks
of functionality into your existing application without affecting any of
your existing code. The could also be described as mini-applications, or
vertical application slices - top-to-bottom units which provide full MVC
coverage for a certain, specific application function.
Why do I want this? Rails Engines are advantageous over normal generators
because the do not insert any code into the /app directory, but remain
isolated within the plugins directory of your application. Furthermore, you
can override individual controller actions and views/partials within your
application as needed, whilst leaving the original Engine files intact.
OK, I need an example As an example, the Login Engine (heavily based on the
Salted Login Generator, all kudos to those guys) provides a full user login
- controllers to manage user accounts;
- helpers for you to interact with account information from other
parts of your application;
- the model objects and schemas to create the required tables;
- and any other library files required.
How do I get such devilry? Engines can be distributed using the same
mechanisms as regular Rails lugins (since to the Rails plugin system they
appear to be almost the same thing). If you are developing engines yourself
for use across multiple projects, linking them as svn externals allows
seamless pdating of bugfixes across multiple applications.
The Rails Engines plugin and all other engines should be listed on the
Plugins page in the wiki, so that the bleeding-edge script/plugin command
can be used to install them painlessly.
Currently they are hosted on the OpenSVN servers at opensvn.csie.org/rails_engines/plugins,
although a more permanent home would be make me very very happy.…