class Firmenwissen::HttpRequest

Attributes

options[R]
params[R]
uri[R]

Public Class Methods

new(uri, options = {}) click to toggle source
# File lib/firmenwissen/http_request.rb, line 3
def initialize(uri, options = {})
  @uri = uri
  @options = options
end

Public Instance Methods

execute() click to toggle source
# File lib/firmenwissen/http_request.rb, line 8
def execute
  http = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.use_ssl?)
  http.read_timeout = config.timeout
  http.request(request, &method(:extract_session))
ensure
  http.finish
  http
end

Protected Instance Methods

config() click to toggle source
# File lib/firmenwissen/http_request.rb, line 30
def config
  @config ||= Firmenwissen.configuration.merge(options)
end
extract_session(response) click to toggle source
# File lib/firmenwissen/http_request.rb, line 34
def extract_session(response)
  return unless config.persistent_session?

  Firmenwissen::Session.update_from_set_cookie_headers(response.get_fields('Set-Cookie'))
end
request() click to toggle source
# File lib/firmenwissen/http_request.rb, line 21
def request
  @request ||= begin
    Net::HTTP::Get.new(uri).tap do |req|
      req.basic_auth(config.user, config.password)
      req.add_field('Cookie', session_cookie) if config.persistent_session? && !session_cookie.empty?
    end
  end
end