Грабли "вариадное" задание - PullRequest
3 голосов
/ 16 ноября 2011

Мне нужно определить задачу rake, которая может обрабатывать любое количество аргументов, почти как функции с переменным числом в C ++.Но я не смог найти способ определить его в DSL rake.

Как мне создать задачу rake, которая может обрабатывать любое количество аргументов?Будет полезен пример.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Rake начиная с версии 0.8 не может справиться с этим, как упомянуто в документации (он просто игнорирует любые дополнительные аргументы).

Однако, если вы можете переключиться на использование Thor , вы можете получить это поведение. Для демонстрации создайте Thorfile с таким содержанием:

class VariableArguments < Thor
  desc 'multiple [ARGS]', "Task with multiple arguments"
  def multiple(*args)
    p args
  end
end

и затем назовите это так:

$ thor variable_arguments:multiple one two three four five six

Это печатает следующее:

["one", "two", "three", "four", "five", "six"]

(протестировано с использованием Thor 0.14.6)

0 голосов
/ 17 ноября 2011

Опираясь на пост здесь: Как передать аргументы командной строки в задачу rake Я бы подумал, что arg1 будет просто массивом, который вы можете сделать массивом.Затем из командной строки они будут передавать список в кавычках, разделенных запятыми.

...