lib/wicked_pdf.rb in wicked_pdf-0.9.5 vs lib/wicked_pdf.rb in wicked_pdf-0.9.6

- old
+ new

@@ -35,11 +35,11 @@ def retreive_binary_version begin stdin, stdout, stderr = Open3.popen3(@exe_path + ' -V') @binary_version = parse_version(stdout.gets(nil)) - rescue StandardError + rescue StandardError end end def pdf_from_string(string, options={}) if WickedPdf.config[:retreive_version] @@ -54,20 +54,23 @@ command = "\"#{@exe_path}\" #{'-q ' unless on_windows?}#{parse_options(options)} \"file:///#{string_file.path}\" \"#{generated_pdf_file.path}\" " # -q for no errors on stdout print_command(command) if in_development_mode? err = Open3.popen3(command) do |stdin, stdout, stderr| stderr.read end + if return_file = options.delete(:return_file) + return generated_pdf_file + end generated_pdf_file.rewind generated_pdf_file.binmode pdf = generated_pdf_file.read raise "PDF could not be generated!\n Command Error: #{err}" if pdf and pdf.rstrip.length == 0 pdf rescue Exception => e raise "Failed to execute:\n#{command}\nError: #{e}" ensure string_file.close! if string_file - generated_pdf_file.close! if generated_pdf_file + generated_pdf_file.close! if generated_pdf_file && !return_file end private def in_development_mode? @@ -86,11 +89,11 @@ def print_command(cmd) p "*"*15 + cmd + "*"*15 end def parse_version(version_info) - match_data = /wkhtmltopdf\s*(\d*\.\d*\.\d*\w*)/.match(version_info) - if (match_data && (2 == match_data.length)) + match_data = /wkhtmltopdf\s*(\d*\.\d*\.\d*\w*)/.match(version_info) + if (match_data && (2 == match_data.length)) Gem::Version.new(match_data[1]) else DEFAULT_BINARY_VERSION end end