Como passar argumentos para um comando Rake
Há muitas maneiras de passar um argumento para um comando Rake, algumas delas são abordadas neste blog post.
Na minha humilde opinião, a maneira mais elegante de fazer isso é usar a primeira maneira descrita no post, o Rake Way:
task :soma, [:numero1, :numero2] do |_, args|
puts args[:numero1].to_i + args[:numero2].to_i
end
E, no seu terminal…
$ rake soma[1,2]
# => 3
Ok! Nada mais o que fazer aqui! Uhul!
Um bloco de tarefas Rake normalmente é assim:
task alguma_tarefa: :environment do
# Coisas incríveis aqui...
end
O símbolo :environment
está dizendo para a sua tarefa Rake carregar todo o seu ambiente Rails. Então, sem isso você não pode acessar seus modelos, por exemplo.
Para usar argumentos de uma maneira elegante e carregar seu ambiente Rails em sua tarefa Rake, você pode escrever seu método de tarefa da seguinte forma:
task :soma, [:numero1, :numero2] => :environment do |_, args|
puts args[:numero1].to_i + args[:numero2].to_i
end
E esta é a saída:
$ rake soma[1,2]
# => 3
Obrigado! 😄