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

时间:2012-07-15 02:47:19

标签: ruby-on-rails ruby ruby-on-rails-3 class namespaces

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

ANamespaceName::AnotherNamespaceName::AClassName.is_namespaced?
#=> true
ANamespaceName::AClassName.is_namespaced?
#=> true
AClassName.is_namespaced?
#=> false

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

1 个答案:

答案 0 :(得分:6)

在“How do you find the namespace/module name programatically in Ruby on Rails?”工作时,您可以使用类名中::的存在来测试是否存在关联的模块。

def self.is_namespaced?
    self.name.include? "::"
end