Como alguns já viram no último podcast eu costumo defender muito os projetos e sistemas que gosto. O GitHub pode não ter a importancia que o RubyForge “teve” para a comunidade Ruby no mundo, mas acredito seriamente no valor deste projeto e aposto minhas fichas nele.
O fato dele ser um projeto comercial só aumenta ainda mais minha confiança, porque ele é um projeto opensource-like com a diferença de ser mantido não somente pela boa vontade dos desenvolvedores, mas sim por dinheiro, e isto é muito bom porque estimula a “boa vontade”, se é que vocês me entendem.
Além disso o GitHub evoluiu os projetos opensource além do que o RubyForge conseguiu, tornou muito mais fácil contribuir para um projeto, criar forks, entrar em contato com desenvolvedores, e tudo de uma forma que estimula o social.
Outro projeto que muito me agrada é o Shoulda, e vou explicar o motivo disto. O Sholda diferente do RSpec, por exemplo, foi feito para o Rails (embora você possa usá-lo em outros tipos de projetos isto não faz muito sentido) e isto dá ao projeto uma liberdade que não pode ser aplicada ao RSPec que precisa ser mais genérico.
Claro que existem iniciativas semelhantes aplicadas ao RSpec, mas nenhuma é tão madura.
Outra vantagem é que o Shoulda não precisa alterar nada em seu projeto Rails, já que ele trabalha em cima do Test::Unit que é o framework padrão para testes no Rails. E se você já costuma criar testes neste framework, a curva de aprendizado é perto de zero.
E agora a terceira grande vantagem é a possibilidade de criar macros para testes. Funciona mais ou menos assim: Você cria um plugin que adiciona uma certa funcionalidade a um objeto do ActiveRecord, então você cria uma macro de testes para isto e a coloca dentro de uma pasta shoulda_macros na raiz do seu gem ou plugin. Assim, os usuários do seu projeto só precisam incluir uma chamada de método nos testes dos modelos que implementarem estas novas funcionalidades e tudo estará seguro.
Por exemplo, se você estiver usando o plugin Paperclip, basta adicionar a seguinte linha no arquivo de teste do modelo para garantir que tudo vai funcionar bem:
end
Sou tão fõ do projeto que mantenho, junto com o Dr. Nic, os Bundles do TextMate para o Shoulda e posso garantir que ele está completo. Já enviei alguns patchs para o projeto principal também.
Se tem coisas que eu não sou é preciosista ou saudosita. Sou adépto ao novo, e quando considero que algo novo é melhor do que o antigo não tenho medo de mudar. Não é porque algo me serviu durante muitos anos que devo continuar usando-o o resto da vida, se fosse assim eu não teria comprado um travesseiro novo, nem um macbook, nem uma TV nova, nem um…