Report Abstract Interface. Creates text, html and rtf output, based on a common framework.
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
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=>%w{id name}) table.row([1,“John”]) rb.add(table) # table have a # 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=>%w{id name}) do
row([1,"John"])
end
end
preformatted("Another Text")
end
rb.name="Html output"
puts rb.to_html
If you want to give support to your class, create a method called #, which accept a ReportBuilder::Builder as argument. If you need fine control of output according to format, append the name of format, like #, #.
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 github.com/clbustos/reportbuilder
RMagick, only to generate text output of images (see examples/image.rb)
sudo gem install reportbuilder
GPL-2
Generated with the Darkfish Rdoc Generator 1.1.6.