我已经编译在两个方面项目Rake文件,根据全局变量$build_type,它可以是:debug或:release(结果走在不同的目录):
task :build => [:some_other_tasks] do
end
Run Code Online (Sandbox Code Playgroud)
我希望创建一个任务,依次编译项目的两个配置,如下所示:
task :build_all do
[ :debug, :release ].each do |t|
$build_type = t
# call task :build with all the tasks it depends on (?)
end
end
Run Code Online (Sandbox Code Playgroud)
有没有办法将任务称为方法?或者我怎样才能达到类似的效果呢?
我正在为Rails编写一个自定义rake任务,有一点是程序总结了它将要做什么,然后询问用户它将要执行的操作是否正确.
puts "\n Is this what you want to happen? [Y/N]"
answer = gets.chomp
if answer == "Y"
# commits
else if answer == "N"
return false #(Aborts the rake task)
end
Run Code Online (Sandbox Code Playgroud)
但是,此代码会导致rake过早中止;
rake aborted!
No such file or directory - populate
Run Code Online (Sandbox Code Playgroud)
" populate "是rake任务的名称.
我认为在.gets方法中导致此错误的原因是什么.
我不知道.gets方法是如何显式工作的,但我猜它必须自动将用户输入发送回写入脚本的文件,并且由于某种原因它变得混乱并且它认为是rake的名称task是文件的名称.由于populate.rake不存在,我认为这就是抛出错误的原因.
但是,我不知道如何解决这个错误.rake是否为.gets提供了另一种方法?