Sha256: fb2482ec2cd90854014019c9a8b7b2cd8e7a2dcf7a69bbe17b3a2319b55940b2

Contents?: true

Size: 746 Bytes

Versions: 3

Compression:

Stored size: 746 Bytes

Contents

require 'prawn'
require 'delegate'

module Pdfcraft

  class Document < Delegator

    def initialize
      # override the super instance with a new signature
    end

    def page_config! options
      raise EngineAlreadyInitialized, "pdf document has already started rendering" if @pdf_engine.present?
      __setobj__ pdf_engine(options)
    end

    def page_config options
      page_config! options
      true
    rescue EngineAlreadyInitialized
      false
    end

    def __getobj__
      @pdf_engine ||= pdf_engine
    end

    def __setobj__(obj)
      @pdf_engine = obj
    end

    private

    def pdf_engine options={}
      Prawn::Document.new(options)
    end

    class EngineAlreadyInitialized < StandardError; end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pdfcraft-1.0.1 lib/pdfcraft/document.rb
pdfcraft-1.0.0 lib/pdfcraft/document.rb
pdfcraft-0.0.1 lib/pdfcraft/document.rb