2009-07-12 2 views
2

Могу ли я попросить рубин или рубигемы использовать последний камень независимо от его источника?Использование новейшей версии gem независимо от источника

Как упоминалось в обновлении до this question, выясняется, что рубин использует более старый github gem (hmcgowan-roo 1.3.5) поверх нового рубинового рубина, который был установлен совсем недавно (roo 1.3.6).

Мое подозрение в том, что волшебный пикси (или рубин или рубигемы) выглядит под «h», прежде чем смотреть под «r».

Я могу заставить RubyForge один для использования, делая

gem "roo" 

, но это можно сказать рубин/RubyGems, что я счастлив использовать либо hmcgowan-Роо или сл, но я хочу, последняя версия?

ответ

1

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

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

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

0

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

RubyGems Manual - Chapter 4

+0

Как «драгоценный камень» в моем вопросе или с использованием некоторых дополнительных параметров? –

+0

Вы также можете установить нужную версию с помощью команды gem. Помимо этого, я не уверен, есть ли способ. Я ничего не вижу в руководстве. –

Смежные вопросы