Как можно настроить Bundler / Gemfile для использования различных источников драгоценных камней во время разработки?

У меня есть приложение Sinatra, которое требует другого драгоценного камня, который я развиваю локально. У меня проблемы с настройкой Bundler использовать мой локальный код GEM во время разработки, но мой поставщик драгоценный код в производстве.

В идеале я мог бы сделать что-то вроде этого, но 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

в то же время, когда я прибегал вручную позаботиться о GEM и обновление источника драгоценного камня в драгоценных данных. Время я развернуто, что довольно хлопот. Мой рабочий процесс это:

  1. указывает на мой местный драгоценный камень во время развития ( GEM «AWESOME»,: PATH => «~ / код / ​​потрясающий» )
  2. При готовности к развертыванию, распаковать драгоценный камень Vendor / Gems
  3. Обновление DEMFile, чтобы указать на поставьте драгоценный камень ( GEM «AWESOME»,: PATH => «Поставщик / Gems / Awesome-0.0.1» )
  4. RUN Установка пакета (для обновления GEMFile.lock)
  5. Код развертывания
  6. Вернуться к шагу 1.

Что такое хлопот! Я хотел бы сделать что-то более чистое, чем просто написание задач для граблей, чтобы автоматизировать мою текущую настройку.

Какой лучший рабочий процесс для этого сценария?

14
задан Kyle Fox 7 September 2011 в 17:07
поделиться