I am pleased to announce that I am finally done with Ruport 0.2.0, the
release that was just supposed to be minor bug fixes but exploded into
a whole lot more.
What is Ruport?
Ruby Reports (Ruport) is a pure Ruby Report Generation framework.
Though it's currently in alpha stages, it's already useful for
generating CSVs, talking to SQL servers via a simple DSL, mailing
reports, and doing custom formatting via ERb templates.
Example:
---code----
@report_name = "Sample CSV"
query(fetch { from :address_book } ) do
>data> @report << data.to_csv
end
@mailer.recipients = %w[ gregory.t.brown@gmail.com you@you.com ]
@mailer.body = "Worked Great!\n --- \n#{@report}"
---- /code -----
With a single YAML file handling config, the above will send an email
entitled Sample CSV to myself and you@you.com with the contents
"Worked Great!" followed by the inline CSV results from what gets
evaluated as SELECT * from address_book (which would be run against
whatever database you specified in your YAML file)
That's really all there is to it. No strings attached
Ruport can do a lot more than this. For a full set of examples and a
walk through manual.
see: http://ruport.rubyforge.org/example.zip
Also, the API documentation lives at http://rubyforge.org/docs/
This will bring you through installation as well as a number of
different features of the system.
Ruport is a gem, so just fire off a:
sudo gem install ruport
on *nix
or a
gem install ruport on windows
and you'll be ready to go.
I have also set up a tutorial for setting up Ruport on Windows with MySQL:
For anyone interested in installing ruby-dbi with MySQL on windows,
this tutorial will get you there, whether or not you plan on using
ruport (installing ruport is the last step):
http://stonecode.org:2501/stonecodeproductions/published/Ruport%2C+MySQL+and+Windows
NOTE: You'll need to install ruby-dbi and the driver that matches
your database in order for ruport to work.
Looking forward to some feedback... Hope you like it!
Check out the RubyForge page for more info, and feel free to contact
me if you need help.
Enjoy!
-Greg
Ruport Stats:
18 tests, 76 assertions
6 Example Programs
API Documentation: Sparse but present
Walkthrough Manual: 13 page PDF
~600 LOC / ~225 LOT
Tested on MySQL (Win2k/XP,Mac OS X.3 / X.4,Gentoo Linux, Debian Sarge)
Tested on SQL Server via ODBC (Win2k)