Reflect on nested namespace
I am trying to find the root class/module of a nested namespace.
Is this the most efficient way to find it? I don't like that I am converting to a string. It seems like there should be a more elegant solution.
开发者_如何转开发class Foo
class Bar
def parent
Object.const_get self.class.to_s.split(/::/).first
end
end
end
Foo::Bar.new.parent #=> Foo
There is Module.nesting
module Foo
module Bar
module Baz
p Module.nesting # => [Foo::Bar::Baz, Foo::Bar, Foo]
p Module.nesting.last # => Foo
end
end
end
精彩评论