lib/eotb.rb in eotb-0.1.5 vs lib/eotb.rb in eotb-0.2.0
- old
+ new
@@ -2,27 +2,29 @@
require 'net/http'
require 'uri'
require 'json'
require File.expand_path(File.dirname(__FILE__) + '/object')
-require File.expand_path(File.dirname(__FILE__) + '/actor')
-require File.expand_path(File.dirname(__FILE__) + '/subject')
+require File.expand_path(File.dirname(__FILE__) + '/eotb_actor')
+require File.expand_path(File.dirname(__FILE__) + '/eotb_subject')
class Eotb
def self.configure(api_key, host = '127.0.0.1', port = '3000')
@@uri = URI.parse('http://' + host + ':' + port + '/apps/' + api_key + '/events')
- @@http = Net::HTTP::Post.new(@@uri.path)
+ @@post = Net::HTTP::Post.new(@@uri.path)
@@api_key = api_key
end
- def self.register_event(actor, action, subject)
+ def self.register_event(actor, action, subject = {})
api_key = { "event[app_id]" => @@api_key }
action = { "event[action]" => action }
- # TODO what if user don't send hash?
- to_post = api_key.merge(actor).merge(action).merge(subject)
- @@http.set_form_data(to_post)
+ actor = { "event[actor]" => actor }
- Net::HTTP.new(@@uri.host, @@uri.port).start { |http| http.request(@@http) }
+ subject.each { |key, value| subject["event[subject][#{key.to_s}]"] = value.to_s }
+
+ event = api_key.merge(actor).merge(action).merge(subject)
+ @@post.set_form_data(event)
+ Net::HTTP.new(@@uri.host, @@uri.port).start.request(@@post)
end
end
\ No newline at end of file