= reportbuilder

* http://ruby-statsample.rubyforge.org/reportbuilder

== DESCRIPTION:

Report Abstract Interface. Creates text, html and rtf output, based on a common framework.

== FEATURES

* One interface, multiple outputs
* You have two interfaces:
* Generic, based on adding objects to a ReportBuilder object
* Fine tuning, directly operating on ReportBuilder::Generator interface

== SYNOPSIS:

* Using generic ReportBuilder#add, every object will be parsed
using methods
* report_building_FORMAT
* report_building or
* to_s

require "reportbuilder"
rb=ReportBuilder.new
rb.add(2) # Int#to_s used
table=ReportBuilder::Table.new(:name=>"Table", :header=>%wname)
table.row([1,"John"])
rb.add(table) # table have a #report_building method
rb.add("Another text") # used directly
rb.name="Text output"
puts rb.to_text
rb.save_rtf("test.rtf") # You could save files, too

* Using a block, you can control directly the generator

require "reportbuilder"
rb=ReportBuilder.new do
text("2")
section(:name=>"Section 1") do
table(:name=>"Table", :header=>%wname) do
row([1,"John"])
end
end
preformatted("Another Text")
end
rb.name="Html output"
puts rb.to_html

== DEVELOPERS

If you want to give support to your class, create a method called #report_building(b), which accept a ReportBuilder::Builder as argument. If you need fine control of output according to format, append the name of format, like #report_building_html, #report_building_text.

See ReportBuilder::Builder for API and ReportBuilder::Table, ReportBuilder::Image and ReportBuilder::Section for examples of implementation. Also, Statsample package object uses report_building on almost every class.

Source code could be retrieved from
http://github.com/clbustos/reportbuilder


== REQUIREMENTS:

* RMagick, only to generate text output of images (see examples/image.rb)

== INSTALL:

sudo gem install reportbuilder

== LICENSE:

GPL-2