From 5c41cb77d9af28fe6495d5c4047483ce3ceadfe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 23 Mar 2010 23:50:24 +0100 Subject: Ensure lib/rails/initializers/*.rb also works for gems. --- railties/lib/rails/engine.rb | 7 ++++++ railties/lib/rails/engine/configuration.rb | 36 ++++++++++++++++-------------- railties/lib/rails/plugin.rb | 19 +++++----------- 3 files changed, 32 insertions(+), 30 deletions(-) (limited to 'railties/lib/rails') diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 85b4ff8470..987573ea03 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -109,6 +109,13 @@ module Rails config.generators.templates.unshift(*paths.lib.templates.to_a) end + initializer :load_lib_initializers do |app| + paths.lib.rails.initializers.to_a.sort.each do |initializer| + config = app.config + eval(File.read(initializer), binding, initializer) + end + end + initializer :load_application_initializers do paths.config.initializers.to_a.sort.each do |initializer| load(initializer) diff --git a/railties/lib/rails/engine/configuration.rb b/railties/lib/rails/engine/configuration.rb index b8f1f1009c..1996b2fb90 100644 --- a/railties/lib/rails/engine/configuration.rb +++ b/railties/lib/rails/engine/configuration.rb @@ -14,23 +14,25 @@ module Rails def paths @paths ||= begin paths = Rails::Paths::Root.new(@root) - paths.app "app", :eager_load => true, :glob => "*" - paths.app.controllers "app/controllers", :eager_load => true - paths.app.helpers "app/helpers", :eager_load => true - paths.app.models "app/models", :eager_load => true - paths.app.mailers "app/mailers", :eager_load => true - paths.app.metals "app/metal", :eager_load => true - paths.app.views "app/views", :eager_load => true - paths.lib "lib", :load_path => true - paths.lib.tasks "lib/tasks", :glob => "**/*.rake" - paths.lib.templates "lib/templates" - paths.config "config" - paths.config.initializers "config/initializers", :glob => "**/*.rb" - paths.config.locales "config/locales", :glob => "*.{rb,yml}" - paths.config.routes "config/routes.rb" - paths.public "public" - paths.public.javascripts "public/javascripts" - paths.public.stylesheets "public/stylesheets" + paths.app "app", :eager_load => true, :glob => "*" + paths.app.controllers "app/controllers", :eager_load => true + paths.app.helpers "app/helpers", :eager_load => true + paths.app.models "app/models", :eager_load => true + paths.app.mailers "app/mailers", :eager_load => true + paths.app.metals "app/metal", :eager_load => true + paths.app.views "app/views", :eager_load => true + paths.lib "lib", :load_path => true + paths.lib.rails "lib/rails", :glob => "**/*.rake" + paths.lib.rails.initializers "lib/rails/initializers", :glob => "**/*.rb" + paths.lib.tasks "lib/tasks", :glob => "**/*.rake" + paths.lib.templates "lib/templates" + paths.config "config" + paths.config.initializers "config/initializers", :glob => "**/*.rb" + paths.config.locales "config/locales", :glob => "*.{rb,yml}" + paths.config.routes "config/routes.rb" + paths.public "public" + paths.public.javascripts "public/javascripts" + paths.public.stylesheets "public/stylesheets" paths end end diff --git a/railties/lib/rails/plugin.rb b/railties/lib/rails/plugin.rb index 5d6144959d..a08c5b9143 100644 --- a/railties/lib/rails/plugin.rb +++ b/railties/lib/rails/plugin.rb @@ -47,20 +47,13 @@ module Rails end initializer :load_init_rb, :before => :load_application_initializers do |app| - initializers = Dir["#{root}/lib/rails/initializers/*.rb"] + lib_initializers = paths.lib.rails.initializers.to_a + files = %w(rails/init.rb init.rb).map { |path| File.expand_path(path, root) } - if initializers.any? - initializers.each do |initializer| - config = app.config - eval(File.read(initializer), binding, initializer) - end - else - files = %w(rails/init.rb init.rb).map { |path| File.expand_path path, root } - if initrb = files.find { |path| File.file? path } - ActiveSupport::Deprecation.warn "init.rb is deprecated: #{initrb}. Use lib/rails/initializers/#{name}.rb" - config = app.config - eval(File.read(initrb), binding, initrb) - end + if lib_initializers.empty? && initrb = files.find { |path| File.file?(path) } + ActiveSupport::Deprecation.warn "init.rb is deprecated: #{initrb}. Use lib/rails/initializers/#{name}.rb" + config = app.config + eval(File.read(initrb), binding, initrb) end end -- cgit v1.2.3