その理由:
- プロジェクトごとに、使用する gem とそのバージョンを管理できる
- Gemfile, Gemfile.lock をコミットしておくことで git clone && bundler install ですぐに必要な gem が整う
- 多くの gem は全プロジェクトで共通でよい
- 例:pry, awesome_print, digest, logger など
- バージョンアップを即適用するべきものも少なくない(opensslなど)
- 今後 Ruby の添付ライブラリの gem 化が促進されるので、そのようなケースはますます増える