config/initializersの読込み順序
Railsではconfig/initializersというディレクトリに下においたrubyプログラムを起動時にまるっと読み込んでくれるんだけど、その読込み順について同僚と話をしてて、よくわかんなかったので調べてみた。
railsのバージョンは3.0.9
GEM_HOME/gems/railties-3.0.9/lib/rails/engine.rb の199行目あたりにそれっぽい記述があった
initializer :load_config_initializers do paths.config.initializers.to_a.sort.each do |initializer| load(initializer) end end
なるほど、ファイル名でソートしてloadしてるのか。とはいえ、明確にそういうロジックだというドキュメントとかを見つけることが出来なかったので、バージョンが変わると、このロジックも変更されちゃうかもしれないよねってことで、読込み順に依存した作りにならないようにしようってことになったんだけど、コレ以外にそれっぽいロジックは思いつかないので、きっとバージョンが上がっても違うロジックにはならないだろうという話もした。