lib/eotb.rb in eotb-0.3.1 vs lib/eotb.rb in eotb-0.4.0

- old
+ new

@@ -10,37 +10,25 @@ @@post = Net::HTTP::Post.new(@@uri.path) @@api_key = { "event[app_id]" => api_key } end def self.register_event(actor, action, subject = {}) - event = @@api_key.merge(to_actor(actor)).merge(to_action(action)).merge(to_subject(subject)) + actor = { "event[actor]" => format(actor) } + action = { "event[action]" => action.to_s } + data = {} + subject.each { |key, value| data["event[subject][#{key.to_s}]"] = format(value) } + + event = @@api_key.merge(actor).merge(action).merge(data) + @@post.set_form_data(event) Net::HTTP.new(@@uri.host, @@uri.port).start.request(@@post) end - def self.to_actor(actor) - { "event[actor]" => format(actor) } - end - - def self.to_action(action) - { "event[action]" => action.to_s } - end - - def self.to_subject(subject) - subject = JSON.parse subject if subject.is_a? String - subject_to_post = {} - subject.each { |key, value| subject_to_post["event[subject][#{key.to_s}]"] = format(value) } - subject_to_post - end - def self.format(object) - object_class = object.class - if [String, Symbol].member? object_class - object.to_s - elsif [Array, Hash].member? object_class - object.inspect + if object.respond_to? :to_json + object.to_json else - object_class + object.inspect end end end \ No newline at end of file