From 2e67ed4291ff6600e00d109dbeca6788e7e46a07 Mon Sep 17 00:00:00 2001 From: Ben Sandofsky Date: Tue, 12 Aug 2008 18:14:45 -0700 Subject: [PATCH] Gem dependencies should either be ignored in initialization, or hard fail. It shouldn't just ignore the rest of the initializers. --- railties/lib/initializer.rb | 14 +++++--------- railties/test/initializer_test.rb | 13 +++++++++++-- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/railties/lib/initializer.rb b/railties/lib/initializer.rb index 6576cd3..690c09d 100644 --- a/railties/lib/initializer.rb +++ b/railties/lib/initializer.rb @@ -334,7 +334,7 @@ Run `rake gems:install` to install the missing gems. end def load_observers - if gems_dependencies_loaded && configuration.frameworks.include?(:active_record) + if configuration.frameworks.include?(:active_record) ActiveRecord::Base.instantiate_observers end end @@ -512,18 +512,14 @@ Run `rake gems:install` to install the missing gems. # Fires the user-supplied after_initialize block (Configuration#after_initialize) def after_initialize - if gems_dependencies_loaded - configuration.after_initialize_blocks.each do |block| - block.call - end + configuration.after_initialize_blocks.each do |block| + block.call end end def load_application_initializers - if gems_dependencies_loaded - Dir["#{configuration.root_path}/config/initializers/**/*.rb"].sort.each do |initializer| - load(initializer) - end + Dir["#{configuration.root_path}/config/initializers/**/*.rb"].sort.each do |initializer| + load(initializer) end end diff --git a/railties/test/initializer_test.rb b/railties/test/initializer_test.rb index 07303a5..4dbfe12 100644 --- a/railties/test/initializer_test.rb +++ b/railties/test/initializer_test.rb @@ -17,6 +17,17 @@ class ConfigurationMock < Rails::Configuration end end +class InitializersFolderTest < Test::Unit::TestCase + def test_should_load_initializers_folder + @initializer = Rails::Initializer.new(mock('Configuration', :root_path => "example")) + @initializer.stubs(:gems_dependencies_loaded).returns(false) + Dir.expects(:[]).with("example/config/initializers/**/*.rb").returns(['example_initializer.rb']) + @initializer.expects(:load).with("example_initializer.rb").returns(true) + + @initializer.load_application_initializers + end +end + class Initializer_load_environment_Test < Test::Unit::TestCase def test_load_environment_with_constant @@ -43,7 +54,6 @@ uses_mocha 'Initializer after_initialize' do assert_nil $test_after_initialize_block1 assert_nil $test_after_initialize_block2 - Rails::Initializer.any_instance.expects(:gems_dependencies_loaded).returns(true) Rails::Initializer.run(:after_initialize, config) end @@ -73,7 +83,6 @@ uses_mocha 'Initializer after_initialize' do end assert_nil $test_after_initialize_block1 - Rails::Initializer.any_instance.expects(:gems_dependencies_loaded).returns(true) Rails::Initializer.run(:after_initialize, config) end -- 1.5.5.1