获取调用rake任务的链

时间:2015-10-14 03:04:03

标签: ruby rake

假设我有一系列rake任务

taskA  --(calls)-->  taskB  --(calls)-->  taskC

有没有办法,在taskC的中间获取调用rake任务的列表?即已被调用以完成此任务的rake个任务链?

caller在此实例中返回一个不太有用的堆栈跟踪。

谢谢!

1 个答案:

答案 0 :(得分:1)

我不知道是否有原生解决方案,但这就是我要做的事情:

  • 创建名为" task_chain.json"
  • 的文件
  • 在每个任务的开头,将任务的名称附加到文件中的Hash中:

    #getting the list
    task_list = JSON.parse(File.open("task_chain.json"))
    
    #updating the list
    task_list << "my_new_task_name"
    
    #writing the list
    File.open("task_chain.json", "w"){ |file|
      file.write(JSON.pretty_generate(task_list))
    }
    
  • 然后,您只需访问此文件即可了解您的任务链:task_list = JSON.parse(File.open("task_chain.json"))

您可能希望将其转换为方法,而不是反复重复相同的代码。并且不要忘记在链的第一个任务之前清空文件。