- default gemとは、standard librariesとdefault gemsとbundled gemsの違い - esm アジャイル事業部 開発者ブログが詳しい
- default gemはrubyがビルドされるときに一緒にビルドされており、rubygems.orgで配布しているものと同じバージョンを指していてもコードは多少異なる可能性がある
- 例としてzlibライブラリをあげる
- 執筆時点の最新は2.1.1
- これは2021年の10月にリリースされている
- Ruby3.1は2021年の12月にリリースされている
- gemでインストールしたzlib 2.1.1とdefault gemとしてインストールされているzlib 2.1.1は2021年10月~12月に入ったコミットぶん差がある
- 例えばZlib::InProgressErrorという定数が2021年11月に入っている
- Ruby3.1で↓を実行するとエラーにならないが、Ruby3.0などでzlib 2.1.1を手動でいれて実行すると
uninitialized constant Zlib::InProgressError (NameError)
になる
require 'zlib'
Zlib::InProgressError