我需要获取给定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
不起作用。
答案 0 :(得分:0)
您有不同的方法来实现这一目标:
Gem.source_index.find_name('somegem').last.full_gem_path
你也可以只是抬起你的负载路径:
$:.grep /somegem/