Ruby: самый простой способ получить полное имя константы всех констант в объекте (класс или модуль) - PullRequest
1 голос
/ 26 мая 2011

У меня есть следующая структура:

module SomeMod::SubMod
  module Mod1; end
  module Mod2; end
end

Я хочу получить все константы SubMod, но я хочу получить полную ссылку на константу (т.е. SomeMod::SubMod::Mod1). В настоящее время я делаю это:

SomeMod::SubMod.constants.map{ |constant| SomeMod::SubMod.const_get constant }

Может кто-нибудь улучшить это? Можно ли удалить дубликат ссылки на SomeMod::SubMod?

1 Ответ

2 голосов
/ 26 мая 2011
SomeMod::SubMod.module_eval{ constants.map{|c| const_get c} }

Хотя на самом деле это не намного короче.

...