Module: Kernel
- Defined in:
- lib/zeitwerk/kernel.rb
Class Method Summary collapse
- .require(path) ⇒ Boolean
-
.zeitwerk_original_require ⇒ Object
We cannot decorate with prepend + super because Kernel has already been included in Object, and changes in ancestors don’t get propagated into already existing ancestor chains.
Class Method Details
.require(path) ⇒ Boolean
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/zeitwerk/kernel.rb', line 13 def require(path) if loader = Zeitwerk::Registry.loader_for(path) if path.end_with?(".rb") zeitwerk_original_require(path).tap do |required| loader.on_file_autoloaded(path) if required end else loader.on_dir_autoloaded(path) end else zeitwerk_original_require(path).tap do |required| if required realpath = $LOADED_FEATURES.last if loader = Zeitwerk::Registry.loader_for(realpath) loader.on_file_autoloaded(realpath) end end end end end |
.zeitwerk_original_require ⇒ Object
We cannot decorate with prepend + super because Kernel has already been included in Object, and changes in ancestors don’t get propagated into already existing ancestor chains.
9 |
# File 'lib/zeitwerk/kernel.rb', line 9 alias_method :zeitwerk_original_require, :require |