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