class TP::Publisher::PDF

Attributes

input_filename[R]

Public Class Methods

new(input_filename, output_filename) click to toggle source
# File lib/tp/publisher/pdf.rb, line 22
def initialize(input_filename, output_filename)
  @input_filename = input_filename
  @output_filename = output_filename
end

Public Instance Methods

document_options() click to toggle source
# File lib/tp/publisher/pdf.rb, line 61
def document_options
  {
    page_layout: :landscape,
    optimize_objects: true,
    skip_page_creation: true
  }
end
markdown() click to toggle source
# File lib/tp/publisher/pdf.rb, line 41
def markdown
  @markdown ||= File.read(input_filename)
end
new_page() click to toggle source
# File lib/tp/publisher/pdf.rb, line 69
def new_page
  start_new_page

  fill_color '111111'

  canvas do
    fill_rectangle [bounds.left, bounds.top], bounds.width, bounds.height
  end

  fill_color 'EEEEEE'

  font "Helvetica"
  font_size 1.in
end
output_filename() click to toggle source
# File lib/tp/publisher/pdf.rb, line 53
def output_filename
  @output_filename || "#{input_filename.split('.').first}.pdf"
end
pdf() click to toggle source
# File lib/tp/publisher/pdf.rb, line 57
def pdf
  @pdf ||= Prawn::Document.new(document_options)
end
presenter() click to toggle source
# File lib/tp/publisher/pdf.rb, line 45
def presenter
  @presenter ||= Presenter.new(markdown)
end
publish() click to toggle source
# File lib/tp/publisher/pdf.rb, line 27
def publish
  slides.each do |slide|
    render_slide(slide)
  end

  render_file output_filename
end
render_slide(slide) click to toggle source
# File lib/tp/publisher/pdf.rb, line 35
def render_slide(slide)
  new_page

  slide.render_pdf(pdf)
end
slides() click to toggle source
# File lib/tp/publisher/pdf.rb, line 49
def slides
  presenter.slides
end