Sha256: b69d6bdee256cb316e5fc31ba4c95cb82091dc5404b981ae97edb726c8312edc
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
require 'reportbuilder/table' require 'reportbuilder/section' require 'reportbuilder/generator' class ReportBuilder attr_reader :elements attr_reader :name attr_reader :dir VERSION = '0.1.0' # Create a new Report def initialize(name=nil,dir=nil) name||="Report "+Time.new.to_s dir||=Dir.pwd @dir=dir @name=name @elements=Array.new end # Add an element to the report. # If parameters is an object which respond to :to_reportbuilder, # this method will called. # Otherwise, the element itself will be added def add(*elements) elements.each do |element| if element.respond_to?(:to_reportbuilder) @elements.push(element.to_reportbuilder) else @elements.push(element) end end end # Returns a Section def section(name) Section.new(name) end # Returns a Table def table(h=[]) Table.new(h) end # Returns an Html output def to_html gen=Generator::Html.new(self) gen.parse gen.out end def save_html(file) gen=Generator::Html.new(self) gen.parse File.open(@dir+"/"+file,"wb") {|fp| fp.write(gen.out) } end # Returns a Text output def to_s gen=Generator::Text.new(self) gen.parse gen.out end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
reportbuilder-0.1.0 | lib/reportbuilder.rb |