J'ai une tâche Rake que j'ai simplifiée ci-dessous. J'utilise Ruby 1.9 sous Windows.Pourquoi Rake ne peut pas invoquer plusieurs tâches de manière consécutive?
Vous voudriez peut-être deviner le résultat de l'appel de la tâche Rake "list_all_levels" ci-dessous? Il devrait être:
"Hello level 1"
"Hello level 2"
"Hello level 3"
Mais pour des raisons inconnues me, il imprime seulement « Bonjour niveau 1 », puis arrête.
En d'autres termes, il invoque toujours uniquement la première tâche. Si je change la première ligne pour passer l'argument "42", il affichera "Bonjour niveau 42" puis s'arrêtera.
Je me demande pourquoi pas invoquer la tâche 3 fois et imprimer les 3 lignes? Et y a-t-il un moyen de le faire fonctionner comme je m'y attendais?
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
Cela a vraiment sauvé ma journée, merci! – kizzx2
Soyez prudent si vous le changez en 'execute' @PandaWood car ils ne sont pas exactement les mêmes => [rake execute vs invoke] (http://chrisroos.co.uk/blog/2007-12-06-ruby-rake -invoke-vs-execute) – Ron
Cela semble très contre-intuitif pour moi. Des idées pourquoi ils l'ont fait comme ça? – marcovtwout