複数Gemfileを使いたいときのDual Boot
Gemfile 内で切り替える
各環境の Gemfile を用意する
どちらも一長一短あるとしたうえで以下のパターンを紹介
Gemfileのsymlinkをつくる
Gemfile内で自身のファイル名を見て分岐させる
code:Gemfile
def next?
File.basename(__FILE__) == "Gemfile.next"
end
if next?
gem 'rails', '~> 6.0.0'
else
gem 'rails', '~> 5.2.3'
end
lock ファイルは Gemfile.next.lock になる
Gemfile だけで一元管理できる
DEPENDENCIES_NEXT環境変数が与えられたときだけGemfile_next.lockを生成したり使ったりする
code:Gemfile
gem "rails", "~> 5.2.0"
else
gem "rails", "~> 5.1.0"
end
事例