lib/async/http/relative_location.rb in async-http-0.56.5 vs lib/async/http/relative_location.rb in async-http-0.56.6
- old
+ new
@@ -26,15 +26,15 @@
module Async
module HTTP
class TooManyRedirects < StandardError
end
-
+
# A client wrapper which transparently handles both relative and absolute redirects to a given maximum number of hops.
class RelativeLocation < ::Protocol::HTTP::Middleware
DEFAULT_METHOD = GET
-
+
# maximum_hops is the max number of redirects. Set to 0 to allow 1 request with no redirects.
def initialize(app, maximum_hops = 3)
super(app)
@maximum_hops = maximum_hops
@@ -49,10 +49,10 @@
# We need to cache the body as it might be submitted multiple times.
request.finish
while hops <= @maximum_hops
response = super(request)
-
+
if response.redirection?
hops += 1
response.finish
location = response.headers['location']