Подтвердить что ты не робот

Rubygems: Как добавить зависимую от платформы зависимость?

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

В 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 для каждой ОС?

4b9b3361

Ответ 1

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

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