Como passar argumentos para um comando Rake

Osaka Prefecture, Japan Photo by Lukas on Unsplash

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! 😄

Referencias: