相当于与ruby facet的constantize

时间:2012-02-27 09:51:11

标签: ruby facets

我们正在将ruby facets用于新项目,我需要等效的'constantize'方法。 我知道我可以要求ActiveSupport,但我想知道,Factes提供的东西是什么,或者我需要ActiveSupport。

1 个答案:

答案 0 :(得分:2)

这不会回答“Facets提供的东西”是你问题的一部分,但它肯定会回答“或者我需要ActiveSupport”。它还向您展示了该方法的实际实现方式,这非常简单

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

修改:对于它的价值,Facets采用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