代码之家  ›  专栏  ›  技术社区  ›  jhwist

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

  •  0
  • jhwist  · 技术社区  · 14 年前

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

    如何找到的安装路径 somegem 在系统中(不必求助于 system(gem ...) . 有问题的宝石带有一些图标,我想在我的脚本中引用它们。

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

    然而, c.execute 立即在stdout上输出结果。如何在变量中捕获该变量以进行进一步处理? res = c.execute

    1 回复  |  直到 14 年前
        1
  •  0
  •   J-_-L    14 年前

    你有不同的方法来实现这一点:

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

    你也可以改变你的加载路径:

    $:.grep /somegem/