= Ruby Reports 0.4.0: The "Less than 100% API change" Release

== What is Ruby Reports (Ruport) ?

Ruby Reports is a software library that aims to make the task of reporting
less tedious and painful.  It provides tools for data acquisition,
database interaction, formatting, and parsing/munging.

== What's new in this release ?

I mentioned that I was going to focus at increasing test coverage,
so you're looking at 27 additional tests with over 60 additional assertions.

There have also been a lot of major bug fixes,
and things are for the most part throwing appropriate (and rescuable) errors
rather than just behaving wild and crazy.

The last version of Ruport had some major issues with database interaction,
pretty much always returning nil no matter what went wrong,
that problem is gone.

Ruport is still going through a lot of growing pains,
but things seem to be getting better.

The coolest new feature is probably Simon Claret's submission
which handles PDF table generation.

Try something like:

  File.open("foo.pdf","w") do |f|
    f.puts [[1,2],[3,4],[5,6]].to_ds(%w[a b]).as(:pdf_table)
  end

It should give you some pretty PDF output.
Of course, this still has a bunch of warts,
but it's at least a nice example of whats to come.

If you are lazy, you can see the result of this command here;
http://stonecode.org/ruport/foo.pdf

I've also added a bunch of helper methods for doing various tasks
around Ruport, see the CHANGELOG for details.

This is mostly a maintainence, cleanup, new-stuff-under-the-hood,
and bug stomping release, but for the adventurous,
new cool stuff is lurking.

== Optional Dependencies

The way ruport works now is if you have certain software
installed, it will let you use it.  If you do not, it simply will
ignore those features, throwing a NotImplementedError if you try to use them.

These features will spring into existence as you install the new libs,
so you are free to add them in down the line if you'd like too.  No
ruport re-install needed

The optional dependencies are:

Ruby/DBI :
Needed for Query and it's functionality to work

FasterCSV :
When installed, everything will work the same, just faster

RedCloth :
Needed for the red_cloth filter to work

PDF::Writer:
Needed if you'd like to attempt to use the experimental printable
documents stuff and the pdf table stuff.

All but Ruby/DBI can be installed via RubyGems.

== Installation

The preferred method of installing Ruport is by RubyGems

The package from RubyForge will grab all the dependencies for you:

  sudo gem install ruport

If you are interested in installing ruport manually,
you can download the source and either use setup.rb
or build the gem using the Rakefile provided[+]

You might want to grab the code off of SVN:

  svn co svn://rubyforge.org/var/svn/ruport/tags/ruport-0.4.0

or you can grab it from

  http://rubyforge.org/frs/?group_id=856&release_id=5207

After you've got Ruport installed, run

  ruby -rubygems -e "require 'ruport'; puts Ruport::VERSION"

to double check everything went well.

== Resources

Please join the mailing list!  It's the best way to get
answers and it helps lighten the burden on me to provide documentation
(the archive serves as a nice first stop for info).  Plus, I feel
loved when I see the subscriber list climb!  [We're up to 21 now!]

  http://lists.stonecode.org/listinfo.cgi/ruport-stonecode.org

Feel free to browse the archive and ask any questions you might have
or make suggestions.  I am actively looking for contributors, testers,
and other wandering vagabonds.

Aside from that, I've upgraded the API documentation from abhorrent to
'for the most part, pretty okay, expect for places when it's not so
good at all'

Meaning you might find something useful at http://ruport.rubyforge.org

And to stay on top of Ruport news, you can always skulk around my blog:
http://stonecode.org/blog

== Coming Soon!

Features I need in order to keep the paychecks coming. :)

Most of these are data manipulation type things, doing summary reports
and combinations of data and stuff like that.

Also, finer grain control over formatting.  Ruport needs to be made a
LOT more flexible in this area.

== Acknowledgements:

Thank you to Selby Gibson for your continued support.

Also, thank you to new_haven.rb, NYC.rb,
Francis Hwang and James Edward Gray II for code reviews,
suggestions, putting up with me, etc.

And of course, to Simon Claret for his PDF table submissions
and his work on rails support...  and the folks on the
mailing list who give me feedback.


Thanks,
- Greg

[+] ruport-lean officially went away, but you can still build a dependency free
gem by editing the Rakefile and setting LEAN to true.  This is for the
adventurous and anti-dependency only.