can't run: rake gems:install if application.rb depends on initializers

In general a task that installs a gem shouldn't need to rely on much.

The gem tasks depend on the initializer firing up because they allow
things like config.gem 'rspec' in test.rb but not development.rb. Can
you reproduce this in an empty test app?

So unless I'm misreading this, it seems we're requiring application.rb
before we try to run the gem installs, but we *haven't* fired the
initializers yet?

Is it perhaps caused by one of your plugins (rspec f.ex) requiring
application.rb?

> In general a task that installs a gem shouldn't need to rely on much.

The gem tasks depend on the initializer firing up because they allow
things like config.gem 'rspec' in test.rb but not development.rb. Can
you reproduce this in an empty test app?

This problem is NOT reproducible in a simple test app:

rails test2_1_1
cd rails2_1_1
echo 'MY_CONSTANT = true' > config/initializers/test2_1_1.rb

add:

  if MY_CONSTANT
    puts "MY_CONSTANT exists"
  end

to app/application.rb

add to end of Rails::Initializer.run do |config| block:

  config.gem "rspec-rails", :lib => "spec"

$ rake gems:install
(in /Users/stephen/dev/rails/test2_1_1)
MY_CONSTANT exists

$ rake gems:unpack
(in /Users/stephen/dev/rails/test2_1_1)
MY_CONSTANT exists
Unpacked gem: '/Users/stephen/dev/rails/test2_1_1/vendor/gems/rspec-rails-1.1.8'

So unless I'm misreading this, it seems we're requiring application.rb
before we try to run the gem installs, but we *haven't* fired the
initializers yet?

Is it perhaps caused by one of your plugins (rspec f.ex) requiring
application.rb?
--

There's something different between the apps -- -- I will investigate further -- if I find anything further that might indicate a rails problem I'll update this thread.

Thanks for your response.

Stephen, did you ever figure out what caused the issue? Battling with
it now and trying to find the offending piece of code loading
application.rb

Best

I've seen this behavior as well: my initializers were not being run
during a gem install, but application.rb was being required. Inside
initializer.rb, the "gems_dependencies_loaded" test was not being met
and so the "load_application_initializers" method had no effect.

In my case, the initializers were defining some constants needed for
application.rb. I resorted to installing the gem manually.

-Chris

I've seen something similar,
where application.rb gets required when I'm trying to run rake
db:migrate.

I guess there's some plugin we're all using.

Please have a look at
http://groups.google.com/group/rubyonrails-core/browse_thread/thread/73f21c47d114b88e

I managed to split this thread when changing the subject. On edge,
application.rb won't be loaded by default anymore (Matt did give the
details), so it's not a plugin issue at all.

Best