从外部ruby安装获取gem版本

时间:2015-04-30 23:20:04

标签: ruby gem

我有两个独立的Ruby安装(一个用于Chef,一个用于Sensu)。在Chef安装中,我想获得一个安装在Sensu ruby​​中的所有gem版本的列表。我知道两个安装在运行时的绝对路径。

我之前使用Gem::Specification::find_all_by_name效果非常好,这是我正在寻找的那种方法,但它似乎只适用于当前正在执行的ruby ,并且似乎没有任何关于可重用性的概念。

一种方法是将gem listgrep一起使用并解析输出,但我真的不需要解决问题,我更喜欢红宝石解决方案。我也可以自己检查文件系统并重新创建Gem::Specification的逻辑,但这并不比炮轰好得多。

有没有办法在不重复解析逻辑的情况下将等效输出提供给Gem::Specification

1 个答案:

答案 0 :(得分:0)

Gem::Specification有一个名为dirs的(全局)属性,允许您指定Gem::Specification在搜索规范时将使用的路径数组。

请注意,它所期望的路径必须是"规范"的父文件夹,因此例如/opt/embedded/product/lib/specifications将不起作用,但/opt/embedded/product/lib 工作