diff options
author | Xavier Noria <fxn@hashref.com> | 2019-02-11 12:44:25 -0800 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2019-02-12 02:28:04 -0800 |
commit | 821d6c694cd305b7792b96d6ebc1c15ca235cf3e (patch) | |
tree | cb72d427f1744ad5a5c7dc901cb53db63c94a591 /railties/lib/rails/engine.rb | |
parent | ad3cbc2452e8150542ecb539925396361f12534c (diff) | |
download | rails-821d6c694cd305b7792b96d6ebc1c15ca235cf3e.tar.gz rails-821d6c694cd305b7792b96d6ebc1c15ca235cf3e.tar.bz2 rails-821d6c694cd305b7792b96d6ebc1c15ca235cf3e.zip |
Zeitwerk integration
Diffstat (limited to 'railties/lib/rails/engine.rb')
-rw-r--r-- | railties/lib/rails/engine.rb | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index d6c329b581..2485158a7b 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -472,12 +472,10 @@ module Rails # Eager load the application by loading all ruby # files inside eager_load paths. def eager_load! - 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 + if Rails.autoloader + eager_load_with_zeitwerk! + else + eager_load_with_dependencies! end end @@ -653,6 +651,22 @@ module Rails private + def eager_load_with_zeitwerk! + (config.eager_load_paths - Zeitwerk::Loader.all_dirs).each do |path| + Dir.glob("#{path}/**/*.rb").sort.each { |file| require file } + end + end + + def eager_load_with_dependencies! + 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 + end + def load_config_initializer(initializer) # :doc: ActiveSupport::Notifications.instrument("load_config_initializer.railties", initializer: initializer) do load(initializer) |