1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/railties/lib/rails/autoloaders.rb

50 lines
1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
require "active_support/dependencies/zeitwerk_integration"
require "zeitwerk"
module Rails
module Autoloaders # :nodoc:
class << self
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
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
end
end
def each
if zeitwerk_enabled?
yield main
yield once
end
end
2019-02-21 04:26:36 -05:00
def logger=(logger)
each { |loader| loader.logger = logger }
2019-02-21 04:26:36 -05:00
end
2019-08-13 12:14:50 -04:00
def log!
each(&:log!)
end
def zeitwerk_enabled?
true
end
end
end
end