class Thinreports::Generator::PDF
Attributes
report[R]
@return [Thinreports::Report::Base]
Public Class Methods
new(report, security: nil)
click to toggle source
@param [Thinreports::Report::Base] report @param [Hash] security (nil)
# File lib/thinreports/generator/pdf.rb, line 13 def initialize(report, security: nil) report.finalize @report = report.internal title = default_layout ? default_layout.format.report_title : nil @document = Document.new(title: title, security: security) @drawers = {} end
Public Instance Methods
default_layout()
click to toggle source
# File lib/thinreports/generator/pdf.rb, line 30 def default_layout report.default_layout end
generate(filename = nil)
click to toggle source
@param [String, nil] filename @return [String, nil]
# File lib/thinreports/generator/pdf.rb, line 25 def generate(filename = nil) draw_report filename ? @document.render_file(filename) : @document.render end
Private Instance Methods
draw_page(page)
click to toggle source
# File lib/thinreports/generator/pdf.rb, line 42 def draw_page(page) return @document.add_blank_page if page.blank? format = page.layout.format @document.start_new_page(format) drawer(format).draw(page) end
draw_report()
click to toggle source
# File lib/thinreports/generator/pdf.rb, line 36 def draw_report report.pages.each do |page| draw_page(page) end end
drawer(format)
click to toggle source
# File lib/thinreports/generator/pdf.rb, line 51 def drawer(format) @drawers[format.identifier] ||= Drawer::Page.new(@document, format) end