2019-02-17 03:11:53 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-02-14 18:12:57 -05:00
|
|
|
module Rails
|
|
|
|
module Autoloaders # :nodoc:
|
|
|
|
class << self
|
|
|
|
include Enumerable
|
|
|
|
|
|
|
|
def main
|
|
|
|
if zeitwerk_enabled?
|
|
|
|
@main ||= Zeitwerk::Loader.new.tap { |loader| loader.tag = "rails.main" }
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def once
|
|
|
|
if zeitwerk_enabled?
|
|
|
|
@once ||= Zeitwerk::Loader.new.tap { |loader| loader.tag = "rails.once" }
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def each
|
|
|
|
if zeitwerk_enabled?
|
|
|
|
yield main
|
|
|
|
yield once
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2019-02-21 04:26:36 -05:00
|
|
|
def logger=(logger)
|
2019-02-21 17:35:09 -05:00
|
|
|
each { |loader| loader.logger = logger }
|
2019-02-21 04:26:36 -05:00
|
|
|
end
|
|
|
|
|
2019-02-14 18:12:57 -05:00
|
|
|
def zeitwerk_enabled?
|
|
|
|
Rails.configuration.autoloader == :zeitwerk
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|