Есть ли способ узнать, какие гемы и плагины загружаются во время выполнения для процесса Rails?

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


person Chirag Patel    schedule 30.04.2010    source источник


Ответы (3)


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

Gem.loaded_specs.keys

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

person jdeseno    schedule 01.05.2010
comment
Я думаю, что @sreid имеет важный момент в своем ответе ниже, если я правильно понимаю, что происходит. Количество драгоценных камней на пути загрузки не обязательно равно количеству драгоценных камней, загруженных в память. Например, если определенные группы исключены из Bundler.require, не будут ли они отображаться в Gem.loaded_specs? - person Toby Murray; 30.09.2016

С версиями:

Gem.loaded_specs.values.map {|x| "#{x.name} #{x.version}"}
person dmd    schedule 11.05.2011

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

Однако изначально вы спрашивали о драгоценных камнях, загруженных в память, и -required-in-ruby">этот ответ может быть более полезным.

person sreid    schedule 06.04.2012
comment
Нет, в других ответах правильно указаны только необходимые драгоценные камни. Я тестировал это с рубином 2.3. Но +1 за ваш ответ, потому что $LOADED_FEATURES тоже весьма полезен. - person akostadinov; 27.02.2017