Class: MetaInspector::Request

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/meta_inspector/request.rb

Overview

Makes the request to the server

Instance Method Summary collapse

Constructor Details

#initialize(initial_url, options = {}) ⇒ Request

Returns a new instance of Request.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/meta_inspector/request.rb', line 13

def initialize(initial_url, options = {})
  @url                = initial_url

  fail MetaInspector::RequestError.new('URL must be HTTP') unless @url.url =~ /http[s]?:\/\//i

  @allow_redirections = options[:allow_redirections]
  @connection_timeout = options[:connection_timeout]
  @read_timeout       = options[:read_timeout]
  @retries            = options[:retries]
  @headers            = options[:headers]
  @faraday_options    = options[:faraday_options] || {}
  @faraday_http_cache = options[:faraday_http_cache]

  response            # request early so we can fail early
end

Instance Method Details

#content_typeObject



36
37
38
39
# File 'lib/meta_inspector/request.rb', line 36

def content_type
  return nil if response.headers['content-type'].nil?
  response.headers['content-type'].split(';')[0] if response
end

#readObject



32
33
34
# File 'lib/meta_inspector/request.rb', line 32

def read
  response.body.tr("\000", '') if response
end

#responseObject



41
42
43
44
45
46
47
# File 'lib/meta_inspector/request.rb', line 41

def response
  @response ||= fetch
rescue Faraday::TimeoutError => e
  raise MetaInspector::TimeoutError.new(e)
rescue Faraday::Error::ConnectionFailed, Faraday::SSLError, URI::InvalidURIError, FaradayMiddleware::RedirectLimitReached => e
  raise MetaInspector::RequestError.new(e)
end