Why is Rake not able to invoke multiple tasks consecutively?

Posted by PandaWood on Stack Overflow See other posts from Stack Overflow or by PandaWood
Published on 2010-03-28T09:30:15Z Indexed on 2010/03/28 9:33 UTC
Read the original article Hit count: 185

Filed under:
|
|

I have a Rake task which I have simplified below. I'm using Ruby 1.9 on Windows.

Perhaps you would like to guess the outcome of calling the Rake task "list_all_levels" below? It should be:

"Hello level 1"
"Hello level 2"
"Hello level 3"

But for reasons unknown to me, it prints only "Hello level 1" and then stops.

That is, it always invokes only the first task. If I change the first line to pass the arg "42", it would print "Hello level 42" and then stop.

I'm wondering why does it not invoke the task 3 times and print all 3 lines? And is there any way to get it to work how I would expect?

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

© Stack Overflow or respective owner

Related posts about rake

Related posts about ruby