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 28 |
# 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] @encoding = [:encoding] @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
42 43 44 45 |
# File 'lib/meta_inspector/request.rb', line 42 def content_type return nil if response.headers['content-type'].nil? response.headers['content-type'].split(';')[0] if response end |
#read ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/meta_inspector/request.rb', line 33 def read return unless response body = response.body body = body.encode!(@encoding, @encoding, :invalid => :replace) if @encoding body.tr("\000", '') rescue ArgumentError => e raise MetaInspector::RequestError.new(e) end |
#response ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/meta_inspector/request.rb', line 47 def response @response ||= fetch rescue Faraday::TimeoutError => e raise MetaInspector::TimeoutError.new(e) rescue Faraday::ConnectionFailed, Faraday::SSLError, URI::InvalidURIError, FaradayMiddleware::RedirectLimitReached => e raise MetaInspector::RequestError.new(e) end |