そのgemを使うアプリケーションはgemのコードはどう読み込むか(ざっくり)
active_storageで説明する (https://github.com/rails/rails/tree/master/activestorage)
1, まず lib/active_storage.rb
を読む
2, そこでrequireされているものを読む
3, そこで autoload
されているやつは必要になったら読む
autoloadとは(ActiveSupport::Autoload)
- gemを読んでいる時に
autoload :Attached
みたいにautoload
メソッドにぶつかる - そのmoduleが必要になった時に読み込みをしてくれる
- Module.autoloadの拡張
- パスを渡さなくても、ファイル名で判断してくれる