I recently encountered this circular dependency but I'm not a fan of by passing the environment and more importantly the preinitializer which my app makes heavy use of. The only problem I ran into was the Rails::Initializer#prepare_dispatcher method that caused my ApplicationController and/or ApplicationHelper to bomb on inclusion of things like HoptoadNotifier::Catcher.

This could be a disconnect with plugin/gem development that might involve a better way... ie, having the lib send the include when the plugin/gem is loaded. That said, I just took the short term bailout and used code like this in those files.

  unless $rails_gem_installer
    include HoptoadNotifier::Catcher
  end

I'd love to know if things like #prepare_dispatcher should use conditional `if gems_dependencies_loaded` code like many others do in that class and or better solutions to the problem since my fix above only helps if you are in any of the gem namespaced rake tasks.

 - Ken

On Jan 25, 2009, at 11:08 AM, Josh Susser wrote:


This is a good improvement, but I dislike that building gems loads the
environment at all.  If something in your environment file uses a
class defined in a gem, you get a circular dependency where you need
the gem you're trying to build in order to build gems at all.  Seems
like the only way out of this is to move the config.gem stuff into a
separate file that can be used during the environment booting/
initialization, or for building gems without the environment.

--josh


On Jan 23, 2009, at 1:17 PM, Mark Van Holstyn wrote:
If gems are configured in config/environments/test.rb and "rake
gems:build" is run in the production environment, the gems configured
for the test environment are built. This forces the production machine
to have the necessary libraries installed to build all gems used for
testing.

This patch updates "rake gems:build" to only build gems configured for
the current Rails.env.

http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/1793-make-rake-gemsbuild-respect-railsenv

--
Josh Susser
http://blog.hasmanythrough.com
Golden Gate Ruby Conf :: April 17-18 :: http://gogaruco.com




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---


Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to