Plugin Patterns for Rails 2 6

Publicado por Carlos Brando em 29 de Fevereiro de 2008

pp-cover.png

O novo livro do PeepCode é sobre a construção de plugins. Este é um assunto que qualquer desenvolvedor Rails precisa saber. Faz parte da cultura do Ruby e do Rails o DRY (não se repetir) e para conseguir isto nada melhor que plugins.

Eu já tenho o livro e com certeza vale a pena, como quase tudo no PeepCode. Ele ensina desde como criar um plugin do tipo acts_as até o uso do pai das gambiarras: o método alias_method_chain.

Dica Rápida: Abusando do growlnotify… 1

Publicado por Carlos Brando em 29 de Fevereiro de 2008

picture-1.png

Uma dica rápida para quem usa Mac e tem o growlnotify instalado. Eu falei dele ontem.

Suponhamos que você tenha de executar algum comando no terminal que pode demorar um pouco para terminar, e que você deseja ser notificado quando acabar. Muito simples:

meu_comando_demorado && growlnotify -s -H localhost -m "Terminou"

Quando a execução do comando terminar, você receberá um alerta.

Se sentindo inferior?

Publicado por Carlos Brando em 28 de Fevereiro de 2008

1417381021_38b833b1d3.jpg

“Se você acha que é muito pequeno para fazer a diferença, tente dormir com um mosquito em um quarto fechado.”

Signal vs. Noise

Autotest com Growl no Leopard 4

Publicado por Carlos Brando em 28 de Fevereiro de 2008

Para quem não sabe o Growl é um sistema de notificações via janelas flutuantes que se integra com os principais software para Mac, como o Skype, Transmission, Adium e até mesmo ao ZenTest (Autotest).

Antes de migrar meu Mac para o Leopard eu gostava muito de usar o Autotest com o Growl, mas depois da migração ele não funcionou mais.

Faz alguns dias que eu resolvi tentar novamente e descobri como colocar a integração entre o Autotest e o Growl para funcionar no Leopard. Vamos ao passo a passo:

A primeira coisa a fazer é baixar o Growl e instalar. Depois entre no terminal e execute:

/Volumes/Growl\ 1.1.2/Extras/growlnotify/install.sh

Esta linha de comando vai instalar o growlnotify na pasta /usr/local/bin.

Agora crie o arquivo ~/.autotest e abra-o no seu editor favorito (TextMate?), preencha o arquivo com o seguinte código:

# ~.autotest

require 'autotest/redgreen'
require 'autotest/growl'

module Autotest::Growl

  def self.growl title, msg, img="/Applications/Mail.app/Contents/Resources/Caution.tiff", pri=0
    title += " in #{Dir.pwd}"
    msg += " at #{Time.now.strftime("%I:%M %p")}"
    system "growlnotify -n autotest --image #{img} -p #{pri} -m #{msg.inspect} #{title}"
  end

  Autotest.add_hook :run do  |at|
     growl "autotest running", "Started"
   end

   Autotest.add_hook :red do |at|
     img = "/Users/carlosbrando/.autotest_images/fail.png"
     growl "Tests Failed", "#{at.files_to_test.size} tests failed", img, 2
   end

   Autotest.add_hook :green do |at|
     img = "/Users/carlosbrando/.autotest_images/pass.png"
     growl "Tests Passed", "Tests passed", img, -2 if at.tainted
   end

   Autotest.add_hook :all_good do |at|
     img = "/Users/carlosbrando/.autotest_images/fail.png"
     growl "Tests Passed", "All tests passed", img, -2 if at.tainted
   end

end

Lembre-se de alterar o nome do usuário para o seu nome, né…

Agora crie uma pasta chamada .autotest_images e jogue as duas imagens abaixo dentro dela.

pass.pngfail.png

Agora vamos instalar o ZenTest:

sudo gem install ZenTest

Pronto! Agora quando você rodar o autotest na sua aplicação Rails, será alertado de erros via Growl. Para rodar o Autotest, basta entrar na pasta onde está o seu projeto e executar o comando autotest.

Muito bom!

P.S.: Outra dica legal (talvez até melhor que a acima) é dar uma olhada neste gem que o Nando Vieira criou.

Rails Podcast Brasil - Episódio 7 24

Publicado por Carlos Brando em 28 de Fevereiro de 2008

untitled-1.png

O sétimo episódio do Rails Podcast Brasil está no ar. Parece que estamos conseguindo manter um certo grau de regularidade. O correto seria o podcast sair toda quarta-feira, mas nas últimas duas semanas isto não deu muito certo e acabamos gravando para a quinta-feira mesmo, mas toda semana você tem tido o podcast para ouvir sem falta.

O episodio desta semana trata de temas como 37signals, deploy, Autotest e fecha com uma boas discussão sobre Crunch Mode Paradox.

Como sempre você pode pegar o episódio clicando aqui.

Neste episódio: