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