Forum: Rails Engines development Engines 2ish / Rails 2.0.1

Ff82af3238a57fbd1212832ec1a19f28?d=identicon&s=25 Dylan Stamat (Guest)
on 2007-12-14 04:51
(Received via mailing list)
This is on an app that successfully runs Engines 1.2, and Rails
1.2.6.... but ported to Engines 2.0.0-RC1, and Rails 2.0.1.

Added the engines boot.rb line to environment.rb after the existing
boot require.  The engines init.rb has not been changed, and sets:
Rails.plugins[:project].code_paths  << "app/interests" << "app/
apis"  (which can be called via Engine.plugins now... but same
exception is thrown).

init.rb:20:in `evaluate_init_rb': You have a nil object when you
didn't expect it! (NoMethodError)
The error occurred while evaluating nil.code_paths      from ./
script/../config/../vendor/rails/railties/lib/rails/plugin.rb:79:in
`evaluate_init_rb'
         from /projects/vendor/rails/activesupport/lib/active_support/
core_ext/kernel/reporting.rb:11:in `silence_warnings'
         from ./script/../config/../vendor/rails/railties/lib/rails/
plugin.rb:75:in `evaluate_init_rb'
         from ./script/../config/../vendor/rails/railties/lib/rails/
plugin.rb:39:in `load'
         from /projects/config/../vendor/plugins/engines/lib/engines/
plugin.rb:77:in `load'
         from ./script/../config/../vendor/rails/railties/lib/rails/
plugin/loader.rb:33:in `load_plugins'
         from ./script/../config/../vendor/rails/railties/lib/rails/
plugin/loader.rb:32:in `each'
         from ./script/../config/../vendor/rails/railties/lib/rails/
plugin/loader.rb:32:in `load_plugins'
          ... 30 levels...
         from /projects/vendor/rails/activesupport/lib/active_support/
dependencies.rb:496:in `require'
         from /projects/vendor/rails/railties/lib/commands/server.rb:39
         from script/server:3:in `require'
         from script/server:3

No time to debug at the moment, as this isn't a priority... but, just
wanted to get this out there if this is a known issue, or anybody has
any suggestions.
Cheers !
==
Dylan
402602a60e500e85f2f5dc1ff3648ecb?d=identicon&s=25 Sven Fuchs (Guest)
on 2007-12-14 10:46
(Received via mailing list)
Hi Dylan,

yes, I think you actually have to change your init.rb files.

Instead of:

> Rails.plugins[:project].code_paths  << "app/interests" << "app/
> apis"

try:

code_paths << "app/interests" << "app/apis"

This is because the Rails plugin loading mechanism has changed a lot.
Contrary to Rails 1.2.x the init.rb file is now evalutated inside of
the Plugin object. The Plugin object is then added to Engines.plugins
after that. So it is not available in Engines.plugins in init.rb. The
cool thing about this change is that you can access all the Plugin
methods from within init.rb now.

Hmm, we probably should put that into some kind of upgrade note. Or
even a rake task that goes through the init.rb files and removes those
bits like Rails.Engines[:name]? But maybe that's not worth the hassle?


Am 14.12.2007 um 04:50 schrieb Dylan Stamat:

> didn't expect it! (NoMethodError)
> plugin.rb:77:in `load'
>         from script/server:3:in `require'
> Engine-Developers@lists.rails-engines.org
> http://lists.rails-engines.org/listinfo.cgi/engine...

--
sven fuchs      svenfuchs@artweb-design.de
artweb design    http://www.artweb-design.de
gr├╝nberger 65    + 49 (0) 30 - 47 98 69 96 (phone)
d-10245 berlin    + 49 (0) 171 - 35 20 38 4 (mobile)
00e3a96684ab390a350b0271e98741d3?d=identicon&s=25 Nshbrown Nshbrown (nshb)
on 2007-12-21 16:41
(Received via mailing list)
I thoroughly enjoy automation, or at least a deprecation notice to let
ya
know. I'm just trying one of my projects on  Rails 2 and Engines haven't
toyed with it much at all, but default install doesn't work.

Is there an upgrade script we could manifest? I'm not sure of the exact
updates yet, so I'll be fishing for a bit.
05d703f649ef1d07e78d7b479fb4c4ac?d=identicon&s=25 James Adam (Guest)
on 2007-12-22 22:36
(Received via mailing list)
On Dec 21, 2007 3:14 PM, Nathaniel Brown <nshb@inimit.com> wrote:
> I thoroughly enjoy automation, or at least a deprecation notice to let ya
> know. I'm just trying one of my projects on  Rails 2 and Engines haven't
> toyed with it much at all, but default install doesn't work.

Hence the "ish" part of "2.0 ish". Alas, some things just aren't
possible in Rails 2.0, but yes, they should certainly be documented.

I'd rather provide documentation than an upgrade script, and trust
developers to figure out how things apply to their own code.
This topic is locked and can not be replied to.