我正在创建一个gem,它将使用rbappscript
gem来获得Mac OS X上的其他功能。
强制其他平台的用户安装该依赖项并不是一个好主意,我甚至不确定它是否会安装。那么,是否可以根据平台自定义依赖哪些宝石,这不会产生问题吗?
答案 0 :(得分:4)
如果它是可选的,那么它不是依赖项。只是不要声明它。
在文档中添加一条注释,告知如果检测到rbappscript
,则可以使用其他功能。
然后,在您的代码中,您只需检查库的可用性。即使您的用户在Mac上运行,他也可以选择不出于任何特定原因加载此功能 - 例如,在多个平台上可预测的行为。
答案 1 :(得分:1)
您可以在声明依赖项的地方使用RUBY_PLATFORM常量
# only on OSX
if RUBY_PLATFORM =~ /darwin/i
gem 'rbappscript'
end
# Only JRUBY
if defined? JRUBY_VERSION
gem 'something_for_jruby'
end