From: akr@... Date: 2016-06-13T09:54:02+00:00 Subject: [ruby-core:75990] [Ruby trunk Feature#12317] Name space of a module Issue #12317 has been updated by Akira Tanaka. I think lexical information is not obtainable in a method. ``` % ruby -e ' module A module B end end module C Z = 2 module A::B p Z end end p A::B.namespaces ' 2 ??? ``` Z is refarenceable in B in C but not B in C. Since B in C and B in A is same object, A::B.namespaces method cannot distinguish them. ---------------------------------------- Feature #12317: Name space of a module https://bugs.ruby-lang.org/issues/12317#change-59186 * Author: Tsuyoshi Sawada * Status: Open * Priority: Normal * Assignee: ---------------------------------------- I want a method to return the name space of a module, something like: ~~~ruby class A; module B; module C end end end A::B::C.namespace => [A, A::B, A::B::C] ~~~ There is `nesting` method that is similar, but that only returns the lexical nesting information. There are also some known hacks for this, converting the module to the string representation using `to_s` or `name`, and then splitting it by `::`. But that easily breaks if the module is anonymous, or is a singleton module. I would like a more robust, core method. -- https://bugs.ruby-lang.org/ Unsubscribe: