class Skr::Print::Form

finds and generates a pdf verison of a document

Public Class Methods

new(form, code) click to toggle source
# File lib/skr/print/form.rb, line 7
def initialize(form, code)
    @template = Template.get(form) ||
                fail("Unable to find template for #{form}")
    @record   = @template.model.where(hash_code: code).first!
    @latex    = @template.path_for_record(@record)
    unless @latex.exist?
        fail("Unable to find template type for record")
    end
    Lanes.logger.debug "Printing #{form} #{code} using #{@latex}"
end

Public Instance Methods

as_latex() click to toggle source
# File lib/skr/print/form.rb, line 28
def as_latex
    template.compile_latex
end
as_pdf() click to toggle source
# File lib/skr/print/form.rb, line 18
def as_pdf
    template.to_stringio
rescue ErbLatex::LatexError => e
    Lanes.logger.warn e.log
    raise
rescue => e
    Lanes.logger.warn e
    raise
end
data() click to toggle source
# File lib/skr/print/form.rb, line 32
def data
    vars = {
        @template.name.underscore => @record,
        'root_path' => ::Skr::Print::ROOT
    }
    if @record.respond_to?(:latex_template_variables)
        vars.merge!(@record.latex_template_variables)
    end
    vars
end
template() click to toggle source
# File lib/skr/print/form.rb, line 43
def template
    ErbLatex::Template.new(@latex,
                           data: data,
                           context: Skr::Print::Context,
                           layout: ROOT.join('layout.tex.erb'),
                           partials_path: ROOT.join('partials'),
                           packages_path: ROOT.join('packages')
                          )
end