2015-07-30 1 views
1

У меня есть задача rake для создания заданного количества элементов в XML-файле. Если ничего не дано, я хочу иметь значение по умолчанию. К настоящему времени только 50 печатаются, но здесь я бы хотел иметь переменную сумму, как бы я ее вызвал из командной строки?Как я могу вызвать задачу rake с аргументами по умолчанию из строки commad?

namespace :utilites do 
    desc "generate xml" 
    task generate_xml: :environment do |t, args| 
    args.with_defaults(:length => 50) 
    p args[:length] 
    end 

end 

ответ

1

Если определить length в качестве параметра он работает правильно:

namespace :utilities do 
    desc "generate xml" 
    task :generate_xml, :length do |t, args| 
    args.with_defaults(:length => 50) 
    p args[:length] 
    end 
end 

Результат:

C:\Temp>rake utilities:generate_xml 
50 

C:\Temp>rake utilities:generate_xml[99] 
"99" 

Как вы видите, данный параметр является строкой! Если вам нужен номер, вы должны его преобразовать, прежде чем использовать его.


Я не знаю, что ваш :environment есть. Если это должно быть необходимым предварительным условием, вы можете использовать:

namespace :utilities do 
    task :environment do 
    puts "Run environment" 
    end 
    desc "generate xml" 
    task :generate_xml, [:length] => :environment do |t, args| 
    args.with_defaults(:length => 50) 
    p args[:length] 
    end 
end 
Смежные вопросы