@IvanN777

Что будет если Gem имеет отличную зависимость mysql? стоит ли ждать проблем?

Пишу гем.
Этому гему нужна бд.
Но у меня возник резонный вопрос, а что будет если версии мускула или постгреса пересекутся с приложением.
Что в этом случае делают?
  • Вопрос задан
  • 201 просмотр
Пригласить эксперта
Ответы на вопрос 1
@vsuhachev
Вы в gemspec указываете зависимость от других гемов с указанием желаемой версии. При установке вашего гема вместе с другими гемами bundler находит и ставит версию зависимости, удовлетворяющую всем запросам всех гемов и запросам из Gemfile.

Если такой версии не будет найдено то возникнет конфликт, о котором бандлер вам сообщит.

Например в геме 'your_gem' вы указали зависимость
spec.add_runtime_dependency 'pg', '>= 9.5'
а в гемфайле приложения
gem  'your_gem'
gem  'pg', '= 9.2' # Будет конфликт т.к. your_gem требует pg > 9.2
gem  'pg', '>= 9.2' # Конфликта нет, установится последняя версия >= 9.5

Про синтаксис зависимостей читайте тут: guides.rubygems.org/patterns
Так же нелишне ознакомиться с понятием семантического версионирования
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы