Проверьте наличие драгоценных камней с помощью local: path перед развертыванием - PullRequest
2 голосов
/ 09 мая 2011

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

Немного контекста можетпомогите разобраться.

Когда я нахожусь в режиме разработки, я хочу иметь драгоценный камень в "локальном режиме".В моем Gemfile он настроен так: gem 'my_gem', '~> 0.9', :path => './path/to/my_gem'.

В производстве я хочу быть таким: gem 'my_gem', '~> 0.9', :git => 'git@git.example.com:my_gem.git'.

Я пыталсясоздайте сценарий оболочки (или функцию) для чтения Gemfile.lock и выйдите с ошибкой, если гем находится в «локальном режиме».

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

Любая помощь будет оценена.Спасибо

Ответы [ 2 ]

9 голосов
/ 09 мая 2011

Используйте

group :development do
  gem 'my_gem_for_development', '~> 0.9', :require => './path/to/my_gem/lib/my_gem.rb' , :path => './path/to/my_gem/lib'
end
group :production do
  gem 'my_gem', '~> 0.9', :git => 'git@git.example.com:my_gem.git'
end
0 голосов
/ 09 мая 2011

Это камень, который вы разрабатываете?Почему бы просто не написать гем, чтобы посмотреть на env рельсов и изменить настройки на основе этого.Тогда вы можете использовать одну каноническую версию драгоценного камня, и вам не придется беспокоиться о том, чтобы проверить, какую версию драгоценного камня вы используете.В противном случае решение bor1s будет работать нормально.

...