условные выражения в Gemfile - PullRequest
9 голосов
/ 14 октября 2010

Наша команда использует разные базы данных друг для друга, и мы используем упаковщик, поэтому наш Gemfile содержит коннектор db создателя репозитория (mysql)

Я использую pg и из-за лени и страха что-то сломать, я не хочу использовать mysql, поэтому я просто добавляю гем "pg" в наш Gemfile.

Конечно, поскольку мы используем git, он всегда будет отображаться как измененный файл, и мы все используем Gemfile, поэтому мы не можем gitignore его или фиксировать с нашими изменениями.

Вопрос в том, как нам это сделать? Есть ли в bundler условие или мне просто нужно объявить, что я использую определенный гем где-то еще?

Ответы [ 2 ]

16 голосов
/ 14 октября 2010

Поскольку Gemfile, как и Rakefile, - это просто кусок Ruby, вы можете добавить условные выражения, если считаете, что это упростит вашу жизнь.Например:

if (Gem.available?('pg'))
  gem 'pg'
else
  gem 'mysql2'
end

Иногда вам приходится делать это для разных версий Ruby, так как 1.8 и 1.9 иногда требуют разные гемы.

1 голос
/ 14 октября 2010

Вы можете использовать группу. Иегуда Кац объяснил, как здесь (на примере pg gem) http://yehudakatz.com/2010/05/09/the-how-and-why-of-bundler-groups/

...