Sha256: 26b67724a1d49fa450833ff3048f739bf07bf052b7231b8f9b78f606e1a920e7

Contents?: true

Size: 733 Bytes

Versions: 3

Compression:

Stored size: 733 Bytes

Contents

require "prawn"
require "active_support/core_ext/class/attribute"

require_relative "renderer"

module PrawnCocktail
  class Document
    def render
      renderer.render_data
    end

    def render_file(file)
      renderer.render_file(file)
    end

    def filename
      # Override in your subclass.
    end

    private

    def renderer
      @renderer ||= Renderer.new(template, data, self.class.doc_initializers)
    end

    def template
      self.class.name.underscore
    end

    class_attribute :doc_initializers
    self.doc_initializers ||= []

    def self.initialize_document(&block)
      self.doc_initializers << block
    end

    def self.helper(mod)
      initialize_document { extend mod }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
prawn_cocktail-0.5.0 lib/prawn_cocktail/document.rb
prawn_cocktail-0.4.0 lib/prawn_cocktail/document.rb
prawn_cocktail-0.3.1 lib/prawn_cocktail/document.rb