Class: MetaInspector::Request
- Inherits:
-
Object
- Object
- MetaInspector::Request
- Extended by:
- Forwardable
- Defined in:
- lib/meta_inspector/request.rb
Overview
Makes the request to the server
Instance Method Summary collapse
- #content_type ⇒ Object
-
#initialize(initial_url, options = {}) ⇒ Request
constructor
A new instance of Request.
- #read ⇒ Object
- #response ⇒ Object
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, = {}) @url = initial_url fail MetaInspector::RequestError.new('URL must be HTTP') unless @url.url =~ /http[s]?:\/\//i @allow_redirections = [:allow_redirections] @connection_timeout = [:connection_timeout] @read_timeout = [:read_timeout] @retries = [:retries] @headers = [:headers] @faraday_options = [:faraday_options] || {} @faraday_http_cache = [:faraday_http_cache] response # request early so we can fail early end |
Instance Method Details
#content_type ⇒ Object
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 |
#read ⇒ Object
32 33 34 |
# File 'lib/meta_inspector/request.rb', line 32 def read response.body.tr("\000", '') if response end |
#response ⇒ Object
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 |