Rubyのバージョンが進むにつれて、標準ライブラリがGemとして切り出されていますが、中にはdefault gemとなっているものがあります。ただ、「標準提供のライブラリと同じものをBundlerからもインストールできる」という状況で、いろいろ疑問が出てきました。
疑問点
その1 動作について
default gemとBundlerの兼ね合いですが、
Gemfile
に当該Gemを書かなかった場合→default gemが有効化されて、require
で参照できるGemfile
に当該Gemを書いた場合→明示されたgemがインストールされ、default gemは無関係となる
という理解で間違いないでしょうか?
その2 両者の選択について
バージョンや依存性、Gemfile
に書いた場合はインストールが必要といった条件はありますが、それ以外の面で「このような場合はdefault gemを選んだほうがいい」あるいは「こんな状況ではGemfile
からインストールする必要がある」など、考慮すべき条件はありますでしょうか?
プロジェクトの前提条件
- BundlerでGemを管理している
- Rubyバージョンなど、動かす環境のバリエーションはプロジェクト内で管理できる(特定少数のみ)
- Ruby >= 2.6
- Bundler は1系列、2系列両方について考慮する
調べてみたこと
bundler.ioのサイトに「default gem」でGoogle検索をかけてみたり、特に指定せず「bundler default gem」でGoogle検索をしてみましたが、特別な情報はヒットしませんでした。
Ruby標準ライブラリのGem化についてのサイトであるstdgems.orgも確認しましたが、default gemについて掘り下げてある感じではなかったです。
あなたの回答
tips
プレビュー