1
我基本上是試圖解決這個問題轉換成耙子任務:How do I find the source file for a rake task?如何從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
所以,把嘖實際輸出「測試」,這意味着(我想!)我在正確的位置定位的任務。使用相同的代碼從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)>'
任何想法如何我可以得到的位置(s)打印?
神祕的是,鏈接問題中的代碼被改變了,現在它適用於我的耙子任務... –