Rubygems:如何添加特定于平台的依赖项?

时间:2011-01-04 17:36:14

标签: ruby rubygems

a ruby gem对每个操作系统有不同的依赖关系。我必须明确地写下所有这些:

  

在Mac OS X上:

gem install livereload
     Linux上的

gem install rb-inotify livereload
     Windows上的

gem install eventmachine-win32 win32-changenotify win32-event livereload

我可以稍微调整一下gemspec,这样每个操作系统的安装说明看起来都是普通的gem install livereload吗?

1 个答案:

答案 0 :(得分:20)

here概述了执行此操作的正确方法。由于gemspec是在打包时评估的,因此您需要在本机扩展中进行评估。不要担心,它不是那么可怕,因为它仍然只是Ruby代码(不编译C或任何东西)。

我们目前正在为OpenShift (source)的一些客户端工具使用此方法。然后在你的gemspec / Rakefile中,你可以添加一个扩展名,而不是添加依赖项。请注意,该文件需要命名为ext/mkrf_conf.rb才能生效。