1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
module Zeitwerk::Registry
class Autoloads # :nodoc:
#: () -> void
def initialize
@autoloads = {} #: Hash[String, Zeitwerk::Loader]
end
#: (String, Zeitwerk::Loader) -> Zeitwerk::Loader
def register(abspath, loader)
@autoloads[abspath] = loader
end
#: (String) -> Zeitwerk::Loader?
def registered?(path)
@autoloads[path]
end
#: (String) -> Zeitwerk::Loader?
def unregister(abspath)
@autoloads.delete(abspath)
end
#: (Zeitwerk::Loader) -> void
def unregister_loader(loader)
@autoloads.delete_if { _2 == loader }
end
#: () -> bool
def empty? # for tests
@autoloads.empty?
end
#: () -> void
def clear # for tests
@autoloads.clear
end
end
end
|