Skip to content

Commit 9a6dd12

Browse files
author
Glyn Normington
committed
Refactor complex method
[#57311364]
1 parent a6a1cc8 commit 9a6dd12

1 file changed

Lines changed: 14 additions & 10 deletions

File tree

lib/java_buildpack/util/download_cache.rb

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -167,22 +167,26 @@ def self.internet_available?(filenames, uri, logger)
167167
end
168168
end
169169

170-
def self.http_get(uri, retry_limit, logger, opts = {})
170+
def self.http_get(uri, retry_limit, logger, opts = {}, &block)
171171
rich_uri = URI(uri)
172172
options = opts.merge(use_ssl: DownloadCache.use_ssl?(rich_uri))
173173
Net::HTTP.start(rich_uri.host, rich_uri.port, options) do |http|
174174
request = Net::HTTP::Get.new(uri)
175-
1.upto(retry_limit) do |try|
176-
begin
177-
http.request request do |response|
178-
if response.code == HTTP_OK || try == retry_limit
179-
return yield response
180-
end
175+
return retry_http_request(http, request, retry_limit, logger, &block)
176+
end
177+
end
178+
179+
def self.retry_http_request(http, request, retry_limit, logger)
180+
1.upto(retry_limit) do |try|
181+
begin
182+
http.request request do |response|
183+
if response.code == HTTP_OK || try == retry_limit
184+
return yield response
181185
end
182-
rescue *HTTP_ERRORS => ex
183-
logger.debug { "HTTP get attempt #{try} of #{retry_limit} failed: #{ex}" }
184-
raise ex if try == retry_limit
185186
end
187+
rescue *HTTP_ERRORS => ex
188+
logger.debug { "HTTP get attempt #{try} of #{retry_limit} failed: #{ex}" }
189+
raise ex if try == retry_limit
186190
end
187191
end
188192
end

0 commit comments

Comments
 (0)