【发布时间】:2011-09-23 17:54:14
【问题描述】:
我目前有一个安装程序,它可以安装一组 ruby 脚本(即从主程序中进行的可选安装)。我编写了一个脚本,在安装后,它会扫描包含的 ruby 文件中的所有 require 语句,然后提取所有“必需”文件。例如,它会寻找
require 'curb'
require 'rest-client'
# require etc...
这是在每个文件中,然后将它们包含在一个列表中(删除重复项),所以我有一个看起来像这样的数组:
"curb", "rest-client", etc...
对于大多数宝石来说,它非常好,因为名称匹配,我只是做一个
gem install GEMNAME
但是,如果名称不匹配,我正在尝试通过查询 gem 服务器找出一种从 require 行中找出 gem 名称的方法。例如:
xml-simple 有 xmlsimple 的 require 语句,但 gem 是 xml-simple。经过大量搜索,我能找到的唯一“解决方案”是安装每个 gem 并检查文件是否包含在
gem specification GEMNAME
这远非最佳,实际上是一个非常糟糕的主意,我想知道是否有一种方法可以查询 rubygems 以查看 gem 中包含哪些文件。
【问题讨论】: