如何检查类或模块是否已命名空间?

Bac*_*cko 3 ruby namespaces ruby-on-rails class ruby-on-rails-3

我正在使用Ruby on Rails 3.2.2,我想知道是否可以检查类或模块是否是命名空间.也就是说,我想运行类似下面的内容

ANamespaceName::AnotherNamespaceName::AClassName.is_namespaced?
#=> true
ANamespaceName::AClassName.is_namespaced?
#=> true
AClassName.is_namespaced?
#=> false
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,问题与声明/实现该is_namespaced?方法有关.

小智 6

使用" 如何在Ruby on Rails中以编程方式找到命名空间/模块名称? ",您可以使用::类名中的存在来测试是否存在关联的模块.

def self.is_namespaced?
    self.name.include? "::"
end
Run Code Online (Sandbox Code Playgroud)