Existe-t-il une commande dans debugger
ou ruby-debug
pour obtenir une liste de tous les gemmes et/ou plugins chargés en mémoire pour un processus Rails? Je comprends seulement que les gemmes 'require
' sont chargées mais j'aimerais voir rapidement ce qui s'est chargé pendant l'exécution.Est-il possible de dire quels gemmes et plugins sont chargés à l'exécution pour un processus Rails?
Est-il possible de dire quels gemmes et plugins sont chargés à l'exécution pour un processus Rails?
Répondre
Cela devrait vous faire tout chargé par rubygems:
Gem.loaded_specs.keys
Je ne sais pas d'une manière universelle pour voir quels rails plugins sont chargés, vous pouvez regarder la source de Rails :: Initializer (pré 3.0) & Découvrez ce que fait votre version de rails. Espérons que vous savez quels plugins charger & pouvez le confirmer à partir de la console lors du débogage.
Avec les versions:
Gem.loaded_specs.values.map {|x| "#{x.name} #{x.version}"}
Je pense que les réponses ci-dessus en utilisant Gem.loaded_specs.keys
montrent les pierres précieuses sur le "chemin de charge".
Cependant, vous avez demandé à l'origine des gemmes chargées en mémoire, et la réponse this peut être plus utile.
Non, les autres réponses ne listent correctement que les gemmes requises. J'ai testé cela avec ruby 2.3. Mais +1 pour votre réponse car '$ LOADED_FEATURES' est plutôt utile aussi. – akostadinov
Je pense que @sreid a un point important dans sa réponse ci-dessous, si je comprends ce qui se passe correctement. Le nombre de gemmes sur le chemin de chargement n'est pas nécessairement égal au nombre de gemmes chargées en mémoire. Par exemple, si des groupes particuliers sont exclus dans un 'Bundler.require', Gem.loaded_specs ne les affichera-t-il pas? –