Umm..just one question, why are you porting engines to rails 2.0 ? From what I understand, engines are no longer needed as the same goals can be achieved using plugins.
Hi Pratik!
I'm probably not the one to expand on what Engines were in a Rails 1.2
world as I actually never used them back then.
Yes, a good chunk of what's in Engines for Rails 1.2 has gone into
Rails 2.0 like the explicit load order and stuff like that. This can
now be factored out of Engines.
I'm not sure though how a default Rails plugin would register a route
though, for example, or share migrations? I'm probably missing
something and would really like to learn about that as I need this
kind of functionality for a client.
PS: I've changed that sentence to say "help porting" ... just to make
sure nobody thinks I've started a fork or whatnot
Quite a bit of what the engines plugin used to provide has now been adopted in the core framework, including partial plugin load orders and a richer plugin loading mechanism. However, the engines plugin still adds functionality that Rails plugins do not have by default, including (but not limited to):
* adding routes * running migrations * sharing public assets * easily sharing controller code
While certainly it's possible to achieve this in a default Rails plugin, there are situations where it's useful to have the functionality available in a standardised manner. Perhaps you are confusing the old notion of "an engine" with the engines plugin itself? (see http://rails-engines.org/news/2007/01/03/engines-are-dead-long-live-engines/).
Ah right. That makes sense. Please forgive my engine ignorance and thanks for the clarification !
Sven, the article is great nevertheless.
Thanks