Something that slipped my radar: Rails Engines.
Woah.. I know there’s already several ways to help/add/modify Rails.. there are generators, helpers, and the (kind of) new plugins. But engines?
Rails Engines are a way of dropping in whole chunks of functionality into your existing application without affecting any of your existing code. They 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.
(see http://rails-engines.org/ )
Interesting.. I can think of a few uses of mini-apps already… so now, let’s look at what the community has written for each (from the wiki): Plugins, Rails Engines, 3rdPartyLibs. 3rdPartyHelpers and AvailableGenerators.
Yea. The first thought that comes to mind is… mess. So many selections that I think there might be enough mess for a distro to happen. e.g. In RailsX distro, the scaffolded apps is ajax-ified, or RailsY distro comes ready with a login/password/forget-password mini-app, or RailsZ has defaults optimized for speed (imho, more aptly named as shinkansen).. OpenRails is optimized for security… EasyRails comes complete with Ruby installed and servers configured… oops, that’s already InstantRails, though I’m not sure if it had intended itself to be. Anyways, distros are much better than forking aye? And to some extent, might just relieve the core team from dealing with a variety of wishes.
In whichever case, if distros do happen, lets just hope the package distribution mechanism remains on the plate of the core so that things will work cross-distro- think RPM, DEB,.. and then there’s Ubuntu DEB.. irk!