I’ll try not to turn this into a pander-fest, but I’ve got a few announcements, and since this blog is finally starting to get some great reader commentary, this is as good a place as any to make them. If you’re just interested in hacking with Ruport, you can check out the 1.0 release notes.
If you’re already sick of hearing about Ruport from me, I promise to quiet down soon :)
What is this damn Ruport thing I see you mention in all your posts?
The Ruby Reports project is dedicated to making your business reporting life suck less (through ruby).
The ruport package is a lightweight foundation for reporting apps that provides a super-extensible formatting system and tools for data acquistion and manipulation.
We also support more specialized tools through the ruport-util package and Rails-centric features via acts_as_reportable
A quick example
This is nabbed straight from the examples on our homepage. You’ll want to look at the ones distributed with the source unless your needs are super simple, but this gives a basic idea of how some Ruport code might look.
Say you have a CSV file with the following data:
name,login time,machine Gregory,10:00,bittle Joe,11:45,soda Jim,9:00,kitten Joe,12:15,soda Gregory,5:00,kitten Joe,12:45,bittle
You want to do a simple task: Get a pretty printable version of that data, seperated out by names.
The following code will get you a PDF:
t = Table("foo.csv")
grouping = Grouping(t,:by => "name")
puts grouping.to_pdf
And your final report would look like this (click for PDF):

That’s a simplified example of course, but it shows at least that we haven’t complicated the easy tasks in Ruport. The real interesting stuff happens when you dig a little deeper, of course, so please do!
Mixing things up a little
I’ve been referred to as “The Ruport Guy” for almost two years now, and it’s about time to change that!
Maybe 6 months ago, a number of our contributors pushed me in the right direction and made me create a 1.0 Roadmap. Dudley Flanders and James Healy helped me focus it in such a way that it wouldn’t take decades, and I began working on it with plenty of help from some great contributors.
In late January, Michael Milner joined up and pretty quickly became extremely helpful to us. He eventually became the maintainer of our rails plugin (acts_as_reportable), and fought his way through a giant list of change requests, eventually getting the core support for ActiveRecord so polished that it’s now in the Ruport gem.
We’re now at the end of my roadmap, and by now, Mike knows the Ruport codebase and its community as well as I do. He’s also not sure if the current codebase is going to bring him as far as he needs to be. For this reason, as of 1.0, he’s taking the lead for the project. I’ll maintain the stable releases, work on building utilities, keep active with the community, and maybe on the surface, things won’t change so much. But the real win here is that we’re giving a chance for new innovations to crop up, and new leadership will do well for keeping us on our toes.
1.0 == Nostalgia
I made my first post about Ruport to the RubyTalk mailing on August 10th, 2005. One season short of two years later, it has finally made it to 1.0.
Needless to say, it’s been a long and wild ride. This toolset started off as a set of hacks nailed onto an ERb wrapper, and is now doing things like generating beautiful PDFs from ActiveRecord finds and doing complex grouping operations and other cool stuff that I never expected it to.
I’ve said it before and I’ll say it again: Reporting Sucks. That means our community is made up of very brave contributors who are willing to work on projects that aren’t particularly sexy or easy. I hope that even if our userbase grows, that sense of general willingness to be helpful will be preserved.
It’s what made this *almost* fun for 2 years. :)
I hope that if you have reporting needs, Ruport can be helpful to you. And now, with a new lead developer, if you found me incorrigibly difficult to work with, you get a second chance!


Hello Gregory,
I've found out recently Ruport and it seems great when exporting table data to cvs, to pdf and others but I can't see the benefit of using Ruport instead of basic rails (active record, etc.) to show data in html. Can you please explain it to me?
Also, does Ruport have a functionality similar to paginators?
Thanks!
Migrate,
are you saying that you aren't seeing the benefit of using Ruport / acts_as_reportable for your HTML views?
This certainly might be the case. We've seen a lot of folks roll their own for the HTML, and then use Ruport to handle the text, CSV, and PDF exports.
Still, we're working on trying to make the rails support better, mainly via the acts_as_reportable plugin. Ruport's core support for ActiveRecord is not Rails specific, and we are probably going to keep it that way.
But Mike has already been working on some report templates and things like that for the Rails plugin, so if you have some good ideas, drop by the mailing list and say hello.
Pagination is way too high level for the Ruport gem, but definitely possible in a plugin... let us know how you'd like that to work.
Hello again Gregory,
Yes, I don't see the benefit of using Ruport / acts_as_reportable in HTML views.
Regarding pagination many applications use this functionality when presenting data in html so I was ondering if Rupport had this kind of functionality.
Let me say that I never used Rupport, I just read the docs but the concept seems very good so I will try to use it in the near future.
Thanks again!
Yes, I don't see the benefit of using Ruport / acts_as_reportable in HTML views.
Regarding pagination many applications use this functionality when presenting data in html so I was ondering if Rupport had this kind of functionality.
This is mostly because Ruport is not written for Rails. :)
It's used in general ruby applications as well as web apps, so we just decided not to go too heavily into web specific stuff.
Our Rails plugin might be a good place for stuff like that, but Michael is pretty much running the show there...
Let me say that I never used Rupport, I just read the docs but the concept seems very good so I will try to use it in the near future.
Good to hear! Hope it is helpful to you.
This library looks really useful. I will test it ASAP! thanks!
George,
great to hear. Let us know what you think when you do.
This is some seriously nifty mojo.
Thanks for your hard work and initiative on this. As an on-again-off-again technical lead, I've been desperately and often searching for good ways to generate meaningful reports.
I wonder if there could be synergy between your project and Ruby's port of FIT...
This is some seriously nifty mojo.
Thanks for your hard work and initiative on this.
I appreciate the kind words. It hasn't exactly been a 'fun' project but it's definitely been worthwhile and has come a long way with the help of a lot of smart folks...
I wonder if there could be synergy between your project and Ruby's port of FIT...
I know that some of our users are at least playing around with some ideas of generating testing reports, not sure if they're using FIT or something else. You might try posting on the Ruport mailing list and see if anyone bites. (http://list.rubyreports.org)
I know that some of our users are at least playing around with some ideas of generating testing reports, not sure if they're using FIT or something else. You might try posting on the Ruport mailing list and see if anyone bites. (http://list.rubyreports.org)
Yeah, xUnit-format report processing would be pretty nifty, too.
Just FYI, I'm having trouble connecting to http://list.rubyreports.org/ -- WHOIS says you're on DreamHost's name servers, and they're having a ton of trouble right now (I'm on DreamHost, too). I'll give it a shot a bit later today.
Just FYI, I'm having trouble connecting to http://list.rubyreports.org/ -- WHOIS says you're on DreamHost's name servers, and they're having a ton of trouble right now (I'm on DreamHost, too). I'll give it a shot a bit later today.
Yep, it's been in and out all day. Though the API docs and main home page are actually hosted there, the list URL is just a redirect for now.
Here's the direct URL of the list:
http://groups.google.com/group/ruby-reports
this site stand 1 000 000 $ http://gbaba.info