Нашел этот пример в этом сообщении в блоге , и синтаксис выглядит немного чище.
Например, если у вас была задача say_hello
, вы могли бывызвать его с любым количеством аргументов, например так:
$ rake say_hello Earth Mars Venus
Вот как это работает:
task :say_hello do
# ARGV contains the name of the rake task and all of the arguments.
# Remove/shift the first element, i.e. the task name.
ARGV.shift
# Use the arguments
puts 'Hello arguments:', ARGV
# By default, rake considers each 'argument' to be the name of an actual task.
# It will try to invoke each one as a task. By dynamically defining a dummy
# task for every argument, we can prevent an exception from being thrown
# when rake inevitably doesn't find a defined task with that name.
ARGV.each do |arg|
task arg.to_sym do ; end
end
end