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