eotb 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.3.0
data/eotb.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{eotb}
8
- s.version = "0.2.2"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ragnarson"]
12
- s.date = %q{2010-07-05}
12
+ s.date = %q{2010-07-06}
13
13
  s.description = %q{Rails plugin which allow you easily track and observe your apps}
14
14
  s.email = %q{bartlomiej.kozal@ragnarson.com}
15
15
  s.extra_rdoc_files = [
@@ -27,9 +27,6 @@ Gem::Specification.new do |s|
27
27
  "VERSION",
28
28
  "eotb.gemspec",
29
29
  "lib/eotb.rb",
30
- "lib/eotb_actor.rb",
31
- "lib/eotb_subject.rb",
32
- "lib/object.rb",
33
30
  "spec/eotb_spec.rb",
34
31
  "spec/spec_helper.rb"
35
32
  ]
data/lib/eotb.rb CHANGED
@@ -3,28 +3,44 @@ require 'net/http'
3
3
  require 'uri'
4
4
  require 'json'
5
5
 
6
- require File.expand_path(File.dirname(__FILE__) + '/object')
7
- require File.expand_path(File.dirname(__FILE__) + '/eotb_actor')
8
- require File.expand_path(File.dirname(__FILE__) + '/eotb_subject')
9
-
10
6
  class Eotb
11
7
 
12
8
  def self.configure(api_key, host = '127.0.0.1', port = '3000')
13
9
  @@uri = URI.parse('http://' + host + ':' + port + '/apps/' + api_key + '/events')
14
10
  @@post = Net::HTTP::Post.new(@@uri.path)
15
- @@api_key = api_key
11
+ @@api_key = { "event[app_id]" => api_key }
16
12
  end
17
13
 
18
14
  def self.register_event(actor, action, subject = {})
19
- api_key = { "event[app_id]" => @@api_key }
20
- action = { "event[action]" => action }
21
- actor = { "event[actor]" => actor }
22
- subject_to_post = {}
23
- subject.each { |key, value| subject_to_post["event[subject][#{key.to_s}]"] = value.to_s }
24
-
25
- event = api_key.merge(actor).merge(action).merge(subject_to_post)
15
+ event = @@api_key.merge(to_actor(actor)).merge(to_action(action)).merge(to_subject(subject))
26
16
  @@post.set_form_data(event)
27
17
  Net::HTTP.new(@@uri.host, @@uri.port).start.request(@@post)
28
18
  end
29
19
 
20
+ def self.to_actor(actor)
21
+ { "event[actor]" => format(actor) }
22
+ end
23
+
24
+ def self.to_action(action)
25
+ { "event[action]" => action.to_s }
26
+ end
27
+
28
+ def self.to_subject(subject)
29
+ subject = JSON.parse subject if subject.is_a? String
30
+ subject_to_post = {}
31
+ subject.each { |key, value| subject_to_post["event[subject][#{key.to_s}]"] = format(value) }
32
+ subject_to_post
33
+ end
34
+
35
+ def self.format(object)
36
+ object_class = object.class
37
+ if [String, Symbol].member? object_class
38
+ object.to_s
39
+ elsif [Array, Hash].member? object_class
40
+ object.inspect
41
+ else
42
+ object_class
43
+ end
44
+ end
45
+
30
46
  end
data/spec/eotb_spec.rb CHANGED
@@ -3,32 +3,36 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
3
  describe Eotb do
4
4
 
5
5
  before(:each) do
6
- @response = "302"
7
- Eotb.configure("4c3128cfb3dfae0b180000e8")
6
+ @response = "200"
7
+ Eotb.configure("4c333965b3dfae07bd00000d")
8
8
  end
9
9
 
10
- it "should register only two arguments" do
11
- Eotb.register_event("actor_string", "action_string").code.should == @response
10
+ it "should register two arguments" do
11
+ Eotb.register_event("actor", "action").code.should == @response
12
12
  end
13
13
 
14
- it "should register default arguments (strings)" do
15
- Eotb.register_event("actor_string", "action_string", {:username => "John"}).code.should == @response
14
+ it "should register three arguments" do
15
+ Eotb.register_event("actor", "action", {:username => "John"}).code.should == @response
16
16
  end
17
17
 
18
- it "should register default arguments (symbols)" do
19
- Eotb.register_event(:actor_symbol, :action_symbol, {:username => "John"}).code.should == @response
18
+ it "should register symbols" do
19
+ Eotb.register_event(:actor, :action, {:username => "John"}).code.should == @response
20
20
  end
21
21
 
22
- it "should register objects with to_actor and to_subject" do
23
- Eotb.register_event(Object.new.to_actor, :action_symbol, {:username => Object.new}.to_subject).code.should == @response
22
+ it "should register objects" do
23
+ Eotb.register_event(Object.new, :action, {:username => Object.new}).code.should == @response
24
+ end
25
+
26
+ it "should register hashes" do
27
+ Eotb.register_event({:type => "User"}, :action, {:username => "John"}).code.should == @response
24
28
  end
25
29
 
26
- it "should generate JSON from subject" do
27
- {:username => "John"}.to_subject.to_json.should == JSON.generate({:username => "John"})
30
+ it "should register arrays" do
31
+ Eotb.register_event([2,3,4], :action, {:username => ["John", "Josh"]}).code.should == @response
28
32
  end
29
33
 
30
- # it "should parse JSON from subject" do
31
- # {:username => "John"}.to_subject.to_json.to_hash.should == JSON.generate({:username => "String"})
32
- # end
34
+ it "should register subject in json" do
35
+ Eotb.register_event(:actor, :action, "{\"username\":\"John\"}").code.should == @response
36
+ end
33
37
 
34
38
  end
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 2
10
- version: 0.2.2
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ragnarson
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-05 00:00:00 +02:00
18
+ date: 2010-07-06 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -70,9 +70,6 @@ files:
70
70
  - VERSION
71
71
  - eotb.gemspec
72
72
  - lib/eotb.rb
73
- - lib/eotb_actor.rb
74
- - lib/eotb_subject.rb
75
- - lib/object.rb
76
73
  - spec/eotb_spec.rb
77
74
  - spec/spec_helper.rb
78
75
  has_rdoc: true
data/lib/eotb_actor.rb DELETED
@@ -1,13 +0,0 @@
1
- class EotbActor
2
-
3
- attr_reader :actor
4
-
5
- def initialize(object)
6
- @actor = object.inspect
7
- end
8
-
9
- def inspect
10
- @actor.inspect
11
- end
12
-
13
- end
data/lib/eotb_subject.rb DELETED
@@ -1,22 +0,0 @@
1
- class EotbSubject
2
-
3
- attr_reader :subject
4
-
5
- def initialize(object)
6
- @subject = {}
7
- @subject.merge(object).each { |key, value| subject[key] = value.to_s }
8
- end
9
-
10
- def to_json
11
- @subject = JSON.generate(@subject)
12
- end
13
-
14
- # def to_hash
15
- # @subject = JSON.parse(@subject)
16
- # end
17
-
18
- def inspect
19
- @subject.inspect
20
- end
21
-
22
- end
data/lib/object.rb DELETED
@@ -1,15 +0,0 @@
1
- class Object
2
-
3
- def to_actor
4
- EotbActor.new(self).actor
5
- end
6
-
7
- end
8
-
9
- class Hash
10
-
11
- def to_subject
12
- EotbSubject.new(self).subject
13
- end
14
-
15
- end