Project

General

Profile

Actions

Bug #6078

closed

The name of a module nested in an anonymous module depends on how it was created

Added by brixen (Brian Shirai) about 12 years ago. Updated over 11 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin10.8.0]
Backport:
[ruby-core:42865]

Description

If a module is nested under an anonymous module, the nested modules name will depend on how the module is created. See below:

$ irb
1.9.3p125 :001 > m = Module.new
=> #Module:0x000001009e1398
1.9.3p125 :002 > n = Module.new
=> #Module:0x000001009e1ca8
1.9.3p125 :003 > m::N = n
=> #Module:0x000001009e1ca8
1.9.3p125 :004 > m.name
=> nil
1.9.3p125 :005 > n.name
=> nil
1.9.3p125 :006 > m.constants
=> [:N]
1.9.3p125 :007 > module m::O
1.9.3p125 :008?> end
=> nil
1.9.3p125 :009 > m.constants
=> [:N, :O]
1.9.3p125 :010 > m::N.name
=> nil
1.9.3p125 :011 > m::O.name
=> "#Module:0x000001009e1398::O"
1.9.3p125 :012 > m.const_get(:N).name
=> nil
1.9.3p125 :013 > m.const_get(:O).name
=> "#Module:0x000001009e1398::O"
1.9.3p125 :014 > M = m
=> M
1.9.3p125 :015 > m::N.name
=> "M::N"
1.9.3p125 :016 > m::O.name
=> "#Module:0x000001009e1398::O"

Thanks,
Brian

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0