class Mole::Transport::BasicHttp

Constants

CONTENT_TYPE

Attributes

host[R]
port[R]
token[R]
version[R]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/orwell/mole/transport/basic_http.rb, line 11
def initialize(opts = {})
  @host    = opts[:host]
  @port    = opts[:port]
  @token   = opts[:api_token]
  @version = opts[:api_version]
end

Public Instance Methods

perform(event) click to toggle source
# File lib/orwell/mole/transport/basic_http.rb, line 18
def perform(event)
  json     = event_json(event)
  response = post(json)
  success(response)
end

Private Instance Methods

event_json(event) click to toggle source
# File lib/orwell/mole/transport/basic_http.rb, line 36
def event_json(event)
  JSON.generate(event.to_h)
end
headers() click to toggle source
# File lib/orwell/mole/transport/basic_http.rb, line 40
def headers
  {
    'Accept'       => "#{CONTENT_TYPE}; version=#{version}",
    'Content-Type' => CONTENT_TYPE,
    'Orwell-Token' => token
  }
end
post(params) click to toggle source
# File lib/orwell/mole/transport/basic_http.rb, line 30
def post(params)
  Net::HTTP.start(host, port) do |http|
    http.post('/events', params, headers)
  end
end
success(resp) click to toggle source
# File lib/orwell/mole/transport/basic_http.rb, line 26
def success(resp)
  resp.is_a? Net::HTTPSuccess
end