Sha256: 4cc4d55faf103f83801308f8afddccb334f4a8c87531eb10ec63d58b87a64127
Contents?: true
Size: 1.13 KB
Versions: 3
Compression:
Stored size: 1.13 KB
Contents
# -*- encoding: utf-8 -*- require 'open-uri' require 'open_uri_redirections' require 'timeout' module MetaInspector # Makes the request to the server class Request include MetaInspector::Exceptionable def initialize(initial_url, options = {}) options = defaults.merge(options) @url = initial_url @allow_redirections = options[:allow_redirections] @timeout = options[:timeout] @exception_log = options[:exception_log] end extend Forwardable def_delegators :@url, :url def read response.read if response end def content_type response.content_type if response end private def response Timeout::timeout(@timeout) { @response ||= fetch } rescue TimeoutError, SocketError, RuntimeError => e @exception_log << e nil end def fetch request = open(url, {:allow_redirections => @allow_redirections}) @url.url = request.base_uri.to_s request end def defaults { allow_redirections: false, timeout: 20, exception_log: MetaInspector::ExceptionLog.new } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
metainspector-2.0.0 | lib/meta_inspector/request.rb |
metainspector-1.17.3 | lib/meta_inspector/request.rb |
metainspector-1.17.2 | lib/meta_inspector/request.rb |