diff options
author | Xavier Noria <fxn@hashref.com> | 2019-02-21 02:47:46 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-21 02:47:46 -0800 |
commit | 67e20d1d4854d834e9e43e56486d37cd98983f0d (patch) | |
tree | 357851b8766d24f532713b2eab1430cc27c11561 /railties | |
parent | f8a798c8e60a9b288496b99b5e38e4f10d2f7c0e (diff) | |
parent | 39aaa0264aa1772cd1b3769a3c649d1d9bb11918 (diff) | |
download | rails-67e20d1d4854d834e9e43e56486d37cd98983f0d.tar.gz rails-67e20d1d4854d834e9e43e56486d37cd98983f0d.tar.bz2 rails-67e20d1d4854d834e9e43e56486d37cd98983f0d.zip |
Merge pull request #35349 from rails/autoloaders.logger=
Define Rails.autoloaders.logger=
Diffstat (limited to 'railties')
-rw-r--r-- | railties/lib/rails/autoloaders.rb | 5 | ||||
-rw-r--r-- | railties/test/application/zeitwerk_integration_test.rb | 23 |
2 files changed, 28 insertions, 0 deletions
diff --git a/railties/lib/rails/autoloaders.rb b/railties/lib/rails/autoloaders.rb index b03499cf81..4b41e1faf9 100644 --- a/railties/lib/rails/autoloaders.rb +++ b/railties/lib/rails/autoloaders.rb @@ -24,6 +24,11 @@ module Rails end end + def logger=(logger) + callable_or_nil = logger.respond_to?(:debug) ? logger.method(:debug) : logger + each { |loader| loader.logger = callable_or_nil } + end + def zeitwerk_enabled? Rails.configuration.autoloader == :zeitwerk end diff --git a/railties/test/application/zeitwerk_integration_test.rb b/railties/test/application/zeitwerk_integration_test.rb index bbb97e983a..8a8ca18ebf 100644 --- a/railties/test/application/zeitwerk_integration_test.rb +++ b/railties/test/application/zeitwerk_integration_test.rb @@ -206,4 +206,27 @@ class ZeitwerkIntegrationTest < ActiveSupport::TestCase assert_equal Module, Module.method(:const_missing).owner assert_equal :no_op, deps.unhook! end + + test "autoloaders.logger=" do + boot + + logger = ->(_msg) { } + Rails.autoloaders.logger = logger + + Rails.autoloaders.each do |autoloader| + assert_equal logger, autoloader.logger + end + + Rails.autoloaders.logger = Rails.logger + + Rails.autoloaders.each do |autoloader| + assert_equal Rails.logger.method(:debug), autoloader.logger + end + + Rails.autoloaders.logger = nil + + Rails.autoloaders.each do |autoloader| + assert_nil autoloader.logger + end + end end |