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! :)