2010-04-30 2 views
24

Есть ли какая-либо команда в debugger или ruby-debug, чтобы получить список всех драгоценных камней и/или плагинов, загруженных в память для процесса Rails? Я понимаю, что загружаются только «require», но я хотел бы быстро увидеть, что загрузилось во время выполнения.Есть ли способ узнать, какие камни и плагины загружаются во время выполнения для процесса Rails?

ответ

33

Это должно заставить вас все загружены через RubyGems:

Gem.loaded_specs.keys 

Я не знаю универсального способа увидеть, какие рельсы плагинов загружены, вы можете посмотреть на источник Rails :: Initializer (предварительно 3.0) & выяснить, что делает ваша версия рельсов. Надеюсь, вы знаете, какие плагины должен загрузить & может подтвердить это с консоли при отладке.

+0

Я думаю, что @sreid имеет важное значение в его ответе ниже, если я понимаю, что происходит правильно. Количество драгоценных камней на пути загрузки не обязательно равно количеству драгоценных камней, загружаемых в память. Например, если определенные группы исключены из 'Bundler.require', не будут ли отображаться их' Gem.loaded_specs'? –

27

С версией:

Gem.loaded_specs.values.map {|x| "#{x.name} #{x.version}"} 
3

Я думаю, что вышеприведенные ответы, используя Gem.loaded_specs.keys показать драгоценные камни на «пути загрузки».

Однако изначально вы спросили о загруженных в память драгоценных камнях, и ответ this может быть более полезным.

+0

Нет, другие ответы правильно перечисляют только необходимые драгоценные камни. Я проверил это с ruby ​​2.3. Но +1 для вашего ответа, потому что '$ LOADED_FEATURES' тоже весьма полезен. – akostadinov