A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://rubydoc.info/github/piotrmurach/github/master/Github/Response/FollowRedirects below:

FollowRedirects – Documentation for piotrmurach/github (master) – RubyDoc.info

Class: Github::Response::FollowRedirects
Inherits:
Faraday::Middleware show all
Defined in:
lib/github_api/response/follow_redirects.rb
Overview

Public: Follow HTTP 301, 302, 303, 307, and 308 redirects.

For HTTP 301, 302, and 303, the original GET, POST, PUT, DELETE, or PATCH request gets converted into a GET. With ‘:standards_compliant => true`, however, the HTTP method after 301/302 remains unchanged. This allows you to opt into HTTP/1.1 compliance and act unlike the major web browsers.

This middleware currently only works with synchronous requests; i.e. it doesn’t support parallelism.

If you wish to persist cookies across redirects, you could use the faraday-cookie_jar gem:

Faraday.new(:url => url) do |faraday|
  faraday.use FaradayMiddleware::FollowRedirects
  faraday.use :cookie_jar
  faraday.adapter Faraday.default_adapter
end
Constant Summary collapse
ALLOWED_METHODS =

HTTP methods for which 30x redirects can be followed

Set.new [:head, :options, :get, :post, :put, :patch, :delete]
REDIRECT_CODES =

HTTP redirect status codes that this middleware implements

Set.new [301, 302, 303, 307, 308]
ENV_TO_CLEAR =

Keys in env hash which will get cleared between requests

Set.new [:status, :response, :response_headers]
FOLLOW_LIMIT =

Default value for max redirects followed

3
URI_UNSAFE =

Regex that matches characters that need to be escaped in URLs, sans the “%” character which we assume already represents an escaped sequence.

/[^\-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]%]/
Instance Method Summary collapse Constructor Details #initialize(app, options = {}) ⇒ FollowRedirects

Public: Initialize the middleware.

options - An options Hash (default: {}):

:limit               - A Numeric redirect limit (default: 3)
:standards_compliant - A Boolean indicating whether to respect
                       the HTTP spec when following 301/302
                       (default: false)
:callback            - A callable that will be called on redirects
                       with the old and new envs
63
64
65
66
67
68
69
# File 'lib/github_api/response/follow_redirects.rb', line 63

def initialize(app, options = {})
  super(app)
  @options = options

  @convert_to_get = Set.new [303]
  @convert_to_get << 301 << 302 unless standards_compliant?
end
Instance Method Details #call(env) ⇒ Object
71
72
73
# File 'lib/github_api/response/follow_redirects.rb', line 71

def call(env)
  perform_with_redirection(env, follow_limit)
end

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4