class JIRA::HttpClient

Constants

DEFAULT_OPTIONS

Attributes

options[R]

Public Class Methods

new(options) click to toggle source
# File lib/jira/http_client.rb, line 15
def initialize(options)
  @options = DEFAULT_OPTIONS.merge(options)
  @cookies = {}
end

Public Instance Methods

basic_auth_http_conn() click to toggle source
# File lib/jira/http_client.rb, line 30
def basic_auth_http_conn
  http_conn(uri)
end
http_conn(uri) click to toggle source
# File lib/jira/http_client.rb, line 34
def http_conn(uri)
  if @options[:proxy_address]
      http_class = Net::HTTP::Proxy(@options[:proxy_address], @options[:proxy_port] ? @options[:proxy_port] : 80)
  else
      http_class = Net::HTTP
  end
  http_conn = http_class.new(uri.host, uri.port)
  http_conn.use_ssl = @options[:use_ssl]
  http_conn.verify_mode = @options[:ssl_verify_mode]
  http_conn
end
make_request(http_method, path, body='', headers={}) click to toggle source
# File lib/jira/http_client.rb, line 20
def make_request(http_method, path, body='', headers={})
  request = Net::HTTP.const_get(http_method.to_s.capitalize).new(path, headers)
  request.body = body unless body.nil?
  add_cookies(request) if options[:use_cookies]
  request.basic_auth(@options[:username], @options[:password])
  response = basic_auth_http_conn.request(request)
  store_cookies(response) if options[:use_cookies]
  response
end
uri() click to toggle source
# File lib/jira/http_client.rb, line 46
def uri
  uri = URI.parse(@options[:site])
end

Private Instance Methods

add_cookies(request) click to toggle source
# File lib/jira/http_client.rb, line 63
def add_cookies(request)
  cookie_array = @cookies.values.map { |cookie| cookie.to_s }
  request.add_field('Cookie', cookie_array.join('; ')) if cookie_array.any?
  request
end
store_cookies(response) click to toggle source
# File lib/jira/http_client.rb, line 52
def store_cookies(response)
  cookies = response.get_fields('set-cookie')
  if cookies
    cookies.each do |cookie|
      data = CGI::Cookie.parse(cookie)
      data.delete('Path')
      @cookies.merge!(data)
    end
  end
end