私は基本的に、この質問の解決策を rake タスクに変換しようとしています:どうすれば rake タスクのソース ファイルを見つけることができますか?
たとえば、次のように入力します。
rake meta:where[test]
そして、テスト タスクが定義されているパスを取得します。ここに私が持っているものがありますが、関連するコメントを作成できるように、不要なものがいくつかあります。
Rake::TaskManager.record_task_metadata=true
namespace :meta do
desc "meta:where[taskname] - where is taskname defined?"
task :where, [:taskname] do |t, args|
tsk = Rake.application.tasks.each.find {|t| t.name == args.taskname}
puts tsk
tsk.locations.each {|x| puts x}
end
end
したがって、 puts tsk は実際に 'test' を出力します。これは、(私が思うに!) ここでタスクを正しく見つけていることを意味します。同じコードを使用して Rails コンソールからパスを出力するのは問題ありません (上記の SO 投稿のように)。それは次のように言います:
/Users/me/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.11/lib/rails/test_unit/testing.rake:49:in `<top (required)>'
印刷する場所を取得する方法はありますか?