2010-11-12 4 views
0

Je dois obtenir le chemin d'installation d'un ruby ​​gem donné et je ne trouve aucune information sur la façon de le faire. Compte tenu:.Accéder aux informations sur rubygem depuis le script ruby ​​

#!/usr/bin/env ruby 
require 'rubygems' 
require 'somegem' 

Comment puis-je savoir où le chemin d'installation de somegem est sur le système (sans avoir recours à system(gem ...) La perle en question est livré avec des icônes que je veux faire référence dans mon script

.

Merci à Chris J'ai maintenant assemblé ce qui suit:.

require 'rubygems/Commands/contents_command' 
c = Gem::Commands::ContentsCommand.new 
c.options[:args] = 'somegem' 
c.execute 

Cependant, c.execute sorties immédiatement le résultat sur stdout Comment puis-je attraper que dans une variable pour un traitement ultérieur? 210 ne fonctionne pas.

Répondre

0

Vous avez différentes façons d'y parvenir:

Gem.source_index.find_name('somegem').last.full_gem_path 

Vous pouvez aussi simplement grep votre chemin de charge:

$:.grep /somegem/ 
+0

Merci, la méthode Gem.source_index est exactement ce que je avais besoin. – jhwist

Questions connexes