Могу ли я заставить зависимости gem в gemfile?

Если есть два драгоценных камня, A и B. A1.0.0 зависит от B1.0.0.

В моем Gemfile:

gem 'A', '~> 1.0.0'

Затем запустите bundle. Он будет генерировать Gemfile.lock как:

A (1.0.0)
  B (1.0.0)

Но если я хочу заставить A использовать B1.0.1, какая лучшая практика? Более того, если B1.0.1 не является выпуском, а тегом github?

Ответ 1

Вам нужно явно указать B-камень в Gemfile для использования репозитория git или другой версии. Пока A 1.0.0 совместим с B 1.0.1, все будет в порядке. Если он совместим только с B 1.0.0, вам нужно будет создать свою собственную вилку драгоценного камня A и обновить gemspec для совместимости с B 1.0.1, а затем использовать этот репозиторий в качестве вашего драгоценного камня для A вместо рубигемов версия.

Вот пример Gemfile, который должен дать вам то, что вы хотите, если A 1.0.0 совместим с B 1.0.1.

gem 'B', :git => 'git://github.com/B/B.git', :tag => '1.0.1'
gem 'A', '~> 1.0.0'