2012-02-27 56 views
0

我们正在使用红宝石刻面作为新项目,我需要'constantize'方法的等价物。 我知道我可以要求ActiveSupport,但我想知道,是Factes提供的还是我需要ActiveSupport的东西。等价的红宝石刻面

回答

2

这不会回答“Facets提供的东西”是你问题的一部分,但它肯定回答了“或者我需要ActiveSupport”。这也说明了如何实际上是方法的实现,这是非常简单的

class String 
    def constantize 
    self.split("::").inject(Module) {|acc, val| acc.const_get(val)} 
    end 
end 

编辑:对于什么是值得的,刻面有一个constant方法,请参阅http://rubyworks.github.com/rubyfaux/?doc=http://rubyworks.github.com/facets/docs/facets-2.9.3/core.json#api-module-Kernel/api-method-Kernel-h-constant