Class: Oddb2xml::SwissmedicInfoDownloader
Instance Attribute Summary
Attributes inherited from Downloader
#agent, #type, #url
Instance Method Summary
collapse
Methods inherited from Downloader
#initialize, #report_download
Instance Method Details
#download ⇒ Object
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
|
# File 'lib/oddb2xml/downloader.rb', line 327
def download
file = File.join(Downloads, "swissmedic_info.zip")
report_download(@url, file)
FileUtils.rm_f(file, :verbose => false) unless Oddb2xml.skip_download?
begin
response = nil
if home = @agent.get(@url)
form = home.form_with(:id => 'Form1')
bttn = form.button_with(:name => 'ctl00$MainContent$btnOK')
if page = form.submit(bttn)
form = page.form_with(:id => 'Form1')
bttn = form.button_with(:name => 'ctl00$MainContent$BtnYes')
response = form.submit(bttn)
end
end
if response
response.save_as(file)
response = nil end
rescue Timeout::Error, Errno::ETIMEDOUT
retrievable? ? retry : raise
rescue NoMethodError
ensure
Oddb2xml.download_finished(file)
end unless File.exists?(file)
read_xml_from_zip(/^AipsDownload_/iu, file)
end
|
#init ⇒ Object
322
323
324
325
326
|
# File 'lib/oddb2xml/downloader.rb', line 322
def init
super
@agent.ignore_bad_chunking = true
@url ||= "http://download.swissmedicinfo.ch/Accept.aspx?ReturnUrl=%2f"
end
|