webhook_stopwatch_client 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  require 'redis'
2
- require 'multi_json'
2
+ require 'oj'
3
3
 
4
4
  module WebhookStopwatch
5
5
  class Client
@@ -21,23 +21,31 @@ module WebhookStopwatch
21
21
  publish_event("stop", message_id, timestamp)
22
22
  end
23
23
 
24
+ def ping
25
+ publish(encode_json({}))
26
+ end
27
+
24
28
  private
25
29
 
26
30
  def publish_event(event, message_id, timestamp)
27
- redis.publish(channel, encode_json({"message_id" => message_id,
28
- "timestamp" => timestamp,
29
- "event" => event}))
31
+ publish(encode_json("message_id" => message_id,
32
+ "timestamp" => timestamp,
33
+ "event" => event))
30
34
  true
31
35
  rescue Exception
32
36
  return false
33
37
  end
34
38
 
39
+ def publish(message)
40
+ redis.publish(channel, message)
41
+ end
42
+
35
43
  def channel
36
44
  "webhook_stopwatch:events"
37
45
  end
38
46
 
39
47
  def encode_json(payload)
40
- MultiJson.dump(payload)
48
+ Oj.dump(payload)
41
49
  end
42
50
  end
43
51
  end
@@ -15,7 +15,7 @@ describe WebhookStopwatch::Client do
15
15
  Redis.should_not_receive(:new)
16
16
  redis.should_receive(:publish).
17
17
  with("webhook_stopwatch:events",
18
- MultiJson.dump({"message_id" => 123, "timestamp" => 1000000, "event" => "start"}))
18
+ Oj.dump({"message_id" => 123, "timestamp" => 1000000, "event" => "start"}))
19
19
  WebhookStopwatch::Client.new(redis).start(123, 1000000)
20
20
  end
21
21
 
@@ -27,7 +27,7 @@ describe WebhookStopwatch::Client do
27
27
  it "publishes a message to redis" do
28
28
  redis.should_receive(:publish).
29
29
  with("webhook_stopwatch:events",
30
- MultiJson.dump({"message_id" => 123, "timestamp" => 1000000, "event" => "start"}))
30
+ Oj.dump({"message_id" => 123, "timestamp" => 1000000, "event" => "start"}))
31
31
  subject.start(123, 1000000)
32
32
  end
33
33
 
@@ -51,7 +51,7 @@ describe WebhookStopwatch::Client do
51
51
  Redis.should_not_receive(:new)
52
52
  redis.should_receive(:publish).
53
53
  with("webhook_stopwatch:events",
54
- MultiJson.dump({"message_id" => 123, "timestamp" => 1000000, "event" => "stop"}))
54
+ Oj.dump({"message_id" => 123, "timestamp" => 1000000, "event" => "stop"}))
55
55
  WebhookStopwatch::Client.new(redis).stop(123, 1000000)
56
56
  end
57
57
 
@@ -63,7 +63,7 @@ describe WebhookStopwatch::Client do
63
63
  it "publishes a message to redis" do
64
64
  redis.should_receive(:publish).
65
65
  with("webhook_stopwatch:events",
66
- MultiJson.dump({"message_id" => 123, "timestamp" => 1000000, "event" => "stop"}))
66
+ Oj.dump({"message_id" => 123, "timestamp" => 1000000, "event" => "stop"}))
67
67
 
68
68
  subject.stop(123, 1000000)
69
69
  end
@@ -82,4 +82,16 @@ describe WebhookStopwatch::Client do
82
82
  end
83
83
  end
84
84
  end
85
+
86
+ describe "#ping" do
87
+ it "sends an empty event" do
88
+ redis.should_receive(:publish).with("webhook_stopwatch:events", "{}")
89
+
90
+ subject.ping
91
+ end
92
+
93
+ it "returns the subscriber count" do
94
+ subject.ping.should == 1
95
+ end
96
+ end
85
97
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "webhook_stopwatch_client"
5
- spec.version = "0.1.1"
5
+ spec.version = "0.1.3"
6
6
  spec.authors = ["Donald Plummer", "Michael Xavier"]
7
7
  spec.email = ["donald@crystalcommerce.com", "xavier@crystalcommerce.com"]
8
8
  spec.description = %q{Client for sending events to webhook stopwatch}
@@ -15,9 +15,8 @@ Gem::Specification.new do |spec|
15
15
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
16
16
  spec.require_paths = ["lib"]
17
17
 
18
- spec.add_dependency "faraday"
19
18
  spec.add_dependency "redis"
20
- spec.add_dependency "multi_json"
19
+ spec.add_dependency "oj"
21
20
 
22
21
  spec.add_development_dependency "bundler", "~> 1.3"
23
22
  spec.add_development_dependency "rake"
metadata CHANGED
@@ -1,137 +1,119 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: webhook_stopwatch_client
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
4
5
  prerelease:
5
- version: 0.1.1
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 3
10
+ version: 0.1.3
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Donald Plummer
9
14
  - Michael Xavier
10
15
  autorequire:
11
16
  bindir: bin
12
17
  cert_chain: []
13
- date: 2013-03-18 00:00:00.000000000 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
18
+
19
+ date: 2013-03-20 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: redis
16
23
  prerelease: false
17
- type: :runtime
18
- name: faraday
19
- version_requirements: !ruby/object:Gem::Requirement
24
+ requirement: &id001 !ruby/object:Gem::Requirement
20
25
  none: false
21
- requirements:
22
- - - ! '>='
23
- - !ruby/object:Gem::Version
24
- version: '0'
25
- requirement: !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ! '>='
29
- - !ruby/object:Gem::Version
30
- version: '0'
31
- - !ruby/object:Gem::Dependency
32
- prerelease: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
33
  type: :runtime
34
- name: redis
35
- version_requirements: !ruby/object:Gem::Requirement
36
- none: false
37
- requirements:
38
- - - ! '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- requirement: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ! '>='
45
- - !ruby/object:Gem::Version
46
- version: '0'
47
- - !ruby/object:Gem::Dependency
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: oj
48
37
  prerelease: false
49
- type: :runtime
50
- name: multi_json
51
- version_requirements: !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ! '>='
55
- - !ruby/object:Gem::Version
56
- version: '0'
57
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &id002 !ruby/object:Gem::Requirement
58
39
  none: false
59
- requirements:
60
- - - ! '>='
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
- - !ruby/object:Gem::Dependency
64
- prerelease: false
65
- type: :development
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
66
50
  name: bundler
67
- version_requirements: !ruby/object:Gem::Requirement
68
- none: false
69
- requirements:
70
- - - ~>
71
- - !ruby/object:Gem::Version
72
- version: '1.3'
73
- requirement: !ruby/object:Gem::Requirement
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
74
53
  none: false
75
- requirements:
54
+ requirements:
76
55
  - - ~>
77
- - !ruby/object:Gem::Version
78
- version: '1.3'
79
- - !ruby/object:Gem::Dependency
80
- prerelease: false
56
+ - !ruby/object:Gem::Version
57
+ hash: 9
58
+ segments:
59
+ - 1
60
+ - 3
61
+ version: "1.3"
81
62
  type: :development
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
82
65
  name: rake
83
- version_requirements: !ruby/object:Gem::Requirement
84
- none: false
85
- requirements:
86
- - - ! '>='
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
- requirement: !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
92
- - - ! '>='
93
- - !ruby/object:Gem::Version
94
- version: '0'
95
- - !ruby/object:Gem::Dependency
96
66
  prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
97
76
  type: :development
77
+ version_requirements: *id004
78
+ - !ruby/object:Gem::Dependency
98
79
  name: guard-rspec
99
- version_requirements: !ruby/object:Gem::Requirement
100
- none: false
101
- requirements:
102
- - - ! '>='
103
- - !ruby/object:Gem::Version
104
- version: '0'
105
- requirement: !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
80
  prerelease: false
81
+ requirement: &id005 !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ hash: 3
87
+ segments:
88
+ - 0
89
+ version: "0"
113
90
  type: :development
91
+ version_requirements: *id005
92
+ - !ruby/object:Gem::Dependency
114
93
  name: rspec
115
- version_requirements: !ruby/object:Gem::Requirement
116
- none: false
117
- requirements:
118
- - - ! '>='
119
- - !ruby/object:Gem::Version
120
- version: '0'
121
- requirement: !ruby/object:Gem::Requirement
94
+ prerelease: false
95
+ requirement: &id006 !ruby/object:Gem::Requirement
122
96
  none: false
123
- requirements:
124
- - - ! '>='
125
- - !ruby/object:Gem::Version
126
- version: '0'
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ hash: 3
101
+ segments:
102
+ - 0
103
+ version: "0"
104
+ type: :development
105
+ version_requirements: *id006
127
106
  description: Client for sending events to webhook stopwatch
128
- email:
107
+ email:
129
108
  - donald@crystalcommerce.com
130
109
  - xavier@crystalcommerce.com
131
110
  executables: []
111
+
132
112
  extensions: []
113
+
133
114
  extra_rdoc_files: []
134
- files:
115
+
116
+ files:
135
117
  - .gitignore
136
118
  - .rspec
137
119
  - Gemfile
@@ -144,32 +126,40 @@ files:
144
126
  - spec/lib/webhook_stopwatch/client_spec.rb
145
127
  - spec/spec_helper.rb
146
128
  - webhook_stopwatch_client.gemspec
147
- homepage: ''
148
- licenses:
129
+ homepage: ""
130
+ licenses:
149
131
  - MIT
150
132
  post_install_message:
151
133
  rdoc_options: []
152
- require_paths:
134
+
135
+ require_paths:
153
136
  - lib
154
- required_ruby_version: !ruby/object:Gem::Requirement
137
+ required_ruby_version: !ruby/object:Gem::Requirement
155
138
  none: false
156
- requirements:
157
- - - ! '>='
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- required_rubygems_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ hash: 3
143
+ segments:
144
+ - 0
145
+ version: "0"
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
161
147
  none: false
162
- requirements:
163
- - - ! '>='
164
- - !ruby/object:Gem::Version
165
- version: '0'
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ hash: 3
152
+ segments:
153
+ - 0
154
+ version: "0"
166
155
  requirements: []
156
+
167
157
  rubyforge_project:
168
- rubygems_version: 1.8.25
158
+ rubygems_version: 1.8.17
169
159
  signing_key:
170
160
  specification_version: 3
171
161
  summary: Client for sending events to webhook stopwatch
172
- test_files:
162
+ test_files:
173
163
  - spec/lib/webhook_stopwatch/client_spec.rb
174
164
  - spec/spec_helper.rb
175
165
  has_rdoc: