如何添加条件Gemspec依赖项

时间:2017-01-17 00:16:43

标签: ruby rubygems

我制作了一个Gem,可选择使用Sentry或Airbrake进行记录,具体取决于ENV变量。我在我的Gemspec中有这些,但我只需要一个或另一个:

spec.add_runtime_dependency "sentry-raven"
spec.add_runtime_dependency "airbrake"

有没有办法只根据ENV变量包含最终用户需要的那个?

2 个答案:

答案 0 :(得分:1)

您可能最好不要依赖这两个依赖项并添加到自述文件中,用户需要将依赖项添加到自己的Gemfile。我已经看到一些宝石检查以查看定义的内容,如果他们找不到任何内容则会引发错误,并允许用户在其应用程序中配置要使用的工具。

答案 1 :(得分:0)

不,这是不可能的,原因很简单,Gemspec是在您的计算机上执行的,而不是用户的计算机上。执行 build Gem,而不是安装它。

RubyGems没有复杂的依赖系统,例如dpkg / APT有:宝石要么取决于另一个宝石,要么它不依赖。

相关问题