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
223 end223 end
224 224
225 opts[:logger].debug("Fetching #{url}")225 opts[:logger].debug("Fetching #{url}")
226 response = Request.run(url, { headers: headers })226 response = Request.run(url, { connecttimeout: 15, headers: headers })
227 227
228 if response.success?228 if response.success?
229 response.body229 response.body
230 else230 else
231 opts[:logger].error("Couldn't fetch #{url} (response code #{response.code})")231 reason = response.timed_out? ? "Timed out while fetching #{url}" : "Couldn't fetch #{url} (response code #{response.code})"
232 nil232 opts[:logger].error(reason)
233 raise reason
233 end234 end
234 end235 end
235 236
lib/tasks/updates.thor+3−3
@@ -72,9 +72,9 @@ class UpdatesCLI < Thor · 71 unmodified lines
72 rescue NotImplementedError72 rescue NotImplementedError
73 logger.warn("Couldn't check #{doc.name}, get_latest_version is not implemented")73 logger.warn("Couldn't check #{doc.name}, get_latest_version is not implemented")
74 error_result(doc, '`get_latest_version` is not implemented')74 error_result(doc, '`get_latest_version` is not implemented')
75 rescue75 rescue => error
76 logger.error("Error while checking #{doc.name}")76 logger.error("Error while checking #{doc.name}\n#{error.full_message.strip}")
77 raise77 error_result(doc, error.message.gsub(/'/, '`'))
78 end78 end
79 79
80 def format_version(version)80 def format_version(version)