Ruby Reports 0.4.17

== 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 { |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 :slight_smile:

For those interested, here is the source for the benchmarks:

== 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 ===


=== Project Download Page ===

=== 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]


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 F. / Dinko Mehinovic for helping with the new
data system.