Если модуль определен с именем A
,
module A; end
a = A
, тогда его имя "A"
, поэтому вы можете назвать его как A
(по его имени):
a.name # => "A"
A # => A
Но если вы не определите A
:
self.class.send(:remove_const, :A)
, вы больше не сможете звонить A
:
A # >> NameError: uninitialized constant A
, но его имя останется "A"
:
a.name # => "A"
a # => A
Это, вероятно, то, что подразумевается под путаницей.