Tengo una tarea de Rake que he simplificado a continuación. Estoy usando Ruby 1.9 en Windows.¿Por qué Rake no puede invocar múltiples tareas consecutivamente?
Quizás le gustaría adivinar el resultado de llamar a la tarea de Rake "list_all_levels" a continuación? Debe ser:
"Hello level 1"
"Hello level 2"
"Hello level 3"
Pero por razones desconocidas para mí, se imprime sólo "Hola nivel 1" y luego se detiene.
Es decir, siempre invoca solo la primera tarea. Si cambio la primera línea para pasar el arg "42", se imprimirá "Hola nivel 42" y luego se detendrá.
Me pregunto por qué no invocar la tarea 3 veces e imprimir las 3 líneas? ¿Y hay alguna manera de hacer que funcione como yo esperaría?
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
Esto realmente me salvó la vida, gracias! – kizzx2
Tenga cuidado con si lo cambia a 'execute' @PandaWood ya que no son exactamente iguales => [rake execute vs invoke] (http://chrisroos.co.uk/blog/2007-12-06-ruby-rake -invoke-vs-execute) – Ron
Esto me parece muy contrario a la intuición. ¿Alguna idea de por qué lo hicieron así? – marcovtwout