Rubygems: как добавить платформо-зависимую зависимость? - PullRequest
32 голосов
/ 04 января 2011

У меня рубиновый камень , который имеет разные зависимости для каждой ОС.Я должен явно записать их все:

В 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 Ответ

20 голосов
/ 20 апреля 2012

Правильный способ сделать это изложен здесь .Поскольку gemspec оценивается во время пакета, вы должны сделать это в собственном расширении.Не волнуйтесь, это не так страшно, так как это все еще просто код Ruby (без компиляции C или чего-либо еще).

В настоящее время мы используем этот подход для некоторых клиентских инструментов для OpenShift (исходный код) ,Тогда в вашем gemspec / Rakefile вместо добавления зависимостей вы добавите расширение.Обратите внимание, что файл должен иметь имя ext/mkrf_conf.rb, чтобы это работало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...