This is following up on http://lists.toolbocks.com/pipermail/ 
toolbocks-user/2007-May/000027.html
(datetime_toolbocks fails in functional tests)

Here's the problem:

Engines causes plugins to be loaded in 2 phases.  First plugins that  
don't depend on engines are loaded.  Then Rails does some  
initialization.  Then Engines patches Rails.  Then the remaining  
plugins get loaded.

After all that is done, Engines' modifications of dependencies.rb  
will cause a subsequent load of application_helper to be patched by  
application_helper files in plugins.  All well and good in  
development and production mode.

The trouble comes in test mode: the file ~rails/lib/test_help.rb gets  
loaded during Rails's initialization, before the engines plugins.   
test_help.rb requires application.rb, which in turn loads  
application_helper.rb.  Because the engines plugins haven't been  
loaded yet, application_helper.rb is unpatched, and  
datetime_toolbocks's methods are unavailable to functional tests.

It looks like there is a related bug in the engines repository:  
http://dev.rails-engines.org/engines-plugin/tickets/16

A nasty fix is to copy ~rails/lib/test_help.rb to your project's lib  
directory and then add the following two lines right before the call  
to require_dependency 'application'

require 'engines'
Engines.after_initialize

(Engines.after_initialize loads the extra plugins)

Geoff
_______________________________________________
engine-developers mailing list
[email protected]
http://lists.rails-engines.org/listinfo.cgi/engine-developers-rails-engines.org

Reply via email to