我正在编写一个可以与Sinatra和Rails一起使用的gem,但是,根据开发人员使用gem的框架,gem依赖性是不同的。
如果它是rails应用程序,我们需要'sass-rails'和'coffee-rails' 如果它是一个sinatra应用程序,我们需要'sass'和'coffee-script'
理想情况下,bundler会根据加载此gem的框架安装必要的gem,但我似乎无法弄清楚如何有条件地指定依赖项。
我们非常感谢任何建议。
答案 0 :(得分:3)
我建议你不要这样做。这将是黑客和不可靠的。
然而你能做的就是分而治之!构建一个与框架无关的gem的通用版本,只处理逻辑,我们称之为yourgem-core
,然后你可以基于第一个构建另外两个gems,称为yourgem-rails
和{{1} }。
更好,只有yourgems-sinatra
中的逻辑和逻辑测试,只有yourgem-core
中的rails集成测试,yourgem-rails
中只有sinatra集成测试
答案 1 :(得分:0)
您可以在bundler中使用:group
选项。