Skip to content

Instantly share code, notes, and snippets.

@sahidursuman
Forked from rebelweb/prawn_report.rb
Created April 23, 2019 09:26
Show Gist options
  • Save sahidursuman/9092554f2c15d7aef9fa9fe40807c729 to your computer and use it in GitHub Desktop.
Save sahidursuman/9092554f2c15d7aef9fa9fe40807c729 to your computer and use it in GitHub Desktop.
Object Oriented Prawn Report
require 'prawn'
module Reports
class PrawnReport < Reports::Report
#call this from irb or any ruby code for that matter (i.e. Reports::PrawnReport.generate)
def self.generate
Prawn::Document.generate('prawn.pdf') do |pdf|
report_header(pdf)
report_body(pdf)
end
end
private
#place all pices of the report here
def self.report_header(pdf)
pdf.text 'Prawn Report'
end
def self.report_body(pdf)
pdf.text 'Report Body'
end
end
end
module Reports
class Report
#place share report methods here to share among multiple reports
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment