Fix uninitialized constant error in GitHub.open

The error handling depends on side effects of `require "net/https"`,
so it should be wrapped in an explicit begin block.

cf. Homebrew/homebrew#30407.
This commit is contained in:
Jack Nagel 2014-06-24 20:59:26 -05:00
parent 3d69e5ab7b
commit 2daabe9863

View File

@ -311,15 +311,18 @@ module GitHub extend self
}
default_headers['Authorization'] = "token #{HOMEBREW_GITHUB_API_TOKEN}" if HOMEBREW_GITHUB_API_TOKEN
Kernel.open(url, default_headers.merge(headers)) do |f|
yield Utils::JSON.load(f.read)
begin
Kernel.open(url, default_headers.merge(headers)) do |f|
yield Utils::JSON.load(f.read)
end
rescue OpenURI::HTTPError => e
handle_api_error(e)
rescue SocketError, OpenSSL::SSL::SSLError => e
raise Error, "Failed to connect to: #{url}\n#{e.message}", e.backtrace
rescue Utils::JSON::Error => e
raise Error, "Failed to parse JSON response\n#{e.message}", e.backtrace
end
rescue OpenURI::HTTPError => e
handle_api_error(e)
rescue SocketError, OpenSSL::SSL::SSLError => e
raise Error, "Failed to connect to: #{url}\n#{e.message}", e.backtrace
rescue Utils::JSON::Error => e
raise Error, "Failed to parse JSON response\n#{e.message}", e.backtrace
end
def handle_api_error(e)