Trabalhando com o Rake para facilitar a vida.

Bruno Batista
automação com batista
3 min readNov 20, 2018

O que é Rake o Batista?

O Rake é um gerenciador de tarefas e dependências, são especificadas na sintaxe padrão do Ruby simples assim.

O Rake possui os seguintes recursos:

  • Os usuários podem especificar tarefas com pré-requisitos.
  • O Rake suporta padrões de regras para sintetizar tarefas implícitas.
  • FileLists flexíveis que agem como matrizes, mas sabem como manipular nomes de arquivos e caminhos.
  • Uma biblioteca de tarefas pré-empacotadas para facilitar a criação de arquivos de criação.
  • Suporta execução paralela de tarefas.

Agora vamos a prática.

1 Passo

Instalando a gem rake:

gem install rake

ou ao invés disso adicione a gem no seu Gemfile e de bundle install:

2 Passo

Crie um arquivo chamado “Rakefile” dentro da sua pasta raiz:

Dentro do Rakefile adicione os seguintes Requires:

Caso use um projeto com Cucumber:

Caso use um projeto com Rspec:

Você já teve que rodar comandos enormes no terminal varias vezes para rodar um projeto em Cucumber ou Rspec e acha isso desgastante com o rake ele vai facilitar a sua vida, porque com ele consigo adicionar tarefas e rodar com um simples comando veja um exemplo abaixo:

Em um projeto Cucumber pra rodar umas determinadas tags eu teria que adicionar o seguinte comando no terminal

cucumber -t @primeira_tag @segunda _tag @terceira_tag

E em um projeto Rspec você quer rodar uma determinada spec:

rspec spec/cadastrar_usuario_spec.rb

Ficar rodando isso toda hora e muito chato? Então vamos otimizar esses dois comando com o rake!

Para criar uma tarefa com o rake e simples veja o exemplo abaixo:

Exemplo com Rspec:

Exemplo com Cucumber:

Mas Batista o que são esses comandos, vou explicar:

desc — É onde você vai descrever o que está sendo feito no metodo task.

task — É o bloco onde executaremos as tarefas.

:cadastro / :tag_unicas — É o nome que colocamos do metódo para podermos executar as tarefas(Obs: O nome pode ser o que vc quiser).

sh — É um comando para pode rodar comandos no terminal.

Agora como faço para rodar os exemplos acima?

Exemplo com cucumber:

Rake tag_unicas

Exemplo do rspec:

Rake cadastro

Pronto projeto rodando com menos comandos.

Assim você consegue diminuir a quantidade de digitos para rodar apenas um comando.

Mas uma dúvida Batista é possível passar parametros nas tarefas?Sim veja o exemplos abaixo:

Assim estou passando uma variável ambiente onde no comando do rake posso dizer qual seu ambiente, para rodar no terminal seria esse comando:

Rake fast’[testes]’

Com esse comando estarei rodando em um ambiente de testes.

Última duvida Batista e possível rodar vários comandos de uma vez?Sim veja o exemplo abaixo:

Assim ele vai executar primeiro o cd testes depois irá executar o bundle exec cucumber.

Viu como e simples :)

Referências:

--

--