我应该选择OS平台的gem依赖吗?

时间:2010-12-02 22:35:03

标签: ruby rubygems platform

我正在创建一个gem,它将使用rbappscript gem来获得Mac OS X上的其他功能。

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

2 个答案:

答案 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