mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Load plugin initializers from lib/rails/initializers/*.rb
This commit is contained in:
@@ -47,13 +47,20 @@ module Rails
|
||||
end
|
||||
|
||||
initializer :load_init_rb, :before => :load_application_initializers do |app|
|
||||
files = %w(rails/init.rb init.rb).map { |path| File.expand_path path, root }
|
||||
if initrb = files.find { |path| File.file? path }
|
||||
if initrb == files.first
|
||||
ActiveSupport::Deprecation.warn "Use toplevel init.rb; rails/init.rb is deprecated: #{initrb}"
|
||||
initializers = Dir["#{root}/lib/rails/initializers/*.rb"]
|
||||
|
||||
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
|
||||
config = app.config
|
||||
eval(File.read(initrb), binding, initrb)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -94,6 +94,39 @@ module RailtiesTest
|
||||
assert rescued, "Expected boot rails to fail"
|
||||
end
|
||||
|
||||
test "loads lib/rails/initializers/foo.rb" do
|
||||
@plugin.write "lib/rails/initializers/foo.rb", <<-RUBY
|
||||
$loaded = true
|
||||
RUBY
|
||||
|
||||
boot_rails
|
||||
assert $loaded
|
||||
end
|
||||
|
||||
test "loads vendored rails/initializers/foo thats already in the $LOAD_PATH" do
|
||||
$: << "#{app_path}/vendor/foo/lib"
|
||||
|
||||
app_file "vendor/foo/lib/rails/initializers/foo.rb", <<-RUBY
|
||||
$loaded = true
|
||||
RUBY
|
||||
|
||||
boot_rails
|
||||
assert $loaded
|
||||
end
|
||||
|
||||
test "skips init.rb if initializer is present" do
|
||||
@plugin.write "lib/rails/initializers/foo.rb", <<-RUBY
|
||||
$loaded = true
|
||||
RUBY
|
||||
|
||||
@plugin.write "init.rb", <<-RUBY
|
||||
raise "b00m"
|
||||
RUBY
|
||||
|
||||
boot_rails
|
||||
assert $loaded
|
||||
end
|
||||
|
||||
test "loads deprecated rails/init.rb" do
|
||||
@plugin.write "rails/init.rb", <<-RUBY
|
||||
$loaded = true
|
||||
|
||||
Reference in New Issue
Block a user