pubnub-ruby 0.0.7 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/README ADDED
@@ -0,0 +1,55 @@
1
+ Pubnub - http://github/pubnub/pubnub-api
2
+ @poptartinc on Twitter, @poptart on Github
3
+
4
+ ## ------------------------------------------
5
+ ## PubNub 3.0 Real-time Cloud Push API - RUBY
6
+ ## ------------------------------------------
7
+ ##
8
+ ## www.pubnub.com - PubNub Real-time Push Service in the Cloud.
9
+ ## http://www.pubnub.com/blog/ruby-push-api
10
+ ##
11
+ ## PubNub is a Massively Scalable Real-time Service for Web and Mobile Games.
12
+ ## This is a cloud-based service for broadcasting Real-time messages
13
+ ## to thousands of web and mobile clients simultaneously.
14
+
15
+ ## -------------
16
+ ## Ruby Push API
17
+ ## -------------
18
+ pubnub = Pubnub.new(
19
+ "demo", ## PUBLISH_KEY
20
+ "demo", ## SUBSCRIBE_KEY
21
+ "", ## SECRET_KEY
22
+ false ## SSL_ON?
23
+ )
24
+
25
+ # -------
26
+ # PUBLISH
27
+ # -------
28
+ # Send Message
29
+ info = pubnub.publish({
30
+ 'channel' => 'hello_world',
31
+ 'message' => { 'text' => 'some text data' }
32
+ })
33
+ puts(info)
34
+
35
+ # ---------
36
+ # SUBSCRIBE
37
+ # ---------
38
+ # Listen for Messages *BLOCKING*
39
+ pubnub.subscribe({
40
+ 'channel' => 'hello_world',
41
+ 'callback' => lambda do |message|
42
+ puts(message) ## print message
43
+ return true ## keep listening?
44
+ end
45
+ })
46
+
47
+ # -------
48
+ # HISTORY
49
+ # -------
50
+ # Load Previously Published Messages
51
+ messages = pubnub.history({
52
+ 'channel' => 'hello_world',
53
+ 'limit' => 10
54
+ })
55
+ puts(messages)
@@ -1,36 +1,37 @@
1
- require '../lib/pubnub'
2
-
3
- publish_key = ARGV[0]
4
- subscribe_key = ARGV[1]
5
- ssl_on = !!ARGV[2]
6
-
7
- ## Print usage if missing info.
8
- if !subscribe_key
9
- puts('
10
- Get API Keys at http://www.pubnub.com/account
11
- ==============
12
- EXAMPLE USAGE:
13
- ==============
14
- ruby history-example.rb PUBLISH-KEY SUBSCRIBE-KEY SSL-ON
15
- ruby history-example.rb demo demo true
16
-
17
- ')
18
- exit()
19
- end
20
-
21
- ## -----------------------------------------
22
- ## Create Pubnub Client API (INITIALIZATION)
23
- ## -----------------------------------------
24
- puts('Creating new Pubnub Client API')
25
- pubnub = Pubnub.new( publish_key, subscribe_key, nil, ssl_on )
26
-
27
- ## --------------------------------
28
- ## Request Past Publishes (HISTORY)
29
- ## --------------------------------
30
- puts('Requesting History with history() Function')
31
- messages = pubnub.history({
32
- 'channel' => 'hello_world',
33
- 'limit' => 10
34
- })
35
-
36
- puts(messages)
1
+ ##including required libraries
2
+ require 'rubygems'
3
+ require './lib/pubnub.rb'
4
+
5
+ ##declaring publish_key, subscribe_key, secret_key, cipher_key
6
+ publish_key = 'demo'
7
+ subscribe_key = 'demo'
8
+ secret_key =''
9
+ cipher_key ='demo'
10
+ ssl_on = !!ARGV[4]
11
+
12
+ ## Print usage if missing info.
13
+ if !subscribe_key
14
+ puts('
15
+ Get API Keys at http://www.pubnub.com/account
16
+ ==============
17
+ EXAMPLE USAGE:
18
+ ==============
19
+ ruby history-example.rb PUBLISH-KEY SUBSCRIBE-KEY SSL-ON
20
+ ruby history-example.rb demo demo true
21
+ ')
22
+ end
23
+
24
+ ## Create Pubnub Client API (INITIALIZATION)
25
+
26
+ puts('Creating new Pubnub Client API')
27
+ pubnub = Pubnub.new(publish_key,subscribe_key,secret_key,cipher_key,ssl_on=false)
28
+
29
+ ## Request Past Publishes (HISTORY)
30
+
31
+ puts('Requesting History with history() Function')
32
+ message = pubnub.history(
33
+ {
34
+ 'channel' => 'HelloWorld',
35
+ 'limit' => 20
36
+ })
37
+ puts(message)
@@ -1,39 +1,40 @@
1
- require '../lib/pubnub'
1
+ ##including required libraries
2
+ require './lib/pubnub.rb'
3
+ require 'json'
2
4
 
3
- publish_key = ARGV[0]
4
- subscribe_key = ARGV[1]
5
- secret_key = ARGV[2]
6
- message = ARGV[3]
5
+ ##declaring publish_key, subscribe_key, secret_key, cipher_key, message
6
+ publish_key = 'demo'
7
+ subscribe_key = 'demo'
8
+ secret_key = 'demo'
9
+ cipher_key = 'demo'
10
+ message = 'HelloRuby'
11
+ channel = 'HelloWorld'
7
12
  ssl_on = !!ARGV[4]
8
13
 
9
14
  ## Print usage if missing info.
10
15
  if !message
11
- puts('
12
- Get API Keys at http://www.pubnub.com/account
13
- ==============
14
- EXAMPLE USAGE:
15
- ==============
16
- ruby publish-example.rb PUB-KEY SUB-KEY SECRET-KEY "message text" SSL-ON
17
- ruby publish-example.rb demo demo "" "hey what is up?" true
18
-
19
- ')
20
- exit()
21
- end
22
-
23
- ## -----------------------------------------
16
+ puts('
17
+ Get API Keys at http://www.pubnub.com/account
18
+ ==============
19
+ EXAMPLE USAGE:
20
+ ==============
21
+ ruby publish-example.rb PUB-KEY SUB-KEY SECRET-KEY "message text" SSL-ON
22
+ ruby publish-example.rb demo demo "" "hey what is up?" true
23
+ ')
24
+
25
+ end
26
+
24
27
  ## Create Pubnub Client API (INITIALIZATION)
25
- ## -----------------------------------------
28
+
26
29
  puts('Creating new Pubnub Client API')
27
- pubnub = Pubnub.new( publish_key, subscribe_key, secret_key, ssl_on )
30
+ pubnub = Pubnub.new(publish_key,subscribe_key,secret_key,cipher_key,ssl_on=false)
28
31
 
29
- ## ----------------------
30
32
  ## Send Message (PUBLISH)
31
- ## ----------------------
33
+
32
34
  puts('Sending a message with publish() Function')
33
- info = pubnub.publish({
34
- 'channel' => 'hello_world',
35
- 'message' => message
36
- })
35
+ info = pubnub.publish({'channel' => channel ,'message' => message})
36
+
37
37
 
38
- ## Print Pretty
38
+ ## Print Info
39
39
  puts(info)
40
+
@@ -1,9 +1,15 @@
1
- require '../lib/pubnub'
1
+ ##including required libraries
2
+ require 'rubygems'
3
+ require './lib/pubnub.rb'
2
4
 
3
- publish_key = ARGV[0]
4
- subscribe_key = ARGV[1]
5
+ ##declaring publish_key, subscribe_key, secret_key, cipher_key
6
+ publish_key = 'demo'
7
+ subscribe_key = 'demo'
8
+ secret_key = 'demo'
9
+ cipher_key = 'demo'
5
10
  ssl_on = !!ARGV[2]
6
11
 
12
+
7
13
  ## Print usage if missing info.
8
14
  if !subscribe_key
9
15
  puts('
@@ -13,24 +19,21 @@ if !subscribe_key
13
19
  ==============
14
20
  ruby subscribe-example.rb PUBLISH-KEY SUBSCRIBE-KEY SSL-ON
15
21
  ruby subscribe-example.rb demo demo true
16
-
17
- ')
18
- exit()
22
+ ')
19
23
  end
20
24
 
21
- ## -----------------------------------------
22
25
  ## Create Pubnub Client API (INITIALIZATION)
23
- ## -----------------------------------------
26
+
24
27
  puts('Creating new Pubnub Client API')
25
- pubnub = Pubnub.new( publish_key, subscribe_key, nil, ssl_on )
28
+ pubnub = Pubnub.new(publish_key,subscribe_key,secret_key,cipher_key,ssl_on=false)
29
+
30
+ ## Listen for Messages (SUBSCRIBE)
26
31
 
27
- ## -------------------------------
28
- ## Listen for Messages (SUBSCRIBE)
29
- ## -------------------------------
30
32
  puts('Listening for new messages with subscribe() Function')
31
33
  puts('Press CTRL+C to quit.')
34
+
32
35
  pubnub.subscribe({
33
- 'channel' => 'hello_world',
36
+ 'channel' => 'HelloWorld',
34
37
  'callback' => lambda do |message|
35
38
  puts(message) ## print message
36
39
  return true ## keep listening?
@@ -9,17 +9,24 @@
9
9
  ## PubNub 3.0 Real-time Push Cloud API
10
10
  ## -----------------------------------
11
11
 
12
- require 'digest/md5'
12
+
13
+ ##including required libraries
14
+ require 'openssl'
15
+ require 'base64'
13
16
  require 'open-uri'
14
17
  require 'uri'
15
18
  require 'net/http'
16
19
  require 'json'
17
20
  require 'pp'
21
+ require 'rubygems'
22
+ require 'securerandom'
23
+ require 'digest'
24
+ require './lib/PubnubCrypto.rb'
18
25
 
19
26
  class Pubnub
20
27
  MAX_RETRIES = 3
21
-
22
- #**
28
+ retries=0
29
+
23
30
  #* Pubnub
24
31
  #*
25
32
  #* Init the Pubnub Client API
@@ -27,12 +34,14 @@ class Pubnub
27
34
  #* @param string publish_key required key to send messages.
28
35
  #* @param string subscribe_key required key to receive messages.
29
36
  #* @param string secret_key required key to sign messages.
37
+ #*@param string cipher_key required to encrypt messages.
30
38
  #* @param boolean ssl required for 2048 bit encrypted messages.
31
39
  #*
32
- def initialize( publish_key, subscribe_key, secret_key, ssl_on = false)
40
+ def initialize( publish_key, subscribe_key, secret_key, cipher_key, ssl_on = false)
33
41
  @publish_key = publish_key
34
42
  @subscribe_key = subscribe_key
35
43
  @secret_key = secret_key
44
+ @cipher_key = cipher_key
36
45
  @ssl = ssl_on
37
46
  @origin = 'pubsub.pubnub.com'
38
47
  @limit = 1800
@@ -47,55 +56,84 @@ class Pubnub
47
56
  http = Net::HTTP.new(uri.host, uri.port)
48
57
  http.use_ssl = ssl_on
49
58
  @connection = http.start()
59
+
60
+ puts('Connection done')
61
+
62
+ end
63
+
64
+
65
+ #* UUID
66
+ #*
67
+ #* Unique identifier generation
68
+ #* @Return Unique Identifier
69
+ #*
70
+ def UUID()
71
+ uuid=SecureRandom.base64(32).gsub("/","_").gsub(/=+$/,"")
50
72
  end
51
73
 
52
- #**
74
+
53
75
  #* Publish
54
76
  #*
55
77
  #* Send a message to a channel.
56
78
  #*
57
79
  #* @param array args with channel and message.
58
80
  #* @return array success information.
59
- #*
81
+
60
82
  def publish(args)
61
- ## Fail if bad input.
62
- if !(args['channel'] && args['message'])
63
- puts('Missing Channel or Message')
64
- return false
65
- end
66
-
67
- ## Capture User Input
68
- channel = args['channel']
69
- message = args['message'].to_json
83
+
84
+ ## Fail if bad input.
85
+ if !(args['channel'] && args['message'])
86
+ puts('Missing Channel or message')
87
+ return false
88
+ end
70
89
 
71
- ## Sign Message
72
- signature = @secret_key.length > 0 ? Digest::MD5.hexdigest([
73
- @publish_key,
74
- @subscribe_key,
75
- @secret_key,
76
- channel,
77
- message
78
- ].join('/')) : '0'
90
+ ## Capture User Input
91
+ channel = args['channel']
92
+ message = args['message'].to_json
93
+ puts message
94
+
95
+ #encryption of message
96
+ if @cipher_key.length > 0
97
+ pubnubcrypto=PubnubCrypto.new('cipher_key')
98
+ message=message.chop.reverse.chop.reverse()
99
+ puts('message is->'+message)
100
+ message=pubnubcrypto.encrypt(message)
101
+ puts('Encrypted message->'+message)
102
+ message = message.strip
103
+ message = '"' +message+ '"'
104
+ end
105
+
106
+ ## Sign message using HMAC
107
+ String signature = '0'
79
108
 
80
- ## Fail if message too long.
81
- if message.length > @limit
82
- puts('Message TOO LONG (' + @limit.to_s + ' LIMIT)')
83
- return [ 0, 'Message Too Long.' ]
84
- end
109
+ if @secret_key.length > 0
110
+ signature = "{@publish_key,@subscribe_key,@secret_key,channel,message}"
111
+ digest = OpenSSL::Digest.new("sha256")
112
+ key = [ @secret_key ]
113
+ hmac = OpenSSL::HMAC.hexdigest(digest, key.pack("H*"), signature)
114
+ signature = hmac
115
+ end
116
+ puts "signature >> "+signature
117
+
118
+
119
+ ##If message length is greater than limit output fails
120
+ if message.length > @limit
121
+ puts('message TOO LONG (' + @limit.to_s + ' LIMIT)')
122
+ return [ 0, 'message Too Long.' ]
123
+ end
85
124
 
86
- ## Send Message
87
- return self._request([
125
+ ## Send message
126
+ return self._request([
88
127
  'publish',
89
128
  @publish_key,
90
129
  @subscribe_key,
91
130
  signature,
92
131
  channel,
93
132
  '0',
94
- message
95
- ])
96
- end
97
-
98
- #**
133
+ message,])
134
+ end
135
+
136
+
99
137
  #* Subscribe
100
138
  #*
101
139
  #* This is BLOCKING.
@@ -105,10 +143,10 @@ class Pubnub
105
143
  #* @return false on fail, array on success.
106
144
  #*
107
145
  def subscribe(args)
108
- ## Capture User Input
146
+ ## Capture User Input
109
147
  channel = args['channel']
110
148
  callback = args['callback']
111
-
149
+
112
150
  ## Fail if missing channel
113
151
  if !channel
114
152
  puts "Missing Channel."
@@ -120,41 +158,42 @@ class Pubnub
120
158
  puts "Missing Callback."
121
159
  return false
122
160
  end
123
-
161
+
124
162
  ## Begin Subscribe
125
163
  loop do
126
164
  begin
127
165
  timetoken = args['timetoken'] ? args['timetoken'] : 0
128
166
 
129
- ## Wait for Message
167
+ ## Wait for message
130
168
  response = self._request([
131
169
  'subscribe',
132
170
  @subscribe_key,
133
171
  channel,
134
172
  '0',
135
- timetoken.to_s
136
- ])
137
-
138
- messages = response[0]
139
- args['timetoken'] = response[1]
140
-
173
+ timetoken.to_s])
174
+ messages = response[0]
175
+ args['timetoken'] = response[1]
176
+
141
177
  ## If it was a timeout
142
178
  next if !messages.length
143
179
 
144
180
  ## Run user Callback and Reconnect if user permits.
145
- messages.each do |message|
181
+ ##Capture the message and encrypt it
182
+ messages.each do |message|
183
+ pc = PubnubCrypto.new('cipher_key')
184
+ message = pc.decrypt(message)
146
185
  if !callback.call(message)
147
- return
186
+ return
148
187
  end
149
188
  end
150
- rescue Timeout::Error
189
+ rescue Timeout::Error
151
190
  rescue
152
- sleep(1)
153
- end
191
+ sleep(1)
192
+ end
154
193
  end
155
194
  end
156
-
157
- #**
195
+
196
+
158
197
  #* History
159
198
  #*
160
199
  #* Load history from a channel.
@@ -163,27 +202,27 @@ class Pubnub
163
202
  #* @return mixed false on fail, array on success.
164
203
  #*
165
204
  def history(args)
166
- ## Capture User Input
167
- limit = +args['limit'] ? +args['limit'] : 10
205
+ ## Capture User Input
206
+ limit = +args['limit'] ? +args['limit'] : 15
168
207
  channel = args['channel']
169
-
170
- ## Fail if bad input.
208
+
209
+ ## Fail if bad input.
171
210
  if (!channel)
172
211
  puts 'Missing Channel.'
173
212
  return false
174
213
  end
175
214
 
176
- ## Get History
177
- return self._request([
178
- 'history',
179
- @subscribe_key,
180
- channel,
181
- '0',
182
- limit.to_s
183
- ]);
215
+ ## Get History
216
+ response = self._request([ 'history', @subscribe_key,channel,'0',limit.to_s])
217
+ myarr=Array.new()
218
+ response.each do |message|
219
+ pc = PubnubCrypto.new('cipher_key')
220
+ message = pc.decrypt(message)
221
+ myarr.push(message)
222
+ end
223
+ return myarr
184
224
  end
185
-
186
- #**
225
+
187
226
  #* Time
188
227
  #*
189
228
  #* Timestamp from PubNub Cloud.
@@ -197,7 +236,6 @@ class Pubnub
197
236
  ])[0]
198
237
  end
199
238
 
200
- #**
201
239
  #* Request URL
202
240
  #*
203
241
  #* @param array request of url directories.
@@ -209,21 +247,24 @@ class Pubnub
209
247
  ' ~`!@#$%^&*()+=[]\\{}|;\':",./<>?'.index(ch) ?
210
248
  '%' + ch.unpack('H2')[0].to_s.upcase : URI.encode(ch)
211
249
  }.join('') }.join('/')
212
-
213
- response = send_with_retries(url, MAX_RETRIES)
250
+
251
+ puts(' URL==> '+url)
252
+
253
+ response = send_with_retries(url,MAX_RETRIES )
214
254
  JSON.parse(response)
215
255
  end
216
256
 
217
257
  private
218
-
219
- def send_with_retries(url, retries)
258
+ def send_with_retries(url, retries)
220
259
  tries = 0
260
+
221
261
  begin
222
262
  @connection.get(url).body
223
- rescue
263
+ rescue
264
+
224
265
  tries += 1
225
266
  tries < retries ? retry : raise
226
267
  end
227
- end
228
- end
229
268
 
269
+ end
270
+ end
@@ -1,79 +1,75 @@
1
- ## www.pubnub.com - PubNub realtime push service in the cloud.
2
- ## http://www.pubnub.com/blog/ruby-push-api - Ruby Push API Blog
3
-
4
- ## PubNub Real Time Push APIs and Notifications Framework
5
- ## Copyright (c) 2010 Stephen Blum
6
- ## http://www.pubnub.com/
7
-
8
- ## -----------------------------------
9
- ## PubNub 3.0 Real-time Push Cloud API
10
- ## -----------------------------------
11
- require 'Pubnub'
12
-
13
- publish_key = ARGV[0] || 'demo'
14
- subscribe_key = ARGV[1] || 'demo'
15
- secret_key = ARGV[2] || ''
16
- ssl_on = !!ARGV[3]
17
-
18
-
19
- ## ---------------------------------------------------------------------------
20
- ## Create Pubnub Client API (INITIALIZATION)
21
- ## ---------------------------------------------------------------------------
22
- pubnub = Pubnub.new( publish_key, subscribe_key, secret_key, ssl_on )
23
- channel = 'ruby-unit-test-' + rand().to_s
24
-
25
-
26
- ## ---------------------------------------------------------------------------
27
- ## Unit Test Function
28
- ## ---------------------------------------------------------------------------
29
- def test( trial, name )
30
- trial ? puts('PASS: ' + name) : puts('FAIL: ' + name)
31
- end
32
-
33
-
34
- ## ---------------------------------------------------------------------------
35
- ## PubNub Server Time
36
- ## ---------------------------------------------------------------------------
37
- timestamp = pubnub.time()
38
- test( timestamp > 0, 'PubNub Server Time: ' + timestamp.to_s )
39
-
40
-
41
- ## ---------------------------------------------------------------------------
42
- ## PUBLISH
43
- ## ---------------------------------------------------------------------------
44
- first_message = 'Hi. (顶顅Ȓ)'
45
- pubish_success = pubnub.publish({
46
- 'channel' => channel,
47
- 'message' => first_message
48
- })
49
- test( pubish_success[0] == 1, 'Publish First Message Success' )
50
-
51
- crazy_channel = ' ~`!@#$%^&*(顶顅Ȓ)+=[]\\{}|;\':",./<>?abcd'
52
- pubish_success = pubnub.publish({
53
- 'channel' => crazy_channel,
54
- 'message' => crazy_channel
55
- })
56
- test( pubish_success[0] == 1, 'Publish First Message Success' )
57
-
58
-
59
- ## ---------------------------------------------------------------------------
60
- ## Request Past Publishes (HISTORY)
61
- ## ---------------------------------------------------------------------------
62
- history = pubnub.history({
63
- 'channel' => crazy_channel,
64
- 'limit' => 1
65
- })
66
- test( history.length == 1, 'History Length 2' )
67
- test( history[0] == crazy_channel, 'History Message UTF8: ' + history[0] )
68
-
69
-
70
- ## ---------------------------------------------------------------------------
71
- ## Subscribe
72
- ## ---------------------------------------------------------------------------
73
- pubnub.subscribe({
74
- 'channel' => crazy_channel,
75
- 'callback' => lambda do |message|
76
- puts(message) ## print message
77
- return true ## keep listening?
78
- end
79
- })
1
+ ## www.pubnub.com - PubNub realtime push service in the cloud.
2
+ ## http://www.pubnub.com/blog/ruby-push-api - Ruby Push API Blog
3
+
4
+ ## PubNub Real Time Push APIs and Notifications Framework
5
+ ## Copyright (c) 2010 Stephen Blum
6
+ ## http://www.pubnub.com/
7
+
8
+ ## -----------------------------------
9
+ ## PubNub 3.0 Real-time Push Cloud API
10
+ ## -----------------------------------
11
+
12
+ ##including required libraries
13
+ require 'rubygems'
14
+ require './lib/pubnub.rb'
15
+
16
+ ##declaring publish_key, subscribe_key, secret_key, cipher_key, message, ssl_on
17
+ publish_key = ARGV[0] || 'demo'
18
+ subscribe_key = ARGV[1] || 'demo'
19
+ secret_key = ARGV[2] || 'demo'
20
+ cipher_key = ARGV[3]||'demo'
21
+ message ='hellounit'
22
+ ssl_on = !!ARGV[4]
23
+
24
+
25
+ ## ---------------------------------------------------------------------------
26
+ ## Create Pubnub Client API (INITIALIZATION)
27
+ ## ---------------------------------------------------------------------------
28
+ pubnub = Pubnub.new( publish_key, subscribe_key, secret_key,cipher_key, ssl_on=false )
29
+ channel = 'HelloWorld' + rand().to_s
30
+
31
+
32
+ ## ---------------------------------------------------------------------------
33
+ ## Unit Test Function
34
+ ## ---------------------------------------------------------------------------
35
+ def test( trial, name )
36
+ trial ? puts('PASS: ' + name) : puts('FAIL: ' + name)
37
+ end
38
+
39
+
40
+ ## ---------------------------------------------------------------------------
41
+ ## PubNub Server Time
42
+ ## ---------------------------------------------------------------------------
43
+ timestamp = pubnub.time()
44
+ test( timestamp > 0, 'PubNub Server Time: ' + timestamp.to_s )
45
+
46
+
47
+ ## ---------------------------------------------------------------------------
48
+ ## PUBLISH
49
+ ## ---------------------------------------------------------------------------
50
+ first_message = 'Hi. (顶顅Ȓ)'
51
+ pubish_success = pubnub.publish({'channel' => 'HelloWorld' ,'message' => message})
52
+ test( pubish_success[0] == 1, 'Publish First Message Success' )
53
+
54
+ ## ---------------------------------------------------------------------------
55
+ ## HISTORY
56
+ ## ---------------------------------------------------------------------------
57
+ history = pubnub.history({
58
+ 'channel' => 'HelloWorld',
59
+ 'limit' => 20
60
+ })
61
+ puts(history)
62
+ test( history.length >= 1, 'Display History' )
63
+
64
+ ## ---------------------------------------------------------------------------
65
+ ## Subscribe
66
+ ## ---------------------------------------------------------------------------
67
+ puts('Listening for new messages with subscribe() Function')
68
+ puts('Press CTRL+C to quit.')
69
+ pubnub.subscribe({
70
+ 'channel' => 'HelloWorld',
71
+ 'callback' => lambda do |message|
72
+ puts(message) ## print message
73
+ return true ## keep listening?
74
+ end
75
+ })
metadata CHANGED
@@ -1,63 +1,84 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: pubnub-ruby
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.7
3
+ version: !ruby/object:Gem::Version
4
+ hash: 13
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 9
10
+ version: 0.0.9
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Luke Carpenter
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-04-19 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2011-05-28 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: json
16
- requirement: &18730320 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
22
32
  type: :runtime
23
- prerelease: false
24
- version_requirements: *18730320
25
- description: Simply Pubnub.rb in gem format, require "pubnub" - ask @rubynerd for
26
- upgrades
27
- email: x@rubynerd.net
33
+ version_requirements: *id001
34
+ description: Simply Pubnub.rb in gem format, :require => "pubnub" - ask @rubynerd for upgrades
35
+ email: orlyowlizere@gmail.com
28
36
  executables: []
37
+
29
38
  extensions: []
30
- extra_rdoc_files: []
31
- files:
39
+
40
+ extra_rdoc_files:
41
+ - README
42
+ files:
32
43
  - examples/history-example.rb
33
44
  - examples/publish-example.rb
34
45
  - examples/subscribe-example.rb
35
46
  - lib/pubnub-ruby.rb
36
47
  - lib/pubnub.rb
37
48
  - tests/unit-test.rb
38
- homepage: http://github.com/pubnub/pubnub-api/tree/master/ruby
39
- licenses:
49
+ - README
50
+ homepage: http://github.com/rubynerd/pubnub
51
+ licenses:
40
52
  - MIT
41
53
  post_install_message:
42
54
  rdoc_options: []
43
- require_paths:
55
+
56
+ require_paths:
44
57
  - lib
45
- required_ruby_version: !ruby/object:Gem::Requirement
58
+ required_ruby_version: !ruby/object:Gem::Requirement
46
59
  none: false
47
- requirements:
48
- - - ! '>='
49
- - !ruby/object:Gem::Version
50
- version: '0'
51
- required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ hash: 3
64
+ segments:
65
+ - 0
66
+ version: "0"
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
68
  none: false
53
- requirements:
54
- - - ! '>='
55
- - !ruby/object:Gem::Version
56
- version: '0'
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
57
76
  requirements: []
77
+
58
78
  rubyforge_project:
59
- rubygems_version: 1.8.11
79
+ rubygems_version: 1.8.5
60
80
  signing_key:
61
81
  specification_version: 3
62
82
  summary: PubNub unofficial gem
63
83
  test_files: []
84
+