lib/oddb2xml/downloader.rb in oddb2xml-1.1.7 vs lib/oddb2xml/downloader.rb in oddb2xml-1.1.8

- old
+ new

@@ -29,18 +29,20 @@ false end end def read_xml_form_zip(target, zipfile) xml = '' - if RUBY_PLATFORM =~ /mswin/i # for memory error + if RUBY_PLATFORM =~ /mswin|mingw|bccwin|cygwin/i # for memory error Zip::ZipFile.foreach(zipfile) do |entry| if entry.name =~ target - entry.get_input_stream do |io| - while line = io.gets - xml << line - end + io = entry.get_input_stream + until io.eof? + bytes = io.read(1024) + xml << bytes + bytes = nil end + io.close end end else Zip::ZipFile.foreach(zipfile) do |entry| if entry.name =~ target @@ -59,11 +61,11 @@ def download file = 'XMLPublications.zip' begin response = @agent.get(@url) response.save_as(file) - response = nil # mswin + response = nil # win return read_xml_form_zip(/^Preparation/iu, file) rescue Timeout::Error retrievable? ? retry : raise ensure if File.exists?(file) @@ -100,25 +102,21 @@ </soap:Envelope> XML response = @client.call(:download_all, :xml => soap) if response.success? if xml = response.to_xml - response = nil # mswin + response = nil # win return xml else # received broken data or internal error raise StandardError end else raise Timeout::Error end rescue HTTPI::SSLError - puts - puts "Please install SSLv3 cert on your machine." - puts "You can check location of cert file with `ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'`." - puts "Or confirm SSL_CERT_FILE environment." - exit + raise Exception # catch me in Cli class rescue Timeout::Error retrievable? ? retry : raise end end end @@ -142,11 +140,11 @@ page = @agent.get(@url) if link_node = page.search(@xpath).first link = Mechanize::Page::Link.new(link_node, @agent, page) response = link.click response.save_as(file) - response = nil # mswin + response = nil # win end io = File.open(file, 'rb') return io.read rescue Timeout::Error retrievable? ? retry : raise @@ -201,17 +199,17 @@ def download file = "epha_interactions.csv" begin response = @agent.get(@url) response.save_as(file) - response = nil # mswin + response = nil # win io = File.open(file, 'r') return io.read rescue Timeout::Error retrievable? ? retry : raise ensure - io.close unless io.closed? # mswin + io.close unless io.closed? # win if File.exists?(file) File.unlink(file) end end end @@ -224,16 +222,16 @@ def download file = 'ywesee_bm_update.txt' begin response = @agent.get(@url) response.save_as(file) - response = nil # mswin + response = nil # win io = File.open(file, 'r') return io.read rescue Timeout::Error retrievable? ? retry : raise ensure - io.close unless io.closed? # mswin + io.close unless io.closed? # win if File.exists?(file) File.unlink(file) end end end