2

我正在创建一个 gem,它将使用rbappscriptgem 在 Mac OS X 上实现附加功能。

强制其他平台的用户安装该依赖项不是一个好主意,我什至不确定它是否会安装。那么,是否可以根据平台自定义依赖哪些gem,这不会产生问题吗?

4

2 回答 2

4

如果它是可选的,则它不是依赖项。只是不要这样声明。

在您的文档中添加一条注释,通知如果rbappscript检测到,则可以使用其他功能。

然后,在您的代码中,您只需检查库的可用性。即使您的用户在 Mac 上运行,(s)他也可以出于任何给定原因选择不加载此功能 - 例如,在多个平台上的可预测行为。

于 2010-12-03T03:07:01.727 回答
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
于 2010-12-03T05:15:07.507 回答