shove 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -58,6 +58,7 @@ end
58
58
  Apps, channels, and clients can be controlled from the HTTP API
59
59
 
60
60
  Grant a connection to dan@shove.io
61
+
61
62
  ```ruby
62
63
  Shove.grant_connect("dan@shove.io") do |response|
63
64
  # handle response
@@ -226,6 +227,27 @@ channel.publish("hi!")
226
227
  channel.publish(obj.to_json)
227
228
  ```
228
229
 
230
+ Channel Keys
231
+ ------------
232
+ You can generate channel keys which allow clients of
233
+ your shove network to publish and subscribe to specific
234
+ channels.
235
+
236
+ Example: Create a key for the channel groups:788
237
+
238
+ ```ruby
239
+ key = Shove.channel_key "group:788"
240
+ ```
241
+
242
+ If it's for a particular App, use:
243
+
244
+ ```ruby
245
+ key = app.channel_key "group:788"
246
+ ```
247
+
248
+ Note: if you don't have the app key speficied for the app, the
249
+ channel key generated will not be correct.
250
+
229
251
  Using the Command Line
230
252
  ----------------------
231
253
 
data/lib/shove/app.rb CHANGED
@@ -69,6 +69,13 @@ module Shove
69
69
  Http::Request.new("#{url}/#{path}", @config)
70
70
  end
71
71
 
72
+ # Generate a channel key for a client to self authorize
73
+ # publish and subscribe actions.
74
+ # +channel+ the name of the channel
75
+ def channel_key channel
76
+ Digest::SHA1.hexdigest "#{@config.app_key}-#{channel}"
77
+ end
78
+
72
79
  ####
73
80
 
74
81
  # Connect to shove as a client in the current process
data/lib/shove.rb CHANGED
@@ -18,7 +18,7 @@ require "digest/sha1"
18
18
  # See https://github.com/shove/shove for client documentation
19
19
  module Shove
20
20
 
21
- Version = "1.0.4"
21
+ Version = "1.0.5"
22
22
 
23
23
  class ShoveException < Exception; end
24
24
 
@@ -83,15 +83,10 @@ module Shove
83
83
 
84
84
  # Create a channel key
85
85
  # +channel+ the name of the channel
86
- def channel_key channel, key=nil
87
- if key.nil?
88
- key = @config.app_key
89
- end
90
- digest = Digest::SHA1.hexdigest "#{key}-#{channel}"
86
+ def channel_key channel
87
+ @app.channel_key channel
91
88
  end
92
89
 
93
-
94
-
95
90
  end
96
91
  end
97
92
 
data/shove.gemspec CHANGED
@@ -1,6 +1,9 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require "shove"
3
+
1
4
  spec = Gem::Specification.new do |s|
2
5
  s.name = "shove"
3
- s.version = "1.0.4"
6
+ s.version = Shove::Version
4
7
  s.date = "2012-02-08"
5
8
  s.summary = "Ruby gem for leveraging shove.io, the web push platform"
6
9
  s.email = "dan@shove.io"
@@ -192,8 +192,8 @@ describe Shove::Client do
192
192
  end
193
193
 
194
194
  it "should generate a channel key" do
195
- key = Shove.channel_key "money", "key"
196
- key.should == "e627e0e305c60b6ccb164f8baafdbc8d84f0d032"
195
+ key = Shove.channel_key "money"
196
+ key.should == "6f78f2ba414a482fc5c45eb080d8877ddf1fc6ba"
197
197
  end
198
198
 
199
199
  it "should authorize on a channel" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shove
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-02-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: em-http-request
16
- requirement: &70199512602620 !ruby/object:Gem::Requirement
16
+ requirement: &70156622099200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70199512602620
24
+ version_requirements: *70156622099200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: em-ws-client
27
- requirement: &70199512546900 !ruby/object:Gem::Requirement
27
+ requirement: &70156622110300 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.1.2
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70199512546900
35
+ version_requirements: *70156622110300
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: yajl-ruby
38
- requirement: &70199508320220 !ruby/object:Gem::Requirement
38
+ requirement: &70156622116560 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.1.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70199508320220
46
+ version_requirements: *70156622116560
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: confstruct
49
- requirement: &70199508298620 !ruby/object:Gem::Requirement
49
+ requirement: &70156622111420 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 0.2.1
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70199508298620
57
+ version_requirements: *70156622111420
58
58
  description: Client side implementation for the shove.io API. See http://shove.io/documentation
59
59
  email: dan@shove.io
60
60
  executables: