History

Better error handling and added a 15s timeout on HTTP requests

Jasper van Merle committed 7 years ago

Commit 11eeadb1 parent 1b35b212 files · +7 −6Browse files

Unified · Split

2 files
  1. lib/docs/core/doc.rb +4 −3
  2. lib/tasks/updates.thor +3 −3
lib/docs/core/doc.rb+4−3
@@ -223,13 +223,14 @@ module Docs · 222 unmodified lines
223223 end
224224
225225 opts[:logger].debug("Fetching #{url}")
226− response = Request.run(url, { headers: headers })
226+ response = Request.run(url, { connecttimeout: 15, headers: headers })
227227
228228 if response.success?
229229 response.body
230230 else
231− opts[:logger].error("Couldn't fetch #{url} (response code #{response.code})")
232− nil
231+ reason = response.timed_out? ? "Timed out while fetching #{url}" : "Couldn't fetch #{url} (response code #{response.code})"
232+ opts[:logger].error(reason)
233+ raise reason
233234 end
234235 end
235236
lib/tasks/updates.thor+3−3
@@ -72,9 +72,9 @@ class UpdatesCLI < Thor · 71 unmodified lines
7272 rescue NotImplementedError
7373 logger.warn("Couldn't check #{doc.name}, get_latest_version is not implemented")
7474 error_result(doc, '`get_latest_version` is not implemented')
75− rescue
76− logger.error("Error while checking #{doc.name}")
77− raise
75+ rescue => error
76+ logger.error("Error while checking #{doc.name}\n#{error.full_message.strip}")
77+ error_result(doc, error.message.gsub(/'/, '`'))
7878 end
7979
8080 def format_version(version)