Sha256: cfb3940ac074046520fe5bdcad3cf05e5767c146a273907f6da00af723916a42
Contents?: true
Size: 1.66 KB
Versions: 2
Compression:
Stored size: 1.66 KB
Contents
require 'faraday' require 'faraday_middleware' require 'faraday-cookie_jar' module MetaInspector # Makes the request to the server class Request include MetaInspector::Exceptionable def initialize(initial_url, options = {}) @url = initial_url @allow_redirections = options[:allow_redirections] @connection_timeout = options[:connection_timeout] @read_timeout = options[:read_timeout] @retries = options[:retries] @exception_log = options[:exception_log] @headers = options[:headers] response # request early so we can fail early end extend Forwardable delegate :url => :@url def read response.body if response end def content_type return nil if response.headers['content-type'].nil? response.headers['content-type'].split(';')[0] if response end def response @response ||= fetch rescue Faraday::TimeoutError, Faraday::Error::ConnectionFailed, RuntimeError => e @exception_log << e nil end private def fetch session = Faraday.new(:url => url) do |faraday| faraday.request :retry, max: @retries if @allow_redirections faraday.use FaradayMiddleware::FollowRedirects, limit: 10 faraday.use :cookie_jar end faraday.headers.merge!(@headers || {}) faraday.adapter :net_http end response = session.get do |req| req.options.timeout = @connection_timeout req.options.open_timeout = @read_timeout end @url.url = response.env.url.to_s response end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
metainspector-4.3.2 | lib/meta_inspector/request.rb |
metainspector-4.3.1 | lib/meta_inspector/request.rb |