如何向
rubygems添加可选依赖项,因为它不支持它?
用例:
>我有一个库,它依赖于Backports,Extlib,Facets或ActiveSupport.在过去,我只是没有添加任何这种依赖,因为人们可以选择(阅读:它可以很好地与他们使用的任何东西),但人们抱怨很多关于图书馆没有开箱即用,或者他们会相信它取决于ActiveSupport(在某些情况下,对某些人来说是不行的).所以目前它依赖于Backports,因为它是最小的.虽然这意味着如果他们安装我的库,人们会安装Backports,即使他们可能不会在运行时使用它.
>我想依赖于不同的宝石取决于环境(即MRI上的Johnson / Rubinius,JRuby上的TheRubyRhino,MacRuby上的Lyndon).
我的一个方法是劫持extconf.rb.我可以在那里进行系统检查.但是,这感觉不对.而且,如果这是唯一的方法,我该怎么做呢?如何触发从那里安装额外的宝石?系统’宝石安装…’?
解决方法
您是否尝试过为未满足的依赖项提供信息性错误消息以清除这些误解?使用zombie-chaser,我不会让gosu成为依赖,但如果人们尝试使用没有gosu的图形版本,我告诉他们他们需要安装gosu.