Эквивалент constantize с рубиновой гранью - PullRequest
0 голосов
/ 27 февраля 2012

Мы используем грани ruby ​​для нового проекта, и мне нужен эквивалент метода constantize. Я знаю, что для этого мне может потребоваться ActiveSupport, но мне было интересно, это то, что обеспечивает Factes, или мне нужен ActiveSupport.

1 Ответ

2 голосов
/ 27 февраля 2012

Это не ответит на вопрос «это то, что предоставляет 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

...