João Emilio Dambroz. Tecnologia do Blogger.

Implementando hook script no redmine

terça-feira, 2 de julho de 2013

Redmine

O redmine é uma aplicação web de representação visual de projetos e seus deadlines. O código foi escrito inicialmente por Jean Philippe em Ruby on Rails e é mantido pela comunidade com código aberto.. Alem diso todo o sistema é multiplataforma e integra muito bem com SVN Git e Mercurial.

HookScript

HookScript são como 'gatihos' em aberto dentro da aplicação que possibilitam alterar um comportamento default, ou até mesmo fazer implementações de regras, chamada de web services, alteração de mensagens ou leiaute.

O problema

A algumas semanas tivemos a necessidade de integrar o redmine com outro departamento que utiliza um sistema chamado kayako fusion, depois de muita pesquisa acabamos convencidos de que a solução ainda não existia e teríamos que fazer esta ponte, tínhamos uma equipe muito forte em Java porem o Kayako Fusion foi desenvolvido em php, e como já falei o redmine em ruby, logo não tínhamos muito conhecimento do potencial das ferramentas que tínhamos em mãos.
Durante o processo de desenvolvimento a equipe estava muito interligada, todos sabiam de suas responsabilidades e onde queríamos chegar, o processo estava muito bem definido por parte da analise. Utilizamos a Arquitetura ESB com um barramento onde fizemos toda a manipulação de dados e implementamos as business rules. Nossa maior dificuldade ficou por conta dos hooks do redmine que faziam a ponte com o barramento. Como tive muita dificuldade em encontrar material para estudar o assunto, vou repassar o conhecimento e explicar melhor como desenvolvi a solução.

Solução

Criar o arquivo init.rb dentro do seguinte endereço (./redmine). Ele define que o redmine será executado com um plugin que aqui chamamos de "custom_hooks". Tem um exemplo pronto do arquivo no site do redmine.

Criar o arquivo hooks.rb dentro do seguinte endereço (./redmine/lib/custom_hooks) O arquivo hooks.rb define quais são os hooks existentes no nosso plugin, onde devem ser chamados, onde estão localizados dentro dos arquivos do redmine e quais os parâmetros de contexto.

Criar o arquivo com a implementação do hook dentro do seguinte endereço(./redmine/app/controllers/hooks/custom_hooks), aqui vale lembrar que a pasta controllers se refere somente a hooks de controle, para o redmine é possível implementar hooks nas três camadas do MVC, para mais detalhes acesse http://www.redmine.org/projects/redmine/wiki/Hooks

Criar um backup do arquivo Gemfile.lock(esta dentro do diretório redmine)

O arquivo Gemfile é onde são definidas as gem(são como libs no java) que serão utilizadas pela aplicação. Sempre que houver uma modificação neste arquivo deve ser executado o comando bundle install para que as gems sejam atualizadas. Ao executar este comando ele ira gerar o arquivo gemfile.lock que é como se fosse um ponteiro das gems para a aplicação.

Um comentário

  1. Parabens pelo blog Mio!!Muito sucesso vc merece!!!Mto competente e dedicado!Abraços Stan

    ResponderExcluir

 

Compartilhe

twitter facebook orkut linkedin email

Most Reading