Atualmente aqui na Serhmatica, usavamos um sistema interno, uma aplicacao "Cobaia" feita em Swing para gerencia de projetos, estavamos a algum tempo estudando o desenvolvimento de uma nova ferramenta WEB, onde nossos clientes pudessem acessar, diminuindo o fluxo de email, e tornando o contato com o cliente mais transparente. Como estamos com muito tempo de sobra, nao conseguimos progredir com a aplicacao, e procuramos uma solucao que pudesse nos atender, eis que encontramos o Redmine, uma aplicacao escrita em Ruby on Rails, nossa intencao inicial, era rodar no Glassfish que ja tinhamos configurado, porem houve inconsistencias, BUGS nao explicados pela internet, e partimos a rodar via Mongrel mesmo.Testamos e gostamos da ferramenta, ainda nao esta publica para os clientes, mas aos poucos vamos liberando, surgiu um outro problema, precisavamos de alguns relatorios no nosso estilo, que pudesse ser encaminhado aos clientes, a primeira coisa que pensei foi FODEU.Pesquisei na net e cheguei ate um blog brazuca, que tinha um projeto parecido com o que eu queria, testei os codigos desse cara, infelizmente ele nao lista os jars que vc precisa, mas vou listar aqui:commons-beanutilscommons-collectionscommons-digestercommons-loggingcommons-logging-apiiTextjasperreportspostgresql e tive o primeiro sucesso, e veio o primeiro problema, precisava parametrizar as buscas, nao como no modelo do cara, dai resolvi fazer diferente:1) Criar no relatorio_controller uma action e mapeei ela no routes.rb2) Criei a tela com form_tag e adicionei os parametros3) no retorno da action fiz a busca e mandei pro relatorio.Eis que vem o primeiro erro, o JasperReports nao conseguiu processar o modelo do Ruby.Matutei uma solucao e encontrei, criei um projeto bem simples, coloquei uma classe la dentro, e adicionei os campos, no IReport criei o relatorio com base naqueles campos. A classe ficou mais ou menos como a classe abaixo:public class Relatorio{ private Integer issue_id; private String issue_subject; private String issue_description;}criei assim mesmo fora do padrao com os underlines (_) para ser mais facil pro ruby reconhecer.depois da busca efetuada, percorri o resultado e fui criando novos objetos desse relatorio, passei esse objeto para o model Relatorio e no final converti o Ruby Array em um ArrayList e depois em um JRBeanCollection@dataSource = JRBeanCollectionDataSource.new(ArrayList.new(dados))editei tbm o metodo to_pdf e ficou assim:def to_pdf fill = JasperFillManager.fill_report(@modelo, @params, @dataSource) pdf = JasperExportManager.export_report_to_pdf(fill) return String.from_java_bytes(pdf)ende pronto, agora estou com o Redmine rodando no mongrel e gerando relatorio em PDF com o JasperReports.Em tempo: Criei um jasper.rb na pasta config/initializers, ele carrega as libs ao inves de deixar no model.Tbm alterei os observers e os fiz rodar em um Thread a demora do servidor de email pra responder causava lentidao no sistema, por exemplo o MessageOberverclass MessageObserver < ActiveRecord::Observer def after_create(message) t = java.lang.Thread.new do Mailer.deliver_message_posted(message) if Setting.notified_events.include end t.start endendEspero que isso seja util pra mais alguem, qualquer duvida comenta ai que vejo se posso ajudar. Galera escrevi meu proprio blog, e vou abadonar o blogger :), aos poucos claro, mas posts futuros somente no novo (temporario) endereco http://rollingwithcode.heroku.com/ A algum tempo atras escrevi sobre RSpec e MongoDB a versao que usei o database cleaner na epoca era a 0.5.2, a algum tempo atraz saiu a