条件gem依赖

jsh*_*hen 8 ruby rubygems jruby

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

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

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

Joe*_*ger 3

唔,

我相信人们可以编写多个依赖项,因为我注意到 gems 似乎可以做到这一点。但我建议你不要这样做。无论您在此处插入的代码多么简单,当您考虑到用户将加载一个 gem,而该 gem 依赖于另一个 gem,而另一个 gem 又依赖于另一个 gem,即使一段代码或另一段代码的逻辑中存在一个小故障,也可能会导致整个问题的发生。依赖性训练是一场噩梦。

所以,我会把你的杂碎保留原样。此外,我建议您有一个用户也可以下载的 tarball。我必须手动提取 gems 内部的代码,其配置代码不允许我安装它们。