stathat 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9fcaa45f9e117f54ad4e94dfbbd76eaf9c1c5f67
4
- data.tar.gz: 09713380a82ad0d6153fc15c0039cbcd6d613737
3
+ metadata.gz: eff336712e223db2cd53060be30eb5ba11d85404
4
+ data.tar.gz: 2768fc730354c4c61301b2800b0f53bbd05ce95c
5
5
  SHA512:
6
- metadata.gz: 491f1e5d91a2a59f14042ed3b384f8badd6ad8b2d6c2309437d20dc50948ac3ce63c6e4637230031dfc3ce53e2e2a2243c5790521f2d131349e45bff393790b9
7
- data.tar.gz: 41994c6a53130aa45f6f860816132bb30ff3f14df18d5f545fb2049e6055defac11ba8ee01c5e93b7600d13242d4bd6aaf99a535d2a2b1b5a57ff500b65127e7
6
+ metadata.gz: afc6a337f7578d470b6936ca93a5407e2fd3c6aec6e7806e674063c89398495c1a9f8441234c7f021595183839e0892574e3113bcd80cb91ea3ef17f28d37548
7
+ data.tar.gz: cc7e758657da5fbde268a932fd7859733ff7ab33d8c8f00cde98ebe7ba785a8577c91bf747f0ce65c2f990d94e0c5aff6c5ac9f927867ff497460e6b5166e14f
data/lib/stathat.rb CHANGED
@@ -5,6 +5,57 @@ require 'thread'
5
5
  require 'singleton'
6
6
 
7
7
  module StatHat
8
+ class Common
9
+ CLASSIC_VALUE_URL = "http://api.stathat.com/v"
10
+ CLASSIC_COUNT_URL = "http://api.stathat.com/c"
11
+ EZ_URL = "http://api.stathat.com/ez"
12
+
13
+ class << self
14
+ def send_to_stathat(url, args)
15
+ uri = URI.parse(url)
16
+ uri.query = URI.encode_www_form(args)
17
+ resp = Net::HTTP.get(uri)
18
+ return Response.new(resp)
19
+ end
20
+ end
21
+ end
22
+
23
+ class SyncAPI
24
+ class << self
25
+ def ez_post_value(stat_name, ezkey, value, timestamp=nil)
26
+ args = { :stat => stat_name,
27
+ :ezkey => ezkey,
28
+ :value => value }
29
+ args[:t] = timestamp unless timestamp.nil?
30
+ Common::send_to_stathat(Common::EZ_URL, args)
31
+ end
32
+
33
+ def ez_post_count(stat_name, ezkey, count, timestamp=nil)
34
+ args = { :stat => stat_name,
35
+ :ezkey => ezkey,
36
+ :count => count }
37
+ args[:t] = timestamp unless timestamp.nil?
38
+ Common::send_to_stathat(Common::EZ_URL, args)
39
+ end
40
+
41
+ def post_count(stat_key, user_key, count, timestamp=nil)
42
+ args = { :key => stat_key,
43
+ :ukey => user_key,
44
+ :count => count }
45
+ args[:t] = timestamp unless timestamp.nil?
46
+ Common::send_to_stathat(Common::CLASSIC_COUNT_URL, args)
47
+ end
48
+
49
+ def post_value(stat_key, user_key, value, timestamp=nil)
50
+ args = { :key => stat_key,
51
+ :ukey => user_key,
52
+ :value => value }
53
+ args[:t] = timestamp unless timestamp.nil?
54
+ Common::send_to_stathat(Common::CLASSIC_VALUE_URL, args)
55
+ end
56
+ end
57
+ end
58
+
8
59
  class API
9
60
  class << self
10
61
  def ez_post_value(stat_name, ezkey, value, timestamp=nil, &block)
@@ -28,10 +79,6 @@ module StatHat
28
79
  class Reporter
29
80
  include Singleton
30
81
 
31
- CLASSIC_VALUE_URL = "http://api.stathat.com/v"
32
- CLASSIC_COUNT_URL = "http://api.stathat.com/c"
33
- EZ_URL = "http://api.stathat.com/ez"
34
-
35
82
  def initialize
36
83
  @que = Queue.new
37
84
  @runlock = Mutex.new
@@ -48,7 +95,7 @@ module StatHat
48
95
  :ukey => user_key,
49
96
  :value => value }
50
97
  args[:t] = timestamp unless timestamp.nil?
51
- enqueue(CLASSIC_VALUE_URL, args, cb)
98
+ enqueue(Common::CLASSIC_VALUE_URL, args, cb)
52
99
  end
53
100
 
54
101
  def post_count(stat_key, user_key, count, timestamp, cb)
@@ -56,7 +103,7 @@ module StatHat
56
103
  :ukey => user_key,
57
104
  :count => count }
58
105
  args[:t] = timestamp unless timestamp.nil?
59
- enqueue(CLASSIC_COUNT_URL, args, cb)
106
+ enqueue(Common::CLASSIC_COUNT_URL, args, cb)
60
107
  end
61
108
 
62
109
  def ez_post_value(stat_name, ezkey, value, timestamp, cb)
@@ -64,7 +111,7 @@ module StatHat
64
111
  :ezkey => ezkey,
65
112
  :value => value }
66
113
  args[:t] = timestamp unless timestamp.nil?
67
- enqueue(EZ_URL, args, cb)
114
+ enqueue(Common::EZ_URL, args, cb)
68
115
  end
69
116
 
70
117
  def ez_post_count(stat_name, ezkey, count, timestamp, cb)
@@ -72,7 +119,7 @@ module StatHat
72
119
  :ezkey => ezkey,
73
120
  :count => count }
74
121
  args[:t] = timestamp unless timestamp.nil?
75
- enqueue(EZ_URL, args, cb)
122
+ enqueue(Common::EZ_URL, args, cb)
76
123
  end
77
124
 
78
125
  private
@@ -85,7 +132,7 @@ module StatHat
85
132
  point = @que.pop
86
133
  # XXX check for error?
87
134
  begin
88
- resp = send_to_stathat(point[:url], point[:args])
135
+ resp = Common::send_to_stathat(point[:url], point[:args])
89
136
  if point[:cb]
90
137
  point[:cb].call(resp)
91
138
  end
@@ -115,13 +162,6 @@ module StatHat
115
162
  @que << point
116
163
  true
117
164
  end
118
-
119
- def send_to_stathat(url, args)
120
- uri = URI.parse(url)
121
- uri.query = URI.encode_www_form(args)
122
- resp = Net::HTTP.get(uri)
123
- return Response.new(resp)
124
- end
125
165
  end
126
166
 
127
167
  class Response
data/stathat.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{stathat}
5
- s.version = "0.1.5"
5
+ s.version = "0.1.6"
6
6
  s.authors = ["StatHat"]
7
7
  s.description = %q{Easily post stats to your StatHat account using this gem. Encapsulates full API.}
8
8
  s.email = %q{info@stathat.com}
data/test/test_stathat.rb CHANGED
@@ -38,4 +38,32 @@ class TestStathat < MiniTest::Unit::TestCase
38
38
  end
39
39
  sleep(1)
40
40
  end
41
+
42
+ def test_ez_value_sync
43
+ resp = StatHat::SyncAPI.ez_post_value("test ez value stat", "test@stathat.com", 0.92)
44
+ assert(resp.valid?, "response was invalid")
45
+ assert_equal(resp.msg, "ok", "message should be 'ok'")
46
+ assert_equal(resp.status, 200, "status should be 200")
47
+ end
48
+
49
+ def test_ez_count_sync
50
+ resp = StatHat::SyncAPI.ez_post_value("test ez count stat", "test@stathat.com", 12)
51
+ assert(resp.valid?, "response was invalid")
52
+ assert_equal(resp.msg, "ok", "message should be 'ok'")
53
+ assert_equal(resp.status, 200, "status should be 200")
54
+ end
55
+
56
+ def test_classic_count_bad_keys_sync
57
+ r = StatHat::SyncAPI.post_count("XXXXXXXX", "YYYYYYYY", 12)
58
+ assert_equal(r.valid?, false, "response was valid")
59
+ assert_equal(r.msg, "invalid keys", "incorrect error message")
60
+ assert_equal(r.status, 500, "incorrect status code")
61
+ end
62
+
63
+ def test_classic_value_bad_keys_sync
64
+ r = StatHat::SyncAPI.post_value("ZZZZZZZZ", "YYYYYYYYY", 0.92)
65
+ assert_equal(r.valid?, false, "response was valid")
66
+ assert_equal(r.msg, "invalid keys", "incorrect error message")
67
+ assert_equal(r.status, 500, "incorrect status code")
68
+ end
41
69
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stathat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - StatHat
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-19 00:00:00.000000000 Z
11
+ date: 2013-03-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Easily post stats to your StatHat account using this gem. Encapsulates
14
14
  full API.