Skip to content

Commit 5346dfd

Browse files
committed
Move the default autoloaders inflector to railties
1 parent abc43f0 commit 5346dfd

File tree

6 files changed

+50
-60
lines changed

6 files changed

+50
-60
lines changed

activesupport/lib/active_support/dependencies/zeitwerk_integration.rb

Lines changed: 0 additions & 24 deletions
This file was deleted.

railties/lib/rails/autoloaders.rb

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,42 @@
11
# frozen_string_literal: true
22

33
require "zeitwerk"
4-
require "active_support/dependencies/zeitwerk_integration"
5-
6-
module Rails
7-
module Autoloaders # :nodoc:
8-
class << self
9-
include Enumerable
10-
11-
def main
12-
@main ||= Zeitwerk::Loader.new.tap do |loader|
13-
loader.tag = "rails.main"
14-
loader.inflector = ActiveSupport::Dependencies::ZeitwerkIntegration::Inflector
15-
end
16-
end
174

18-
def once
19-
@once ||= Zeitwerk::Loader.new.tap do |loader|
20-
loader.tag = "rails.once"
21-
loader.inflector = ActiveSupport::Dependencies::ZeitwerkIntegration::Inflector
22-
end
23-
end
5+
module Rails::Autoloaders # :nodoc:
6+
require_relative "autoloaders/inflector"
247

25-
def each
26-
yield main
27-
yield once
28-
end
8+
class << self
9+
include Enumerable
2910

30-
def logger=(logger)
31-
each { |loader| loader.logger = logger }
11+
def main
12+
@main ||= Zeitwerk::Loader.new.tap do |loader|
13+
loader.tag = "rails.main"
14+
loader.inflector = Inflector
3215
end
16+
end
3317

34-
def log!
35-
each(&:log!)
18+
def once
19+
@once ||= Zeitwerk::Loader.new.tap do |loader|
20+
loader.tag = "rails.once"
21+
loader.inflector = Inflector
3622
end
23+
end
3724

38-
def zeitwerk_enabled?
39-
true
40-
end
25+
def each
26+
yield main
27+
yield once
28+
end
29+
30+
def logger=(logger)
31+
each { |loader| loader.logger = logger }
32+
end
33+
34+
def log!
35+
each(&:log!)
36+
end
37+
38+
def zeitwerk_enabled?
39+
true
4140
end
4241
end
4342
end
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# frozen_string_literal: true
2+
3+
require "active_support/inflector"
4+
5+
module Rails::Autoloaders::Inflector # :nodoc:
6+
# Concurrent::Map is not needed. This is a private class, and overrides
7+
# must be defined while the application boots.
8+
@overrides = {}
9+
10+
def self.camelize(basename, _abspath)
11+
@overrides[basename] || basename.camelize
12+
end
13+
14+
def self.inflect(overrides)
15+
@overrides.merge!(overrides)
16+
end
17+
end

railties/test/application/configuration_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,8 +1259,8 @@ def index
12591259
assert_instance_of Zeitwerk::Loader, Rails.autoloaders.once
12601260
assert_equal "rails.once", Rails.autoloaders.once.tag
12611261
assert_equal [Rails.autoloaders.main, Rails.autoloaders.once], Rails.autoloaders.to_a
1262-
assert_equal ActiveSupport::Dependencies::ZeitwerkIntegration::Inflector, Rails.autoloaders.main.inflector
1263-
assert_equal ActiveSupport::Dependencies::ZeitwerkIntegration::Inflector, Rails.autoloaders.once.inflector
1262+
assert_equal Rails::Autoloaders::Inflector, Rails.autoloaders.main.inflector
1263+
assert_equal Rails::Autoloaders::Inflector, Rails.autoloaders.once.inflector
12641264
end
12651265

12661266
test "config.action_view.cache_template_loading with cache_classes default" do

activesupport/test/zeitwerk_inflector_test.rb renamed to railties/test/application/zeitwerk_inflector_test.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
# frozen_string_literal: true
22

3-
require_relative "abstract_unit"
4-
require "active_support/dependencies/zeitwerk_integration"
3+
require "abstract_unit"
54

65
class ZeitwerkInflectorTest < ActiveSupport::TestCase
7-
INFLECTOR = ActiveSupport::Dependencies::ZeitwerkIntegration::Inflector
6+
INFLECTOR = Rails::Autoloaders::Inflector
87

98
def reset_overrides
109
INFLECTOR.instance_variable_get(:@overrides).clear

railties/test/application/zeitwerk_integration_test.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
require "set"
44
require "isolation/abstract_unit"
5-
require "active_support/dependencies/zeitwerk_integration"
65

76
class ZeitwerkIntegrationTest < ActiveSupport::TestCase
87
include ActiveSupport::Testing::Isolation

0 commit comments

Comments
 (0)