class Thinreports::SectionReport::Renderer::GroupRenderer
Attributes
pdf[R]
section_renderer[R]
Public Class Methods
new(pdf)
click to toggle source
# File lib/thinreports/section_report/pdf/renderer/group_renderer.rb, line 9 def initialize(pdf) @pdf = pdf @section_renderer = Renderer::SectionRenderer.new(pdf) end
Public Instance Methods
render(report, group)
click to toggle source
# File lib/thinreports/section_report/pdf/renderer/group_renderer.rb, line 14 def render(report, group) pdf.start_new_page_for_section_report report.schema current_page_height = 0 max_page_height = pdf.max_content_height group.headers.each do |header| section_renderer.render(header) current_page_height += section_renderer.section_height(header) end group.details.each do |detail| if current_page_height + section_renderer.section_height(detail) > max_page_height pdf.start_new_page_for_section_report report.schema current_page_height = 0 group.headers.each do |header| if header.schema.every_page? section_renderer.render(header) current_page_height += section_renderer.section_height(header) end end end section_renderer.render(detail) current_page_height += section_renderer.section_height(detail) end group.footers.each do |footer| if current_page_height + section_renderer.section_height(footer) > max_page_height pdf.start_new_page_for_section_report report.schema current_page_height = 0 end section_renderer.render(footer) current_page_height += section_renderer.section_height(footer) end end