Использование новейшей версии гема независимо от источника - PullRequest
2 голосов
/ 12 июля 2009

Могу ли я попросить ruby ​​или rubygems использовать последний драгоценный камень независимо от его источника?

Как уже упоминалось в обновлении до этого вопроса , выясняется, что ruby ​​использует более старый гем github (hmcgowan-roo 1.3.5) поверх более нового гема rubyforge, который был установлен совсем недавно (roo 1.3 +0,6).

Я подозреваю, что магический пикси (либо рубин, либо рубинжем) выглядит под "h", а затем под "r".

Я могу заставить использовать рубиновую кузницу, выполнив

gem "roo"

но можно ли сказать ruby ​​/ rubygems, что я счастлив использовать hmcgowan-roo или roo, но мне нужна последняя версия?

Ответы [ 2 ]

1 голос
/ 27 сентября 2009

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

В общем, вы хотите, чтобы ваши вызовы к методу gem находились в другом месте, в отличие от ваших требований (это позволяет загружать файлы с отложенной загрузкой), поэтому вполне разумно иметь часто обновляемый файл, который просто выполняет куча обращений к методу gem, чтобы убедиться, что вы получили правильную версию всего. Кроме того, в производственной среде вы обычно не хотите «давать мне последнюю версию», поскольку последняя версия могла изменить свой API или переименовать некоторые методы или аналогичные, и если вы не проверяли его, вы не будете знать, если это сломается. Вы всегда должны быть уверены, что используете конкретную известную версию каждой сторонней библиотеки.

Как автор библиотеки, я обычно сообщаю людям об одной или двух версиях, если я собираюсь внести изменения, которые нарушат более старое использование API. Тем не менее, иногда люди не обновляются на некоторое время, и попадают в ловушку этого. К счастью, большинство людей осторожны и ставят вещи. Не будьте парнем, который обновляет библиотеки непосредственно в производстве, не проверяя их. : -)

0 голосов
/ 13 июля 2009

Вы можете использовать метод gem, чтобы указать, какой из них вы хотите.

Руководство по RubyGems - Глава 4

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