Make Strategy#page_headers more general purpose
This commit is contained in:
parent
1bd2be5e04
commit
7f40198506
@ -86,7 +86,7 @@ module Homebrew
|
|||||||
|
|
||||||
return @headers[url] if @headers.key?(url)
|
return @headers[url] if @headers.key?(url)
|
||||||
|
|
||||||
headers = {}
|
headers = []
|
||||||
|
|
||||||
[:default, :browser].each do |user_agent|
|
[:default, :browser].each do |user_agent|
|
||||||
stdout, _, status = curl_output(
|
stdout, _, status = curl_output(
|
||||||
@ -99,9 +99,9 @@ module Homebrew
|
|||||||
while stdout.match?(/\AHTTP.*\r$/)
|
while stdout.match?(/\AHTTP.*\r$/)
|
||||||
h, stdout = stdout.split("\r\n\r\n", 2)
|
h, stdout = stdout.split("\r\n\r\n", 2)
|
||||||
|
|
||||||
headers = headers.merge(h.split("\r\n").drop(1)
|
headers << h.split("\r\n").drop(1)
|
||||||
.map { |header| header.split(/:\s*/, 2) }
|
.map { |header| header.split(/:\s*/, 2) }
|
||||||
.to_h.transform_keys(&:downcase))
|
.to_h.transform_keys(&:downcase)
|
||||||
end
|
end
|
||||||
|
|
||||||
return (@headers[url] = headers) if status.success?
|
return (@headers[url] = headers) if status.success?
|
||||||
|
|||||||
@ -36,12 +36,16 @@ module Homebrew
|
|||||||
|
|
||||||
headers = Strategy.page_headers(url)
|
headers = Strategy.page_headers(url)
|
||||||
|
|
||||||
|
# Merge the headers from all responses into one hash
|
||||||
|
merged_headers = {}
|
||||||
|
headers.each { |resp_headers| merged_headers.merge!(resp_headers) }
|
||||||
|
|
||||||
if block
|
if block
|
||||||
match = block.call(headers)
|
match = block.call(merged_headers)
|
||||||
else
|
else
|
||||||
match = nil
|
match = nil
|
||||||
|
|
||||||
if (filename = headers["content-disposition"])
|
if (filename = merged_headers["content-disposition"])
|
||||||
if regex
|
if regex
|
||||||
match ||= location[regex, 1]
|
match ||= location[regex, 1]
|
||||||
else
|
else
|
||||||
@ -50,7 +54,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if (location = headers["location"])
|
if (location = merged_headers["location"])
|
||||||
if regex
|
if regex
|
||||||
match ||= location[regex, 1]
|
match ||= location[regex, 1]
|
||||||
else
|
else
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user