У меня есть приложение Sinatra, которое требует другого драгоценного камня, который я разрабатываю локально. У меня возникают проблемы с настройкой Bundler для использования моего локального кода драгоценного камня во время разработки, но мой продаваемый код драгоценного камня в производстве.
В идеале я мог бы сделать что-то подобное, но Bundler не позволяет вам указывать один и тот же камень дважды:
# Doesn't work:
group :development do
gem 'awesome', :path => "~/code/awesome"
end
group :production do
gem 'awesome', :path => "vendor/gems/awesome-0.0.1"
end
Тем временем я прибегал к ручной продаже драгоценного камня и обновлению источника драгоценного камня в Gemfile каждый раз, когда я развертываю, что довольно сложно. Мой рабочий процесс такой:
- Во время разработки укажите на мой драгоценный камень (
gem 'awesome', :path => "~/code/awesome"
)
- Когда будете готовы к развертыванию, распакуйте gem в
vendor/gems
- Обновить Gemfile, чтобы он указывал на продаваемый гем (
gem 'awesome', :path => "vendor/gems/awesome-0.0.1"
)
- Выполнить
bundle install
(чтобы обновить Gemfile.lock)
- Код развертывания
- Вернуться к шагу 1.
Что за хлопоты! Я хотел бы сделать что-то более чистое, чем просто написание задач Rake для автоматизации моих текущих настроек.
Каков лучший рабочий процесс для этого сценария?