从ruby脚本中访问有关rubygem的信息

时间:2010-11-12 13:36:22

标签: ruby rubygems

我需要获取给定ruby gem的安装路径,但无法找到有关如何执行此操作的任何信息。鉴于:

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

如何找出somegem的安装路径在系统上的位置(不使用system(gem ...)。有问题的宝石附带了一些我想在脚本中引用的图标。< / p>

感谢Chris,我现在收集了以下内容:

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

但是,c.execute会立即在stdout上输出结果。如何在变量中捕获它以进行进一步处理? res = c.execute不起作用。

1 个答案:

答案 0 :(得分:0)

您有不同的方法来实现这一目标:

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

你也可以只是抬起你的负载路径:

$:.grep /somegem/