Условные зависимости гемов - PullRequest
8 голосов
/ 27 января 2009

Можно ли условно установить зависимость от гема во время установки? Вот моя ситуация, которая, надеюсь, прояснит вопрос.

Есть драгоценный камень, который я поддерживаю, который зависит от камня json. Тем не менее, я часто использую jruby с портом json, который называется json-jruby. Чтобы обойти это, я должен построить два отдельных гема для каждой зависимости. Я хотел бы построить один гем, который либо говорит, что это зависит от json ИЛИ json-jruby, либо проверяет во время установки и использует правильную зависимость.

У кого-нибудь есть хорошее решение для этого?

Ответы [ 2 ]

3 голосов
/ 15 декабря 2009

Оформить урок здесь: http://wiki.github.com/rdp/ruby%5Ftutorials%5Fcore/gem

показывает, как установить разные версии зависимостей в зависимости от того, какую версию ruby ​​использует установщик.

(короткий ответ - это не так просто, как должно быть)

3 голосов
/ 27 января 2009

Хмм,

Я полагаю, что можно кодировать несколько зависимостей, потому что я заметил гемы, которые, казалось, делали это. Но я бы посоветовал не делать этого. Неважно, насколько прост код, который вы вставляете сюда, если учесть, что пользователь будет загружать один гем, который зависит от другого, который зависит от другого, даже небольшой сбой в логике того или иного куска кода может сделать весь поезд зависимости кошмар.

Итак, я бы оставил ваш клудж как есть. Кроме того, я бы посоветовал вам иметь архив, который пользователи также могут загрузить. Мне пришлось вручную извлечь код внутри гемов, код конфигурации которых не позволил бы мне их установить.

...