class Keen::HTTP::Async

Public Class Methods

new(base_url, options={}) click to toggle source
# File lib/keen/http.rb, line 56
def initialize(base_url, options={})
  if defined?(EventMachine) && EventMachine.reactor_running?
    require 'em-http-request'
  else
    raise Error, "An EventMachine loop must be running to use publish_async calls"
  end

  @base_url = base_url
  @proxy_url, @proxy_type = options.values_at(:proxy_url, :proxy_type)
end

Public Instance Methods

post(options) click to toggle source
# File lib/keen/http.rb, line 67
def post(options)
  path, headers, body = options.values_at(
    :path, :headers, :body)
  uri = "#{@base_url}#{path}"
  if @proxy_url
    proxy_uri = URI.parse(@proxy_url)
    connection_options = {:proxy =>
                              {:host => proxy_uri.host,
                               :port => proxy_uri.port,
                               :authorization => [proxy_uri.user, proxy_uri.password],
                               :type => @proxy_type || "http"}}
    http_client = EventMachine::HttpRequest.new(uri, connection_options)
  else
    http_client = EventMachine::HttpRequest.new(uri)
  end
  http_client.post(
    :body => body,
    :head => headers
  )

end