У меня есть задача Rake, которую я упростил ниже. Я использую Ruby 1.9 для Windows.
Возможно, вы хотели бы угадать результат вызова задачи Rake "list_all_levels" ниже? Это должно быть:
"Hello level 1"
"Hello level 2"
"Hello level 3"
Но по неизвестным мне причинам он печатает только "Hello level 1", а затем останавливается.
То есть он всегда вызывает только первую задачу. Если я изменил первую строку, чтобы передать аргумент "42", он напечатает "Привет, уровень 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