module Zeitwerk::Loader::Helpers
Private Instance Methods
cdef?(parent, cname)
click to toggle source
@sig (Module, Symbol) -> bool
# File lib/zeitwerk/loader/helpers.rb, line 88 def cdef?(parent, cname) parent.const_defined?(cname, false) end
cget(parent, cname)
click to toggle source
@raise [NameError] @sig (Module, Symbol) -> Object
# File lib/zeitwerk/loader/helpers.rb, line 94 def cget(parent, cname) parent.const_get(cname, false) end
cpath(parent, cname)
click to toggle source
Symbol#name was introduced in Ruby 3.0. It returns always the same frozen object, so we may save a few string allocations.
# File lib/zeitwerk/loader/helpers.rb, line 78 def cpath(parent, cname) Object == parent ? cname.name : "#{real_mod_name(parent)}::#{cname.name}" end
dir?(path)
click to toggle source
@sig (String) -> bool
# File lib/zeitwerk/loader/helpers.rb, line 36 def dir?(path) File.directory?(path) end
log(message)
click to toggle source
@sig (String) -> void
# File lib/zeitwerk/loader/helpers.rb, line 9 def log(message) method_name = logger.respond_to?(:debug) ? :debug : :call logger.send(method_name, "Zeitwerk@#{tag}: #{message}") end
ls(dir) { |basename, freeze| ... }
click to toggle source
@sig (String) { (String, String) -> void } -> void
# File lib/zeitwerk/loader/helpers.rb, line 17 def ls(dir) Dir.each_child(dir) do |basename| next if hidden?(basename) abspath = File.join(dir, basename) next if ignored_paths.member?(abspath) # We freeze abspath because that saves allocations when passed later to # File methods. See #125. yield basename, abspath.freeze end end
ruby?(path)
click to toggle source
@sig (String) -> bool
# File lib/zeitwerk/loader/helpers.rb, line 31 def ruby?(path) path.end_with?(".rb") end
strict_autoload_path(parent, cname)
click to toggle source
# File lib/zeitwerk/loader/helpers.rb, line 65 def strict_autoload_path(parent, cname) parent.autoload?(cname) if cdef?(parent, cname) end