On Sun, Jan 25, 2009 at 9:08 AM, Josh Susser <j...@hasmanythrough.com> 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.

Exactly.  I expounded upon this at mind-numbing length in this ticket:

http://rails.lighthouseapp.com/projects/8994/tickets/59-when-loading-a-plugin-via-rubygems-rake-tasks-aren-t-included

Summary:

1. Bottom line, the config.gems logic should be completely decoupled
from environment, and invokable from preinitializer.rb.  Anything else
will be subject to circular dependencies.

2. Obligatory mention of GemInstaller, which does exactly this, very
successfully, for many production apps, and predates config.gems (and
is the reason I wrote the preinitializer.rb patch)

Thanks
-- Chad

--~--~---------~--~----~------------~-------~--~----~
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 rubyonrails-core@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-core+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to