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.
Parabens pelo blog Mio!!Muito sucesso vc merece!!!Mto competente e dedicado!Abraços Stan
ResponderExcluir