I’ve recently been doing a bit of work with Rails Engines, specifically looking into getting RefineryCMS and Spree working on the same install but information as to what is planned and has been developed on edge rails is scarse. So I’m wondering if there is somewhere I’ve missed where people outline the plans for Rails+1.
I’ve investigated:
- The mailing list
- Lighthouse
- The Google (good information on what has been done, not what is planned)
- The github history (commit messages aren’t usually that helpful)
Your best bet at this stage is to read the
CHANGELOGfiles from the individual parts of Rails and attempt to glean from that what you can:Other than that, there’s the GitHub commits which may offer more insight (hahaha, I’m funny, hey?) or the Lighthouse which is sometimes good for finding the reasonings behind changes.
I would expect when Rails 3.1 is released there would be a write-up much like the 3.0 Release Notes detailing the changes. As to who’s responsible for that, nobody knows.
As for Refinery and Spree, both of these projects would need to separate their code out into separate modules rather than polluting the global namespace. Controllers such as say,
PagesController, would need to becomeRefinery::PagesController. Views for this controller would need to be moved intoapp/views/refinery/pagesand the model would be inapp/models/refinerywithin the engine itself.The reasoning for this is so that applications are able to pollute the “global” namespace themselves with their own classes without overriding the functionality of the engines. It also stops engines from stepping on each other’s toes.
The problem with getting Refinery and Spree to both do this would be twofold. 1) if you’ve heard of the phrase “herding cats” it would be similar, except replace cats with rabid zombie lions. 2) You would break backwards compatibility with EVERY SINGLE APPLICATION that has used Spree or Refinery.