diff options
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/activesupport.gemspec | 2 | ||||
-rw-r--r-- | activesupport/lib/active_support/dependencies/zeitwerk_integration.rb | 23 |
2 files changed, 21 insertions, 4 deletions
diff --git a/activesupport/activesupport.gemspec b/activesupport/activesupport.gemspec index 2fa0623a9c..c92691afaf 100644 --- a/activesupport/activesupport.gemspec +++ b/activesupport/activesupport.gemspec @@ -34,5 +34,5 @@ Gem::Specification.new do |s| s.add_dependency "tzinfo", "~> 1.1" s.add_dependency "minitest", "~> 5.1" s.add_dependency "concurrent-ruby", "~> 1.0", ">= 1.0.2" - s.add_dependency "zeitwerk", "~> 1.2" + s.add_dependency "zeitwerk", "~> 1.3", ">= 1.3.1" end diff --git a/activesupport/lib/active_support/dependencies/zeitwerk_integration.rb b/activesupport/lib/active_support/dependencies/zeitwerk_integration.rb index 23c237796e..ca4385b7c2 100644 --- a/activesupport/lib/active_support/dependencies/zeitwerk_integration.rb +++ b/activesupport/lib/active_support/dependencies/zeitwerk_integration.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require "active_support/core_ext/string/inflections" + module ActiveSupport module Dependencies module ZeitwerkIntegration # :nodoc: all @@ -11,11 +13,11 @@ module ActiveSupport end def constantize(cpath) - Inflector.constantize(cpath) + ActiveSupport::Inflector.constantize(cpath) end def safe_constantize(cpath) - Inflector.safe_constantize(cpath) + ActiveSupport::Inflector.safe_constantize(cpath) end def autoloaded_constants @@ -28,9 +30,19 @@ module ActiveSupport end def verbose=(verbose) - l = verbose ? (logger || Rails.logger).method(:debug) : nil + l = verbose ? logger || Rails.logger : nil Rails.autoloaders.each { |autoloader| autoloader.logger = l } end + + def unhook! + :no_op + end + end + + module Inflector + def self.camelize(basename, _abspath) + basename.camelize + end end class << self @@ -43,6 +55,10 @@ module ActiveSupport private def setup_autoloaders + Rails.autoloaders.each do |autoloader| + autoloader.inflector = Inflector + end + Dependencies.autoload_paths.each do |autoload_path| # Zeitwerk only accepts existing directories in `push_dir` to # prevent misconfigurations. @@ -69,6 +85,7 @@ module ActiveSupport end def decorate_dependencies + Dependencies.unhook! Dependencies.singleton_class.prepend(Decorations) Object.class_eval { alias_method :require_dependency, :require } end |