lib/grover.rb in grover-0.1.2 vs lib/grover.rb in grover-0.2.0

- old
+ new

@@ -1,5 +1,53 @@ require 'grover/version' require 'grover/utils' require 'grover/processor' -require 'grover/grover' +require 'grover/middleware' + +# +# 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 = processor.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 ||= Dir.pwd + end + + def processor + Grover::Processor.new(root_path) + end +end