読者です 読者をやめる 読者になる 読者になる

It's raining cats and dogs.

無駄なことなんてないはず

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してるのか。とはいえ、明確にそういうロジックだというドキュメントとかを見つけることが出来なかったので、バージョンが変わると、このロジックも変更されちゃうかもしれないよねってことで、読込み順に依存した作りにならないようにしようってことになったんだけど、コレ以外にそれっぽいロジックは思いつかないので、きっとバージョンが上がっても違うロジックにはならないだろうという話もした。