class APIGeoloc::Requester

This is a Net HTTP requester class.

Public Class Methods

new(method, url, opts) click to toggle source

Class constructor method

# File lib/apigeoloc/requester.rb, line 25
def initialize(method, url, opts)
  @method = method
  @uri = URI.parse(url)
  @opts = opts
  @http = Net::HTTP.new(@uri.host, @uri.port)
  @http.use_ssl = @uri.scheme.eql?('https')
  @http.verify_mode = OpenSSL::SSL::VERIFY_NONE unless @opts['insecure']
end

Public Instance Methods

basic_auth(request) click to toggle source

Set the authentication data

# File lib/apigeoloc/requester.rb, line 35
def basic_auth(request)
  unless @opts['user'].nil? || @opts['password'].nil?
    request.basic_auth(@opts['user'], @opts['password'])
  end
  request
end
format_header(request) click to toggle source

Set the headers given as argument

# File lib/apigeoloc/requester.rb, line 43
def format_header(request)
  unless @opts['header'].nil?
    @opts['header'].split(',').each do |h|
      (key, value) = h.split(':')
      request[key] = value
    end
  end
  request
end
request() click to toggle source

Select request method

# File lib/apigeoloc/requester.rb, line 54
def request
  case @method.upcase
  when 'GET' then rest_request_get
  when 'POST' then rest_request_post
  end
end
rest_request_get() click to toggle source

GET method

# File lib/apigeoloc/requester.rb, line 62
def rest_request_get
  req = Net::HTTP::Get.new(@uri.request_uri)
  req = format_header(req)
  @http.request(req)
end
rest_request_post() click to toggle source

POST method

# File lib/apigeoloc/requester.rb, line 69
def rest_request_post
  req = Net::HTTP::Post.new(@uri.request_uri)
  req = format_header(req)
  req = basic_auth(req)
  @http.request(req)
end