Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

gist_plugin: Handle multiple redirects, stopping if we find a circula…

…r reference
  • Loading branch information...
commit a66e031166183fde3cccfc0808aff447d5b0157a 1 parent 0ead88e
@duckpuppy duckpuppy authored
Showing with 5 additions and 1 deletion.
  1. +5 −1 plugins/gist_tag.rb
View
6 plugins/gist_tag.rb
@@ -78,8 +78,11 @@ def get_gist_from_web(gist, file)
gist_url = get_gist_url_for(gist, file)
data = get_web_content(gist_url)
- if data.code.to_i == 302
+ locations = Array.new
+ while (data.code.to_i == 301 || data.code.to_i == 302)
data = handle_gist_redirecting(data)
+ break if locations.include? data.header['Location']
+ locations << data.header['Location']
end
if data.code.to_i != 200
@@ -95,6 +98,7 @@ def handle_gist_redirecting(data)
if redirected_url.nil? || redirected_url.empty?
raise ArgumentError, "GitHub replied with a 302 but didn't provide a location in the response headers."
end
+
get_web_content(redirected_url)
end
Please sign in to comment.
Something went wrong with that request. Please try again.