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