Sha256: 5264e3392174228d4298422ca6a7e24dca3902628e964d5c4a4d27065b10a1c8

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

#
# Grover interface for converting HTML to PDF
#
class Grover
  #
  # @param [String] url URL of the page to convert
  # @param [Hash] options Optional parameters to pass to PDF processor
  #   see https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagepdfoptions
  #
  def initialize(url, options = {})
    @url = url
    @root_path = options.delete :root_path
    @options = options
  end

  #
  # Request URL with provided options and create PDF
  #
  # @param [String] path Optional path to write the PDF to
  # @return [Array<Integer>] Byte array of the resulting PDF
  #
  def to_pdf(path = nil)
    options = @options.dup
    options[:path] = path if path
    result = Grover::Processor.new(root_path).convert_pdf(@url, options)
    result['data'].pack('c*')
  end

  def inspect
    format(
      '#<%<class_name>s:0x%<object_id>p @url="%<url>s">',
      class_name: self.class.name,
      object_id: object_id,
      url: url
    )
  end

  private

  def root_path
    @root_path ||= File.expand_path(__dir__)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
grover-0.1.2 lib/grover/grover.rb