From 8db23109bf61052eef437629b6ef27a94e0b5bd9 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sun, 11 Jul 2021 22:40:23 +0200 Subject: [PATCH] Removes unnecessary calls to zeitwerk_enabled? In Rails 7 zeitwerk_enabled? returns true unconditionally. It exists to let 3rd party code supporting multiple Rails versions check, but we no longer need to use it internally. --- railties/lib/rails/application.rb | 6 +----- railties/lib/rails/autoloaders.rb | 22 ++++++++-------------- railties/lib/rails/engine.rb | 13 ++----------- railties/lib/rails/tasks/zeitwerk.rake | 6 ------ 4 files changed, 11 insertions(+), 36 deletions(-) diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index d50af76dcb..3020858721 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -513,11 +513,7 @@ module Rails # Eager loads the application code. def eager_load! - if Rails.autoloaders.zeitwerk_enabled? - Rails.autoloaders.each(&:eager_load) - else - super - end + Rails.autoloaders.each(&:eager_load) end protected diff --git a/railties/lib/rails/autoloaders.rb b/railties/lib/rails/autoloaders.rb index 773d2e58e0..c2e5e64aef 100644 --- a/railties/lib/rails/autoloaders.rb +++ b/railties/lib/rails/autoloaders.rb @@ -9,28 +9,22 @@ module Rails include Enumerable def main - if zeitwerk_enabled? - @main ||= Zeitwerk::Loader.new.tap do |loader| - loader.tag = "rails.main" - loader.inflector = ActiveSupport::Dependencies::ZeitwerkIntegration::Inflector - end + @main ||= Zeitwerk::Loader.new.tap do |loader| + loader.tag = "rails.main" + loader.inflector = ActiveSupport::Dependencies::ZeitwerkIntegration::Inflector end end def once - if zeitwerk_enabled? - @once ||= Zeitwerk::Loader.new.tap do |loader| - loader.tag = "rails.once" - loader.inflector = ActiveSupport::Dependencies::ZeitwerkIntegration::Inflector - end + @once ||= Zeitwerk::Loader.new.tap do |loader| + loader.tag = "rails.once" + loader.inflector = ActiveSupport::Dependencies::ZeitwerkIntegration::Inflector end end def each - if zeitwerk_enabled? - yield main - yield once - end + yield main + yield once end def logger=(logger) diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 5e3fe4de1d..b4c01731aa 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -482,17 +482,8 @@ module Rails end def eager_load! - # Already done by Zeitwerk::Loader.eager_load_all. We need this guard to - # easily provide a compatible API for both zeitwerk and classic modes. - return if Rails.autoloaders.zeitwerk_enabled? - - config.eager_load_paths.each do |load_path| - # Starts after load_path plus a slash, ends before ".rb". - relname_range = (load_path.to_s.length + 1)...-3 - Dir.glob("#{load_path}/**/*.rb").sort.each do |file| - require_dependency file[relname_range] - end - end + # Already done by Zeitwerk::Loader.eager_load_all. By now, we leave the + # method as a no-op for backwards compatibility. end def railties diff --git a/railties/lib/rails/tasks/zeitwerk.rake b/railties/lib/rails/tasks/zeitwerk.rake index 4b3e0ef95f..3ea6b52e93 100644 --- a/railties/lib/rails/tasks/zeitwerk.rake +++ b/railties/lib/rails/tasks/zeitwerk.rake @@ -1,11 +1,5 @@ # frozen_string_literal: true -ensure_zeitwerk_mode = ->() do - unless Rails.autoloaders.zeitwerk_enabled? - abort "Please, enable :zeitwerk mode in config/application.rb and try again." - end -end - eager_load = ->() do puts "Hold on, I am eager loading the application." Zeitwerk::Loader.eager_load_all