我有一个RakefileRake任务,我通常会从命令行调用:
rake blog:post Title
Run Code Online (Sandbox Code Playgroud)
我想编写一个多次调用Rake任务的Ruby脚本,但我看到的唯一解决方案是使用``(反引号)或system.
这样做的正确方法是什么?
我有一个Rake任务,我在下面简化了.我在Windows上使用Ruby 1.9.
也许您想猜测下面调用Rake任务"list_all_levels"的结果?它应该是:
"Hello level 1"
"Hello level 2"
"Hello level 3"
Run Code Online (Sandbox Code Playgroud)
但由于我不知道的原因,它只打印"Hello level 1"然后停止.
也就是说,它始终只调用第一个任务.如果我更改第一行以传递arg"42",它将打印"Hello level 42"然后停止.
我想知道为什么它不会调用任务3次并打印所有3行?有没有办法让它按照我的期望工作?
task :list_all_levels => [] do
Rake::Task[:list].invoke 1
Rake::Task[:list].invoke 2
Rake::Task[:list].invoke 3
end
task :list, [:level] => [] do |t, args|
puts "Hello level #{args.level}"
end
Run Code Online (Sandbox Code Playgroud)