class Zeitwerk::Cref
This private class encapsulates pairs (mod, cname).
Objects represent the constant ‘cname` in the class or module object `mod`, and have API to manage them. Examples:
cref.path cref.set(value) cref.get
The constant may or may not exist in ‘mod`.
Attributes
: Symbol
: Module
Public Class Methods
Source
# File lib/zeitwerk/cref.rb, line 28 def initialize(mod, cname) @mod = mod @cname = cname @path = nil end
The type of the first argument is Module because Class < Module, class objects are also valid.
: (Module, Symbol) -> void
Public Instance Methods
Source
# File lib/zeitwerk/cref.rb, line 46 def autoload(abspath) @mod.autoload(@cname, abspath) end
: (String) -> nil
Source
# File lib/zeitwerk/cref.rb, line 41 def autoload? @mod.autoload?(@cname, false) end
: () -> String?
Source
# File lib/zeitwerk/cref.rb, line 51 def defined? @mod.const_defined?(@cname, false) end
: () -> bool
Source
# File lib/zeitwerk/cref.rb, line 61 def get @mod.const_get(@cname, false) end
: () -> top ! NameError
Source
# File lib/zeitwerk/cref.rb, line 35 def path @path ||= Object == @mod ? @cname.name : "#{real_mod_name(@mod)}::#{@cname.name}".freeze end
: () -> String
Also aliased as: to_s
Source
# File lib/zeitwerk/cref.rb, line 66 def remove @mod.__send__(:remove_const, @cname) end
: () -> void ! NameError
Source
# File lib/zeitwerk/cref.rb, line 56 def set(value) @mod.const_set(@cname, value) end
: (top) -> top