From: Gregory Brown Date: 2006-07-17T10:34:56+09:00 Subject: [ANN][SoC] 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 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.