module HTTPX::Plugins::FollowRedirects::RequestMethods

  1. lib/httpx/plugins/follow_redirects.rb

Attributes

root_request [RW]

returns the top-most original HTTPX::Request from the redirect chain

Public Class methods

new(*)
[show source]
    # File lib/httpx/plugins/follow_redirects.rb
206 def initialize(*)
207   super
208   @redirect_request = nil
209 end

Public Instance methods

emit_response(response)
[show source]
    # File lib/httpx/plugins/follow_redirects.rb
242 def emit_response(response)
243   return super unless @redirect_request && @response.nil?
244 
245   @redirect_request.emit_response(response)
246 end
max_redirects()
[show source]
    # File lib/httpx/plugins/follow_redirects.rb
248 def max_redirects
249   @options.max_redirects || MAX_REDIRECTS
250 end
on_response_arrived=(cb)
[show source]
    # File lib/httpx/plugins/follow_redirects.rb
211 def on_response_arrived=(cb)
212   @redirect_request.on_response_arrived = cb if @redirect_request
213 
214   super
215 end
redirect_request()

returns the follow-up redirect request, or itself

[show source]
    # File lib/httpx/plugins/follow_redirects.rb
218 def redirect_request
219   @redirect_request || self
220 end
redirect_request=(req)

sets the follow-up redirect request

[show source]
    # File lib/httpx/plugins/follow_redirects.rb
223 def redirect_request=(req)
224   @redirect_request = req
225   req.root_request = @root_request || self
226   req.on_response_arrived = @on_response_arrived
227   @response = nil
228 end
response()
[show source]
    # File lib/httpx/plugins/follow_redirects.rb
230 def response
231   return super unless @redirect_request && @response.nil?
232 
233   @redirect_request.response
234 end
response=(response)
[show source]
    # File lib/httpx/plugins/follow_redirects.rb
236 def response=(response)
237   return super unless @redirect_request && @response.nil? # rubocop:disable Lint/ReturnInVoidContext
238 
239   @redirect_request.response = response
240 end