Gerenciando plugins no Rails com Pez
Leia em 1 minuto
Ultimamente, tenho usado muito mais Git, mas ainda tenho projetos versionados com Subversion. E como todos os meus plugins estão no Github, sinto uma grande dificuldade em mantê-los atualizados, já que utilizam SCMs diferentes.
Como já tinha lido muito sobre algumas ferramentas para esta finalidade, como Braid, resolvi testá-los. Infelizmente, nenhuma delas funcionava da maneira como eu gostaria. Então, como bom geek que sou, decidi fazer minha própria implementação: conheçam o Pez.
Pez é um gerenciador de plugins para Rails muito simples. A diferença principal em relação às ferramentas semelhantes é que ele não tenta adicionar as alterações/atualizações destes plugins no repositório do projeto. Em vez disso, ele cria um diretório central e faz apenas links simbólicos para o diretório vendor/plugins do projeto. Essa abordagem permite, por exemplo, que você mantenha um único diretório de plugins para diferentes projetos, desde que eles utilizem as mesmas revisões/branches.
Mas como não é só de notícias boas que se vive, aqui vem o lado negativo desta história: você não conseguirá usar o Pez se usa Windows, já que muitos comandos utilizados só estão disponíveis em sistemas *nix.
Se você se interessou, veja à seguir como instalá-lo e quais são os comandos disponíveis.
Instalando o Pez
O Pez está hospedado no Github e pode ser instalado com o comando abaixo.
sudo gem install fnando-pez --source=http://gems.github.com
Se quiser dar uma olhada no código ou gerar sua própria versão, siga os passos abaixo.
git clone git://github.com/fnando/pez.git
cd pez
rake gem:install
Usando o Pez na prática
Depois que o Pez tiver sido instalado, você deve executar o comando pez setup
à partir da raíz de seu projeto. Isso irá criar um arquivo config/plugins.yml, que terá todas as informações dos plugins adicionados.
---
plugins:
rateableplugin:
repo: svn://rubyforge.org/var/svn/rateableplugin/trunk
type: svn
has_cache:
repo: git://github.com/fnando/has_cache.git
type: git
revision: 8aafca390796d79ed200000f3f13243b471b96fc
cucumber:
repo: git://github.com/aslakhellesoy/cucumber.git
type: git
revision: 32d4f03d19bf33172bb7b48fed48e906a56598a7
branch: html-visitor
content_cache:
repo: http://svn.codahale.com/content_cache/
type: svn
revision: 20
development: /Users/fnando/Sites/sample/tmp/plugins
production: /Users/fnando/Sites/sample/tmp/plugins
Por padrão, os plugins são mantidos no diretório tmp/plugins. Você pode alterar essa configuração a qualquer momento, alterando o caminho relativo ao ambiente de seu projeto.
O Pez possui uma série de comandos. Para ver a lista completa, execute o comando pez help
. Você pode visualizar a ajuda para um comando específico com o comando pez help [command]
.
Como você pode perceber, não tem muito segredo! Se você tiver alguma sugestão, envie um comentário. Se quiser contribuir, o projeto está no Github: http://github.com/fnando/pez.
Trivia: O nome foi tirado de um album do Less Than Jake chamado Pezcore, que eu estava ouvindo na hora que eu o programava. Ainda bem que não tenho gostos musicais bizarros! :)