条件gem依赖

时间:2009-01-27 17:57:21

标签: ruby rubygems jruby

是否可以在安装时有条件地设置对gem的依赖?这是我的情况,希望澄清这个问题。

我维护的宝石取决于json gem。但是,我经常使用jruby,它有一个名为json-jruby的json gem的端口。要解决这个问题,我必须为每个依赖项构建两个单独的gem。我想构建一个gem,要么说它依赖于json或json-jruby,要么它在安装时检查并使用正确的依赖。

任何人都有一个很好的解决方案吗?

2 个答案:

答案 0 :(得分:3)

嗯,

我相信一个人可以编写多个依赖项,因为我注意到了这样做的宝石。但我建议你不要这样做。无论你在这里插入的代码有多简单,当你考虑用户将加载一个依赖于另一个依赖于另一个的宝石时,即使是一段代码或其他代码的逻辑中的小故障也可以使整个依赖训练是一场噩梦。

所以,我会按原样留下你的kludge。此外,我建议你有一个用户可以下载的tarball。我不得不手动提取gems中的代码,其配置代码不允许我安装它们。

答案 1 :(得分:3)

在这里查看一些有点教程:http://wiki.github.com/rdp/ruby%5Ftutorials%5Fcore/gem

它显示了如何安装不同版本的依赖项,具体取决于installee正在使用的ruby版本。

(简短的回答 - 它不是那么容易)