Необязательные зависимости Rubygems - PullRequest
8 голосов
/ 08 июня 2010

Как добавить необязательные зависимости в rubygems, поскольку они не поддерживают это?

Примеры использования:

  • У меня есть библиотека, которая зависит от Backports, Extlib,Грани или ActiveSupport.В прошлом я просто не добавлял ни одной из этих зависимостей, так как люди могли выбирать (читай: это будет хорошо играть с тем, что они используют), но люди много жаловались на то, что библиотека не работает из коробки, или они поверили быэто зависело от ActiveSupport (который в некоторых случаях бесполезен для некоторых людей).Так что на данный момент это зависит от Backports, так как он самый минимальный.Хотя это означает, что люди установят Backports, если они установят мою библиотеку, даже если они могут не использовать ее во время выполнения.
  • Я хочу зависеть от разных драгоценных камней в зависимости от среды (например, Джонсон в MRI / Rubinius, TheRubyRhinoJRuby, Линдон на MacRuby).

Один из подходов, о котором я думаю, это хай-джек extconf.rb.Я мог бы сделать системные проверки там.Тем не менее, это чувствует себя неправильно.Более того, если это единственный путь, как мне это сделать?Как мне запустить установку дополнительных драгоценных камней оттуда?system 'gem install ...'

Ответы [ 2 ]

4 голосов
/ 08 июня 2010

Вы пытались дать информативные сообщения об ошибках для неудовлетворенных зависимостей, чтобы устранить эти заблуждения?С zombie-chaser я не делаю gosu зависимостью, но если люди пытаются использовать ее графическую версию без gosu, я сообщаю им, что им нужно установить gosu.

2 голосов
/ 23 августа 2011

Я знаю пару драгоценных камней, которые используют подход "угон extconf.rb":

  • perftools.rb имеет зависимость, если она на 1,9, но не требует этой зависимости от 1,8.
  • ruby-debug-ide зависит от ruby-debug-base на 1.8, ruby-debug-base19 на 1.9.

Оба используют Gem::DependencyInstaller#install для установки, что, вероятно, предпочтительнее system 'gem install ...'.

См. Также запрос функции rubygems: укажите зависимости для версии ruby ​​.

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