rakeが実行されるまでを調べる
/usr/bin/rake
- require_gem 'rake'したときに/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/binが$LOAD_PATHの先頭に追加される
- load 'rake'を実行
↓
/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/bin/rake
- require 'rake'
- Rake.application.runはRake::Application.runを実行
↓
/usr/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb
Rake::Application.runから呼び出すメソッドは
- init
- load_rakefile
- top_level
init
load_rakefile
- raw_load_rakefile
- have_rakefile
- rakeファイルを延々と親ディレクトリをたどって探す
- rakeファイルの形式は'rakefile', 'Rakefile', 'rakefile.rb', 'Rakefile.rb'のどれか
- add_import
- rakelibオプションで渡されたディレクトリにある*.rbファイルをインスタンス変数@pending_importsに詰める
- Rake::TaskManager#load_imports
- @pending_importsに詰めてあるファイル名からタスクを抽出(Rake::TaskManager#lookup)
- タスクを実行?(Rake::Task#invoke)
- なんかよくわからん。バテた。。
top_level
- ここまでたどりつけなかった
- トップレベルのタスクってなんのこと?