== Ruport 0.4.17 ==
The "Arnold Schwartzenegger" Edition
(This is my 6th release since the start of Google's Summer of Code)

== About ==

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 munging.

== New in this release ==

This release features a lot of additional features for building
formatting engines and plugins.  This past week saw the first user
created engine, and a lot of the refinements were specifically to make
this task easier.

Documentation is still lacking, but there is an example of most of the
new features being used.[3]

There is also a really easy to use function (prune) for cleaning up
duplicates in tabular data.[4]

Another simple, but nice enhancement is that you can now treat DataRow
attributes as accessors

data.select { |r| r.first_name.eql? "greg" }

Finally, we've started work on a replacement for DataSet/DataRow.
Here are some probably poorly constructed benchmark results.

                                                 user     system
total        real
new: creating rows  0.716667   0.033333   0.750000 (  0.485740)
new: loading from CSV  6.483333   1.150000   7.633333 (  4.705149)
new: making a CSV  7.250000   0.233333   7.483333 (  5.245229)

old: creating rows  9.666667   0.366667  10.033333 (  6.170871)
old: loading from CSV 12.516667   1.233333  13.750000 (  8.432342)
old: making a CSV 61.650000   1.516667  63.166667 ( 40.108137)

The new system will almost certainly pick up some speed setbacks as we
make it more feature complete, but this is certainly a promising
amount of cushioning!

In shoddy memory map analysis, the new system seems to more than 2x
smaller on average, as well :)

For those interested, here is the source for the benchmarks:
http://pastie.caboo.se/paste/4868

== Project News ==

Please test the new Data::Table and Data::Record classes!  They may
not be robust yet, but these will be part of a new base for Ruport's
data manipulation, so be sure to try them out and let me know what
else you'd like to see added.

Also... the #ruport channel seems to be growing by the day, at one
point today I counted 8 nicks!  So if you want to lurk with us...
please come do so.

== Installing Ruport ==

it's a gem.  it can also be installed via setup.rb

detailed instructions available [1]

=== SVN tag ===

svn://rubyforge.org//var/svn/ruport/tags/rel_0_4_17

=== Project Download Page ===

http://rubyforge.org/frs/?group_id=856

=== Resources ===

Please join the mailing list[2] and bombard me with questions,
suggestions, and bug reports.  Also feel free to contribute to the
wiki[0].  I recently got severed from Ruby Buzz somehow, so you also
might want to subscribe to the atom feed[5]

[0] http://reporting.stonecode.org
[1] http://ruport.infogami.com/Installation
[2] http://lists.stonecode.org/listinfo.cgi/ruport-stonecode.org
[3] http://ruport.infogami.com/blog/cool_community_happenings
[4] http://ruport.infogami.com/blog/pruning
[5] http://ruport.infogami.com/blog/atom.xml

Also, catch up with us in #ruport on freenode

=== Acknowledgements ===

james Healy for his work on an Order/Invoice engine which will soon be
in Ruport.  Dudley Flanders / Dinko Mehinovic for helping with the new
data system.