Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tree: 2051882809
Fetching contributors…

Cannot retrieve contributors at this time

372 lines (210 sloc) 10.359 kB
The current version of Ruby Reports is 0.4.13
changes since 0.4.11
- I apparently never knew how to use inject.
Injects are all functional now.
- Fixed a bug in DataSet that made fields not get duped properly
changes since 0.4.9
- DataSet#column_names and DataRow#column_names have been added as alias to
- Plugins are now safely copied when used via DataSet#as or the generated
- Dropped insert_row / insert_column from Format::Engine::Table.
These are no longer needed.
- Reworked format engine unit tests to decouple from specific plugins.
- vendored SystemExtensions from HighLine to get terminal_width /
terminal_height functions
- DataSet#add_columns and DataSet#add_columns! has been added
- Added pre and post hooks for Plugins. Individual plugins choose if and
how to implement them.
- Parser is gone
- Format::Builder is gone
- fixed a bug in rails support. :columns now works properly.
- fieldnames can now be disabled in CSV loading
- DataSet.load now loads empty cells as nil instead "" by default
- fixed HTML table output in HTMLPlugin
- Select / Remove columns now accepts ordinal indexes
changes since 0.4.5:
- Added acts_as_reportable for ActiveRecord / rails. whoo
- Mailer now can handle attachments and html emails.
API Breakage. Needs mailfactory unless you use the hooks for other
- Added a rewrite_column action to the tabular engine
- Added Ruport.configure shortcut interface
- went back to the old style of output for DataSet.to_s
Modified TextPlugin to accomplish this
- Crackrock feature: Engine forwards enumerable methods to it's data.
- DataSets and DataRows can now be created without specifying field names.
- Added uport.rb . I needed to steal from RubyGems :)
- Fixed some requires
- Temporarily removed mail support from Ruport::Report
- Added Ruport::Mailer#deliver simple mail interface
- Ruport::Report::Mailer is now Ruport::Mailer
changes since 0.4.4:
- DataRow constructor now matches DataSet style.
- DataSet picked up a ton of array-like functionality
- DataSet#load now optionally accepts a block that acts something
like inject.
- Added a DataSet#select_columns!() method
- What the heck was Format#filter_ruby? It's gone now
- DataSet#as() now hooked to the new formatting system.
note API breakage in block forms
- DataSet set operations (DF)
- Much smarter DataSet#<< (Dudley Flanders)
- Ruport now has pseudo keyword support in DataSets.
(Thanks to Dudley Flanders!)
changes since 0.4.2:
- Fixed a packaging bug.
changes since 0.4.0:
- Brand new formatting system.
- DataSet#<< now returns self, e.g.
some_data << [1,2,3] << [4,5,6]
- Removed fascist opt_require feature and Ruport::Base
- Fixed bug in DataRow constructor which destroyed arrays.
- Examples now included in gems
changes since 0.3.8:
- added DataRow#to_h
- Ruport::Format.register_filter now passes the content it will modify via a
block. e.g.
Ruport::Format.register_filter :reverser { |content| content.reverse }
- Modified the license terms of Ruport so that it uses specifically the GPLv2.
Further versions of Ruport may not be distributed under later versions of the
GPL without explicit permission.
- DataSet#[]= now passes rvals to DataRow constructor with fields from the
DataSet it is called on.
- Optional dependencies should now be forceably protected by opt_require.
- Fixed a problem with Ruport.complain that caused it to force you to use a
logger to make it work.
- DataRow#eql? is fixed and now has a test covering it.
- DataRow/DataSet can now be dup'ed / cloned
(But may still have some dragons)
- DataRow#+ now returns DataRows instead of arrays
- Format::Builder rendering methods can now be registered through
- DataRow["somekeythatdoesntexist"] no longer throws an error
(now returns nil)
- Now some_data_row[:foo] and some_data_row["foo"] are equivalent
- Fixed Query so it throws appropriate errors. No more magic nil. (I hope)
- Ruport::Config.default_source now defaults to nil
- Ruport::Config now has improved error detection.
- additional Test coverage, documentation and logging.
- DataSet#sigma (a.k.a DataSet#sum) added for summations.
- Format::Builder#render_pdf renamed to Format:Builder#render_pdf_document
- Format::Builder#render_pdf_table added. (Thanks Simon Claret!)
- Fixed bug in remove_columns
key features of Ruport 0.3.8:
- New configuration system
- New query model
- New formatting system
- Total API redesign
- Lots more API documentation
- A parser adapted from Parse::Input
- ruport executable was deprecated
[ Code was redesigned completely after 0.2.9 ]
changes since Ruport 0.2.9:
- Report::SQL dropped.
- Fixed a bug in query that made ODBC driver not work at ALL!
(AFAIK, this bug was ONLY in Ruport 0.2.9)
- removed render() from the engine and implemented DataSet#render_as()
@report = render(data) do |builder| builder.format = :some_format end
is now: @report = data.render_as(:some_format)
which takes an optional block that works as before.
- removed method DataSet#select_field() because it was the same as
DataSet#select_fields() and of limited utility.
- added method DataSet#remove_fields and DataSet#remove_fields!
to make data manipulation easier.
- added DataSet#empty?
- added DataSet#clone which will actually deep copy a DataSet.
- cleaned up incredibly annoying DataSet constructor so you can now pass
field names and data to new()
- Report::DataSet now documented
- added hacks.rb which will include a random collection of potentially
useful functions. (Already cool for making Ruport easy to use with irb).
- added Document class and unit tests. Needs to be completed.
- added Report::DataSet.clone for making deep copies of DataSets.
- added Element, Section, Page, and Document formatting classes.
- restructured unit tests, adding ts_format and ts_report
and moving all non-testcase data into test/samples
- restuctured library, adding ruport/format.rb and ruport/report.rb
made format and report into classes, with nested classes within.
- Moved the Report::Engine class into Report
- reorginized DataSet#<< to be more efficient. Thanks Francis!
- added OpenNode. Which is a little scary.
- Francis Hwang has added SqlSplit, which has been tied into query.
Now multiple statement SQL dumps can be processed by ruport.
- DataSet can now safely execute commands that return no rows.
(This was a bug in RubyDBI which ruport now has a workaround for)
- require "ruportlib" becomes require "ruport"
changes since Ruport 0.2.5:
- Added a new examples package with a 666 line walkthrough and more enjoyable
- Added support for multiple DSN's via add_dsn and select_dsn
- Added Tagging support for DataSets.
- Added DataSet#select_field and DataSet#select_fields to simplify grabbing
data by column
- Report::DataSet now implements to_s, for pretty printing goodness.
- render_text now implemented in Format::Builder
- Format::Builder now accepts headers and footers.
- Format::Builder now can generate complete html via output_type
- Ruport now uses FasterCSV, which is now a dependency. Yay! Dependencies!
(But it IS 9x faster than the CSV lib that ships with Ruby)
- Added tests to the gem spec... so you can use -t now.
- DataRow#+ implemented.
- Format::Builder#range implemented. (Can now format partial DataSets)
- Fixed a bug in the unit tests that required Ruport to be installed.
Now you can test BEFORE you install. (Sorry about that one...)
- Commands that return no rows no longer crash the application
(But writing to the database is still not fun nor easy)
- templates/ folder now more aptly named scripts/
- Report::Engine#query now returns a DataSet so chaining is possible
changes since Ruport 0.2.2:
- Report::DataSet and Report::DataRow are now enumerable
- DataSet#eql? fixed
- Format::Builder has been added to handle formatting
(Supports CSV / HTML currently)
- Format::Builder is easily extendable via send("render_#{@type}")
- DataSet#to_html convenience method added
- DataSet#fields can now be arbitrary objects (does not need to be Strings)
- Dropped DataRow#middle? because it was useless. (And poorly named)
- FakeMailer added for testing goodness.
- Dropped select() and execute() in favor of query()
changes since Ruport 0.2.0:
- Report becomes Engine
- MockDB becomes FakeDB
- MockReport becomes MockEngine
- Modules are added so now,
Ruport::Report::DataSet is the full name of these classes.
- 'require ruportlib' runs include Ruport,
so you can type instead of
- The assert that was supposed to be an assert_equal that
David Black caught was fixed.
- Examples are updated and now on the RubyForge FRS in many formats.
(With .DS_Store and other garbage files removed! ;) )
- Formatting of code was cleaned up and improved.
- Generates a test.rb that does not use deprecated functions now.
changes since Ruport 0.1.0:
- Parseinput dependency removed for now
- setup.rb support removed
- gem install will now only install a single executable
- dropped undocumented YAML override feature
- Query class now called Report
- Project split into two parts lib/ruport/db and lib/ruport/format
- dropped questionable ruport_query manager function
- finally turned on expandtab and tabstop=2 for Ruby style ;)
- require 'ruportlib' lets ruport be used as a library
- MockDB and MockReport added to simplify testing
- DataRow and DataSet added to provide munging with ease
(to_csv, DataSet.load("some.csv"), etc
- DataSet.load() can restore DataSet's that were YAML.dump()'ed
- load_file now supports absolute and relative paths
- added many automation features to templates
- added @pre and @post to Report which accept lambdas to execute
before and after generate_report()
- logger added.
- some friendly error messages added
- new method query() will eventually replace select() / execute()
- {examples}[] available for download
Jump to Line
Something went wrong with that request. Please try again.