Necessita de automação? Use Rake ou Sake!
Para quem não conheça o Rake é uma linguagem de domínio específico escrita em Ruby.
Neste artigo vou introduzir a rake e descrever algumas pistas para automatização de tarefas repetitivas que se fazem no dia a dia.
Teoria
A Rake foi desenvolvida por Jim Weirich e baseia-se em Ruby, o que quer dizer que temos acesso completo às capacidades da Ruby de dentro da Rake. A Rake não está limitada aquilo que conhece em ferramentas similares é muito mais poderosa e flexível (isto é aliás um sinal de perigo).
A Rake funciona à base de dependências. Quando se escreve um guião Rake iremos dizer-lhe que uma dada tarefa depende de outra e assim sucessivamente. Deste modo podemos construir uma receita completa para explicar como fazer as coisas e a respectiva ordem de execução.
Como a Rake é construída em Ruby podemos fazer o que quisermos nas suas tarefas:
- manipular ficheiros
- compilar os nossos programas
- limpar o nosso (do computador claro) sistema de ficheiros
- gerar esqueletos de aplicações
- e ainda muito mais
Primeira Tentativa: Adicionar uma tarefa e fazer com que seja executada por omissão
task :default => [:ola]
desc "Esta é a nossa primeira tarefa"
task :ola do
puts "Olá! Sou a primeira tarefa escrita por nós!"
end
desc "Execução de Teste"
task :test do
require 'rake/runtest'
Rake.run_tests 'tests/*.rb'
end
Na primeira linha dizemos ao rake que a nossa tarefa por omissão, a que é chamada quando usamos rake na linha de comando sem aditivos será a tarefa designada por ola. Pode ainda tentar chamar-se explicitamente essa tarefa usando o comando rake ola
Depois na linha seguinte descrevemos a tarefa que vamos executar. Esta descrição irá ser impressa quando usamos o comando rake -T
para ficarmos a saber quais as tarefas disponíveis no nosso Rakefile.
Finalmente definimos a nova tarefa ola usando a palavra chave task
. Aquilo que colocamos dentro da tarefa é código Ruby perfeitamente normal.
A Rake oferece algumas capacidades de manipulação de ficheiros, criação de gemas e coisas que tais. Deve ler a sua API para mais informação.
Usamos essas capacidades para a tarefa testes ao carregar a biblioteca distribuida com a Rake e chamando um desses métodos. Por exemplo estamos a carregar a biblioteca runtest e executar cada ficheiro de teste que se encontre na pasta de "tests".
Encadear tarefas
task :carregar_ficheiros do
# fazer o carregamento
end
task :ligacaossimbolicas => :carregar_ficheiros do
# criar ligações simbólicas do lado do servidor
end
task :instalar => :ligacaossimbolicas do
# instalar a última revisão do nosso projecto
end
Agora temos uma série de tarefas que podemos usar. Se escrevermos rake instalar
, essa tarefa irá chamar a tarefa ligacoessimbolicas que depende da tarefa carregar_ficheiros. Assim a Rake irá executar a tarefa carregar_ficheiros em primeiro lugar, depois a tarefa ligacoessimbolicas e depois instalar.
É assim que pode encadear tarefas e assegurar-se que todos os passos exigidos são executados antes de executar o que está a pedir ao Rake.
Conclusão
Se começar a usar Rake para automatizar as suas tarefas rapidamente compreenderá que é uma ferramenta poderosa e fácil de usar. Uma das coisas mais interessantes é que a Rake foi construída em Ruby e que Ruby pode correr em qualquer sistema operativo. Claro que saber Ruby irá ajudar a aprender realmente a usar a Rake e a escrever a suas próprias tarefas simples mesmo que seja s o um principiante em Ruby.
A Rake não é só para utilizadores de Ruby, pode ser usada para montar programas em C, limpar o sistema de ficheiros, instalações, administração das suas bases de dados, ...
Sem comentários:
Enviar um comentário