Skip to content

Instantly share code, notes, and snippets.

@lulalala
Created November 11, 2014 09:30
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save lulalala/6be104641bcb60f9d0e8 to your computer and use it in GitHub Desktop.
Save lulalala/6be104641bcb60f9d0e8 to your computer and use it in GitHub Desktop.
RedirectResolver
require 'uri'
require 'net/http'
class RedirectResolver
def self.resolve(uri)
uri_input = uri
if uri.is_a? String
uri = URI.parse(uri)
end
response = Net::HTTP.get_response(uri)
if response.is_a? Net::HTTPRedirection
redirected_uri = URI.parse(response['location'])
if redirected_uri.is_a? URI::Generic
redirected_uri = uri.merge(redirected_uri)
end
resolve(redirected_uri).to_s
else
uri_input
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment