Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用rake命令在命名空间的每个任务上运行函数_Ruby On Rails_Ruby_Rake - Fatal编程技术网

Ruby on rails 如何使用rake命令在命名空间的每个任务上运行函数

Ruby on rails 如何使用rake命令在命名空间的每个任务上运行函数,ruby-on-rails,ruby,rake,Ruby On Rails,Ruby,Rake,我想运行一个简单的函数,在名称空间中的每个rake任务上输入\以\继续。 目前,我在每个任务的末尾添加了该函数 然而,这似乎是多余的,有没有办法运行这个函数,输入_to _continue,在名称空间“mytest”的每个任务结束时自动运行,通过执行一些元编程 namespace :mytest do task :foo do system "date" enter_to_continue end task :bar do system "ls"

我想运行一个简单的函数,在名称空间中的每个rake任务上输入\以\继续。 目前,我在每个任务的末尾添加了该函数

然而,这似乎是多余的,有没有办法运行这个函数,输入_to _continue,在名称空间“mytest”的每个任务结束时自动运行,通过执行一些元编程

namespace :mytest do
  task :foo do
    system "date"
    enter_to_continue
  end

  task :bar do 
    system "ls"
    enter_to_continue
  end

  # ...
  # Let's say 10 more tasks ends with enter_to_continue comes after 
  # ...
end

def enter_to_continue
  STDIN.gets.chomp
end
您可以尝试Rake::Task#enhance:

编辑: 您还可以在定义块内增强任务:

namespace :mytest do |ns|
  # 
  #...Task definitions...
  #
  ns.tasks.each{|tsk|
    tsk.enhance { puts "\treached method #{__method__}" }
  }
end
namespace :mytest do |ns|
  # 
  #...Task definitions...
  #
  ns.tasks.each{|tsk|
    tsk.enhance { puts "\treached method #{__method__}" }
  }
end