Sha256: 6cb42e4a25376e8b8fdce8bc75c8fd23a3296ff16a3fbe855a2564d729c7e501

Contents?: true

Size: 930 Bytes

Versions: 3

Compression:

Stored size: 930 Bytes

Contents

require 'prawn-rails/document'

module PrawnRails
  module RailsHelper

    def prawn_document(options={})
      @filename ||= options[:filename]

      options.reverse_merge!(get_metadata)

      pdf = PrawnRails::Document.new(options)

      # Ignore headers when we're not rendering from an ActionController context.
      if defined?(controller) && controller.respond_to?(:response) && !controller.response.nil?
        disposition = options[:disposition] || "inline"
        disposition += "; filename=\"#{@filename}\"" if @filename

        # Don't override 'Content-Disposition' if we've chosen to set it elsewhere.
        controller.response.headers['Content-Disposition'] ||= disposition
      end

      yield pdf if block_given?

      pdf.render
    end

    def get_metadata
      return {} unless @filename

      {
        info: {
          Title: @filename.sub(/\.pdf$/i, '')
        }
      }
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
prawn-rails-1.4.1 lib/prawn-rails/rails_helper.rb
prawn-rails-1.4.0 lib/prawn-rails/rails_helper.rb
prawn-rails-1.3.0 lib/prawn-rails/rails_helper.rb