File: //usr/lib/ruby/vendor_ruby/tilt/prawn.rb
require 'tilt/template'
require 'prawn'
module Tilt
# Prawn template implementation. See: http://prawnpdf.org
#
class PrawnTemplate < Template
self.default_mime_type = 'application/pdf'
def prepare
@engine = ::Prawn::Document.new(prawn_options)
end
def evaluate(scope, locals, &block)
pdf = @engine
if data.respond_to?(:to_str)
locals[:pdf] = pdf
super(scope, locals, &block)
elsif data.kind_of?(Proc)
data.call(pdf)
end
@output ||= pdf.render
end
def allows_script?
false
end
def precompiled_template(locals)
data.to_str
end
private
def prawn_options
# defaults to A4 instead of crazy US Letter format.
{ :page_size => "A4", :page_layout => :portrait }.merge(options)
end
end
end