Hello all, So, finally (yes, yes, I know) a version of the engines plugin approacheth targetted at edge rails (aiming at the 1.2 release). I'm taking this opportunity to do some serious refactoring, so I thought I'd solicit some opinions while I'm at it. There might be a few emails like this in the very near future - feedback is appreciated. Topic #1: Removing the 'config' method I'm considering removing this method from engines as default. Or rather, not attaching the 'config' method to the Module class when engines loads. This might've been a bad idea since it can conflict with the 'config' method of any other module out there, or even when accessing Rails' config via the variable supplied during plugin's init.rb evaluation (http://dev.rails-engines.org/tickets/187). The purpose of the 'config' method was to make it simple for engine developers to define defaults but allow users to override those values, but I think now we might be able to adopt a more 'Railish' approach by using mattr_accessor instead. So, rather than (environment.rb): module SomeEngine config :something, <value> end Engines.start :some_engine we might have Engines.start :some_engine SomeEngine.something = <value> The user configuration would now occur after the engines are loaded, so that the appropriate accessors ca be defined within the engine itself. Obviously this change is going to break existing engines (the config method won't be there anymore) until they are updated, which needn't be immediately. Any thoughts? James
on 2006-10-16 14:10
on 2006-10-16 19:01
On Mon, 16 Oct 2006 13:09:15 +0100, James Adam wrote: > The purpose of the 'config' method was to make it simple for engine > developers to define defaults but allow users to override those > values, but I think now we might be able to adopt a more 'Railish' > approach by using mattr_accessor instead. I think that sounds good.. no reason to reinvent the wheel. The less weight that Engines carries, the more likely it is to see wider adoption. I've recently seen people who want "a plugin with views and controllers and models" but, instinctively, feel that Engines is too heavyweight. I obviously disagree... Jay
on 2006-10-16 23:57
On 10/16/06, James Adam <firstname.lastname@example.org> wrote: > SomeEngine.something = <value> > > The user configuration would now occur after the engines are loaded, > so that the appropriate accessors ca be defined within the engine > itself. I love it.