Engines 2.0 (ish)

Hi all,

Just a quick note to let you know, should it be relevant, that we're readied a new release of the Engines plugin, revamped and ready for Rails 2.0, and would absolutely love for you to start using it and sending feedback about what's broken, what's missing and what could be improved.

Grab the plugin here:

  http://svn.rails-engines.org/engines/trunk

In order to work with the new plugin loading mechanism in Rails 2.0, you'll also need to add a line to environment.rb, just after the require of Rails' boot file:

  require File.join(File.dirname(__FILE__), '../vendor/plugins/engines/boot')

After that, you're good to go. Kick the tires, take it for a spin around the block, and please do let me know how it runs. There may be problems, we'll try and resolve them as you guys report them back.

For anyone thinking 'What is the Engines plugin?': The engines plugin enhances Rails' own plugin framework, making it simple to share controllers, helpers, models, public assets, routes and migrations in plugins. Find out more in the README:

  http://api.rails-engines.org/

I'd also like to highlight the sterling efforts of Sven Fuchs, Josh Ferguson, and everyone else who's contributed ideas and patches for this iteration. Thanks!

James

James Adam wrote:

Just a quick note to let you know, should it be relevant, that we're readied a new release of the Engines plugin, revamped and ready for Rails 2.0, and would absolutely love for you to start using it and sending feedback about what's broken, what's missing and what could be improved.

This is wonderful. I have found the Engine plugin invaluable to my work. I know component-based programming has gotten a bad rep in the Rails world (some of it deserved after the way Java/.NET have abused the concept) but for some development the engines are the only way to go. This plugin is installed on at least 90% of my apps and glad to know it will be here for Rails 2.0 moving forward.

Was wondering if there are any new features or changes in the way things are done in this release? Or is this mostly just a Rails 2.0 compatibility release with nothing much changes from the point of view of a engine developer?

Eric

Good point. What is the upgrade path?

This is basically a Rails 2.0 compatability release, but thanks to some of the internal plugin refactoring in Rails itself we managed to slim down a whole bunch of the original "monkey patching", which means that the ride should only get smoother in the future.

Some "features" have been removed, but they are almost all never really used - things like loading a plugin's about.yml when the plugin loads. If this is actually useful, it can be re-added, but I don't see the sense in adding bells and whistles just for their own sake. Please do try it out and give feedback about what you feel might be missing or broken.

The "upgrade path" is outlined in the README (See original email), but amounts to adding a single line in environment.rb to switch PluginLoader implementations to the one provided in the engines plugin. Everything else can be left to Rails' default setup.

I remember looking at the project a couple of months ago and the project back then appeared 'less than lively'. I am glad to see I was mistaken(I am, right?) as I think the lack of propper vertical functionality portability is holding a great framework like Rails back.

Good work!