pubnub 3.5.14 → 3.6.7

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pubnub might be problematic. Click here for more details.

Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/3.5_to_3.6_upgrade_notes.md +148 -0
  3. data/{CHANGELOG → CHANGELOG.txt} +15 -0
  4. data/Gemfile.lock +5 -4
  5. data/LICENSE.txt +28 -0
  6. data/README.md +164 -19
  7. data/Rakefile +1 -6
  8. data/examples/demo_console.rb +370 -329
  9. data/fixtures/vcr_cassettes/grant-multiple-channels-presence-multi-1.yml +44 -0
  10. data/fixtures/vcr_cassettes/grant-multiple-channels-presence-multi-2.yml +44 -0
  11. data/fixtures/vcr_cassettes/grant-multiple-channels-presence-multi-3.yml +44 -0
  12. data/fixtures/vcr_cassettes/grant-multiple-channels-presence-multi-4.yml +44 -0
  13. data/fixtures/vcr_cassettes/grant-multiple-channels-presence.yml +44 -0
  14. data/fixtures/vcr_cassettes/heartbeated-subscribe.yml +1 -1
  15. data/fixtures/vcr_cassettes/here_now-nonssl-block-valid-200-async.yml +1 -1
  16. data/fixtures/vcr_cassettes/here_now-nonssl-block-valid-200-sync.yml +1 -1
  17. data/fixtures/vcr_cassettes/here_now-nonssl-block-valid-non-200-async.yml +1 -1
  18. data/fixtures/vcr_cassettes/here_now-nonssl-block-valid-non-200-sync.yml +1 -1
  19. data/fixtures/vcr_cassettes/here_now-nonssl-parameter-valid-200-async.yml +1 -1
  20. data/fixtures/vcr_cassettes/here_now-nonssl-parameter-valid-200-sync.yml +1 -1
  21. data/fixtures/vcr_cassettes/here_now-nonssl-parameter-valid-non-200-async.yml +1 -1
  22. data/fixtures/vcr_cassettes/here_now-nonssl-parameter-valid-non-200-sync.yml +1 -1
  23. data/fixtures/vcr_cassettes/here_now-ssl-block-valid-200-async.yml +1 -1
  24. data/fixtures/vcr_cassettes/here_now-ssl-block-valid-200-sync.yml +1 -1
  25. data/fixtures/vcr_cassettes/here_now-ssl-block-valid-non-200-async.yml +1 -1
  26. data/fixtures/vcr_cassettes/here_now-ssl-block-valid-non-200-sync.yml +1 -1
  27. data/fixtures/vcr_cassettes/here_now-ssl-parameter-valid-200-async.yml +1 -1
  28. data/fixtures/vcr_cassettes/here_now-ssl-parameter-valid-200-sync.yml +1 -1
  29. data/fixtures/vcr_cassettes/here_now-ssl-parameter-valid-non-200-async.yml +1 -1
  30. data/fixtures/vcr_cassettes/here_now-ssl-parameter-valid-non-200-sync.yml +1 -1
  31. data/fixtures/vcr_cassettes/leave-nonssl-block-valid-200-async.yml +1 -1
  32. data/fixtures/vcr_cassettes/leave-nonssl-block-valid-200-sync.yml +1 -1
  33. data/fixtures/vcr_cassettes/leave-nonssl-block-valid-non-200-async.yml +1 -1
  34. data/fixtures/vcr_cassettes/leave-nonssl-block-valid-non-200-sync.yml +1 -1
  35. data/fixtures/vcr_cassettes/leave-nonssl-parameter-valid-200-async.yml +1 -1
  36. data/fixtures/vcr_cassettes/leave-nonssl-parameter-valid-200-sync.yml +1 -1
  37. data/fixtures/vcr_cassettes/leave-nonssl-parameter-valid-non-200-async.yml +1 -1
  38. data/fixtures/vcr_cassettes/leave-nonssl-parameter-valid-non-200-sync.yml +1 -1
  39. data/fixtures/vcr_cassettes/leave-ssl-block-valid-200-async.yml +1 -1
  40. data/fixtures/vcr_cassettes/leave-ssl-block-valid-200-sync.yml +1 -1
  41. data/fixtures/vcr_cassettes/leave-ssl-block-valid-non-200-async.yml +1 -1
  42. data/fixtures/vcr_cassettes/leave-ssl-block-valid-non-200-sync.yml +1 -1
  43. data/fixtures/vcr_cassettes/leave-ssl-parameter-valid-200-async.yml +1 -1
  44. data/fixtures/vcr_cassettes/leave-ssl-parameter-valid-200-sync.yml +1 -1
  45. data/fixtures/vcr_cassettes/leave-ssl-parameter-valid-non-200-async.yml +1 -1
  46. data/fixtures/vcr_cassettes/leave-ssl-parameter-valid-non-200-sync.yml +1 -1
  47. data/fixtures/vcr_cassettes/state-async-set-state-via-subbedclient-2.yml +140 -0
  48. data/fixtures/vcr_cassettes/state-async-set-state-via-subbedclient.yml +131 -0
  49. data/fixtures/vcr_cassettes/state-async-set-state-via-subscribe.yml +90 -0
  50. data/fixtures/vcr_cassettes/state-set-state-via-client-2.yml +140 -0
  51. data/fixtures/vcr_cassettes/state-set-state-via-client.yml +90 -0
  52. data/fixtures/vcr_cassettes/state-set-state-via-subscribe.yml +90 -0
  53. data/fixtures/vcr_cassettes/where_now-ssl-block-invalid-200-async.yml +49 -0
  54. data/fixtures/vcr_cassettes/where_now-ssl-block-invalid-200-sync.yml +49 -0
  55. data/fixtures/vcr_cassettes/where_now-ssl-block-invalid-non-200-async.yml +49 -0
  56. data/fixtures/vcr_cassettes/where_now-ssl-block-invalid-non-200-sync.yml +49 -0
  57. data/fixtures/vcr_cassettes/where_now-ssl-block-valid-200-async.yml +49 -0
  58. data/fixtures/vcr_cassettes/where_now-ssl-block-valid-200-sync.yml +49 -0
  59. data/fixtures/vcr_cassettes/where_now-ssl-block-valid-non-200-async.yml +49 -0
  60. data/fixtures/vcr_cassettes/where_now-ssl-block-valid-non-200-sync.yml +49 -0
  61. data/fixtures/vcr_cassettes/where_now-ssl-parameter-invalid-200-async.yml +49 -0
  62. data/fixtures/vcr_cassettes/where_now-ssl-parameter-invalid-200-sync.yml +49 -0
  63. data/fixtures/vcr_cassettes/where_now-ssl-parameter-invalid-non-200-async.yml +49 -0
  64. data/fixtures/vcr_cassettes/where_now-ssl-parameter-invalid-non-200-sync.yml +49 -0
  65. data/fixtures/vcr_cassettes/where_now-ssl-parameter-valid-200-async.yml +49 -0
  66. data/fixtures/vcr_cassettes/where_now-ssl-parameter-valid-200-sync.yml +49 -0
  67. data/fixtures/vcr_cassettes/where_now-ssl-parameter-valid-non-200-async.yml +49 -0
  68. data/fixtures/vcr_cassettes/where_now-ssl-parameter-valid-non-200-sync.yml +49 -0
  69. data/lib/pubnub.rb +1 -2
  70. data/lib/pubnub/client.rb +97 -21
  71. data/lib/pubnub/configuration.rb +1 -1
  72. data/lib/pubnub/envelope.rb +3 -2
  73. data/lib/pubnub/event.rb +9 -5
  74. data/lib/pubnub/events/audit.rb +1 -1
  75. data/lib/pubnub/events/grant.rb +1 -1
  76. data/lib/pubnub/events/heartbeat.rb +7 -3
  77. data/lib/pubnub/events/here_now.rb +7 -4
  78. data/lib/pubnub/events/history.rb +1 -1
  79. data/lib/pubnub/events/leave.rb +10 -4
  80. data/lib/pubnub/events/presence.rb +1 -1
  81. data/lib/pubnub/events/publish.rb +6 -2
  82. data/lib/pubnub/events/revoke.rb +1 -1
  83. data/lib/pubnub/events/set_state.rb +77 -0
  84. data/lib/pubnub/events/state.rb +63 -0
  85. data/lib/pubnub/events/subscribe.rb +7 -0
  86. data/lib/pubnub/events/where_now.rb +55 -0
  87. data/lib/pubnub/pam.rb +10 -16
  88. data/lib/pubnub/version.rb +2 -2
  89. data/pubnub.gemspec +21 -19
  90. data/spec/lib/channel_presence_concat_pam_spec.rb +94 -0
  91. data/spec/lib/client_spec.rb +3 -4
  92. data/spec/lib/heartbeat_spec.rb +16 -16
  93. data/spec/lib/integration/global_here_now_dpc_spec.rb +10 -10
  94. data/spec/lib/integration/global_here_now_spec.rb +8 -8
  95. data/spec/lib/integration/here_now_dpc_spec.rb +24 -24
  96. data/spec/lib/integration/here_now_spec.rb +24 -24
  97. data/spec/lib/integration/leave_dpc_spec.rb +24 -25
  98. data/spec/lib/integration/leave_spec.rb +24 -24
  99. data/spec/lib/integration/publish_spec.rb +5 -0
  100. data/spec/lib/integration/state_spec.rb +84 -0
  101. data/spec/lib/integration/where_now_spec.rb +312 -0
  102. metadata +108 -26
  103. data/LICENSE +0 -27
  104. data/VERSION +0 -1
  105. data/examples/demo_console_new.rb +0 -286
  106. data/fixtures/vcr_cassettes/heartbeat-non200.yml +0 -667
  107. data/spec/tools/pam-test-generator.rb +0 -367
  108. data/spec/tools/test-generator.rb +0 -310
data/LICENSE DELETED
@@ -1,27 +0,0 @@
1
- PubNub Real-time Cloud-Hosted Push API and Push Notification Client Frameworks
2
- Copyright (c) 2013 PubNub Inc.
3
- http://www.pubnub.com/
4
- http://www.pubnub.com/terms
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in
14
- all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- THE SOFTWARE.
23
-
24
- PubNub Real-time Cloud-Hosted Push API and Push Notification Client Frameworks
25
- Copyright (c) 2013 PubNub Inc.
26
- http://www.pubnub.com/
27
- http://www.pubnub.com/terms
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 3.5.14
@@ -1,286 +0,0 @@
1
- require 'pubnub'
2
- require 'awesome_print'
3
-
4
- class String
5
- def black; "\033[30m#{self}\033[0m" end
6
- def red; "\033[31m#{self}\033[0m" end
7
- def green; "\033[32m#{self}\033[0m" end
8
- def brown; "\033[33m#{self}\033[0m" end
9
- def blue; "\033[34m#{self}\033[0m" end
10
- def magenta; "\033[35m#{self}\033[0m" end
11
- def cyan; "\033[36m#{self}\033[0m" end
12
- def gray; "\033[37m#{self}\033[0m" end
13
- def bg_black; "\033[40m#{self}\0330m" end
14
- def bg_red; "\033[41m#{self}\033[0m" end
15
- def bg_green; "\033[42m#{self}\033[0m" end
16
- def bg_brown; "\033[43m#{self}\033[0m" end
17
- def bg_blue; "\033[44m#{self}\033[0m" end
18
- def bg_magenta; "\033[45m#{self}\033[0m" end
19
- def bg_cyan; "\033[46m#{self}\033[0m" end
20
- def bg_gray; "\033[47m#{self}\033[0m" end
21
- def bold; "\033[1m#{self}\033[22m" end
22
- def reverse_color; "\033[7m#{self}\033[27m" end
23
- end
24
-
25
- class DemoConsole
26
-
27
- OPTIONS = {
28
- :'1' => :Publish,
29
- :'2' => :Subscribe,
30
- :'3' => :Presence,
31
- :'4' => :Leave,
32
- :'5' => :History,
33
- :'6' => :HereNow,
34
- :'7' => :WhereNow,
35
- :'8' => :State,
36
- :'9' => :Heartbeat,
37
- :'10' => :Time,
38
- :'11' => :Audit,
39
- :'12' => :Grant,
40
- :'13' => :Revoke,
41
- :A => :set_uuid,
42
- :B => :set_auth_key,
43
- :C => :show_state,
44
- :D => :set_state,
45
- :EXIT => :exit
46
- }
47
-
48
- def initialize
49
-
50
- welcome
51
-
52
- keys_option = select_keys
53
-
54
- case keys_option.to_s
55
- when '1'
56
- @origin = 'pubsub.pubnub.com'
57
- @subscribe_key = 'demo-36'
58
- @publish_key = 'demo-36'
59
- @secret_key = nil
60
-
61
- when '2'
62
- @origin = 'pubsub.pubnub.com'
63
- @subscribe_key = 'sub-c-a478dd2a-c33d-11e2-883f-02ee2ddab7fe'
64
- @publish_key = 'pub-c-a2650a22-deb1-44f5-aa87-1517049411d5'
65
- @secret_key = 'sec-c-YjFmNzYzMGMtYmI3NC00NzJkLTlkYzYtY2MwMzI4YTJhNDVh'
66
-
67
- when '3'
68
- puts `clear`
69
- print_pubnub
70
- puts 'Okey, now you have to provide me your data or accept default:'.green
71
- print 'origin [pubsub.pubnub.com]: '.white
72
- @origin = gets.chomp!
73
- print 'subscribe_key [demo-36]: '.white
74
- @subscribe_key = gets.chomp!
75
- print 'publish_key [demo-36]: '.white
76
- @publish_key = gets.chomp!
77
- print 'secret_key (nil by default): '.white
78
- @secret_key = gets.chomp!
79
-
80
- @origin = 'pubsub.pubnub.com' if @origin.blank?
81
- @subscribe_key = 'demo-36' if @subscribe_key.blank?
82
- @publish_key = 'demo-36' if @publish_key.blank?
83
- @secret_key = nil if @secret_key.blank?
84
- else
85
- @origin = 'pubsub.pubnub.com'
86
- @subscribe_key = 'demo-36'
87
- @publish_key = 'demo-36'
88
- @secret_key = nil
89
- end
90
-
91
- set_uuid_and_auth
92
-
93
- @pubnub = Pubnub.new(
94
- :subscribe_key => @subscribe_key,
95
- :publish_key => @publish_key,
96
- :secret_key => @secret_key,
97
- :error_callback => method(:error_callback),
98
- :auth_key => @auth_key
99
- )
100
-
101
- @pubnub.set_uuid(@uuid) unless @uuid.blank?
102
-
103
- ap @pubnub
104
-
105
- start_console
106
-
107
- end
108
-
109
- def welcome
110
- puts `clear`
111
- print_pubnub
112
- puts 'Hello in interactive PubNub console!'.white
113
- puts 'Feel free to play around with it!'.white
114
- puts '--'
115
- puts '[Hit ENTER to continue]'
116
- gets
117
- puts `clear`
118
- end
119
-
120
- def select_keys
121
- print_pubnub
122
- puts 'Before we start, you have to select demo app keys or add your own.'.green
123
- print "\n"
124
- puts '1. Basic demo keys -- You will be limited to standard events, no PAM features'.white
125
- puts '2. PAM supprot keys -- You can check out all pubnub features, including PAM'.white
126
- puts '3. Custom keys -- If you already have your own keys, you can set them here'.white
127
- print "\n"
128
- print 'Your choice: '.green
129
- gets.chomp!
130
- end
131
-
132
- def set_uuid_and_auth
133
- puts `clear`
134
- print_pubnub
135
- puts 'You can set up now your uuid and auth_key: '.green
136
- print 'uuid [random_default]: '.white
137
- @uuid = gets.chomp!
138
- print 'auth_key (blank by default): '.white
139
- @auth_key = gets.chomp
140
- end
141
-
142
- def set_uuid(uuid)
143
- @pubnub.set_uuid(uuid)
144
- end
145
-
146
- def set_auth_key(auth_key)
147
- @pubnub.set_auth_key(auth_key)
148
- end
149
-
150
- def start_console
151
- puts `clear`
152
- print_pubnub
153
- puts 'CONSOLE STARTED!'.white.bg_green
154
- exit = false
155
- choice = false
156
- until exit
157
- until OPTIONS.keys.include?(choice)
158
- puts 'Choose your next operation (type \'exit\' to exit):'.green
159
- puts 'Events:'.green
160
- puts '1. Publish'.white
161
- puts '2. Subscribe'.white
162
- puts '3. Presence'.white
163
- puts '4. Leave (unsubscribe)'.white
164
- puts '5. History'.white
165
- puts '6. HereNow'.white
166
- puts '7. WhereNow'.white
167
- puts '8. State'.white
168
- puts '9. Heartbeat'.white
169
- puts '10. Time'.white
170
- puts '11. Audit'.white if @secret_key
171
- puts '12. Grant'.white if @secret_key
172
- puts '13. Revoke'.white if @secret_key
173
- puts "\nPubnub::Client interaction:".green
174
- puts 'A. Set UUID'.white
175
- puts 'B. Set auth_key'.white
176
- puts 'C. Check state'.white
177
- puts 'D. Set state'.white
178
- print "\nYour choice: ".red
179
- choice = gets.chomp!.to_s.upcase.to_sym
180
- end
181
- choice = OPTIONS[choice]
182
-
183
- case choice
184
- when :exit
185
- exit = true
186
- when :Publish
187
- options = ask_about(:sync, :message, :channel)
188
- @pubnub.publish(options)
189
- when :Subscribe
190
- options = ask_about(:sync, :channel)
191
- @pubnub.subscribe(options)
192
- when :Presence
193
- options = ask_about(:sync, :channel)
194
- @pubnub.presence(options)
195
- when :Leave
196
- options = ask_about(:sync, :channel)
197
- @pubnub.leave(options)
198
- when :History
199
- options = ask_about(:sync, :channel, :reverse, :history_start, :history_end)
200
- @pubnub.history(options)
201
- when :HereNow
202
- options = ask_about(:sync, :channel)
203
- @pubnub.here_now(options)
204
- when :WhereNow
205
- options = ask_about(:sync, :uuid)
206
- @pubnub.where_now(options)
207
- when :State
208
- options = ask_about(:sync, :channel, :uuid)
209
- @pubnub.state(options)
210
- when :Heartbeat
211
- options = ask_about(:sync, :heartbeat)
212
- @pubnub.heartbeat(options)
213
- when :Time
214
- options = ask_about(:sync)
215
- @pubnub.time(options)
216
- when :Audit
217
- options = ask_about(:sync, :channel, :subscribe_key)
218
- @pubnub.audit(options)
219
- when :Grant
220
- options = ask_about(:sync, :channel, :subscribe_key, :read, :write)
221
- @pubnub.grant(options)
222
- when :Revoke
223
- options = ask_about(:sync, :channel, :subscribe_key, :read, :write)
224
- @pubnub.revoke(options)
225
- end
226
- choice = nil
227
- end
228
- end
229
-
230
- # that adds callback method as :callback in options
231
- def ask_about(*things)
232
- options = {}
233
- things.each do |thing|
234
- case thing
235
- when :sync
236
- print 'Should event be async? '.white
237
- options[:http_sync] = !acceptance
238
-
239
- when :message
240
- while options[:message].blank?
241
- puts 'Write below message to publish:'.white
242
- options[:message] = gets.chomp!
243
- end
244
-
245
- when :channel
246
- while options[:channel].blank?
247
- print 'Specify channel(s): '.white
248
- options[:channel] = gets.chomp!
249
- end
250
- end
251
- end
252
- options.merge({:callback => method(:callback)})
253
- end
254
-
255
- def acceptance
256
- %w(Y 1).include?(gets.chomp!.to_s.upcase)
257
- end
258
-
259
- def print_pubnub
260
- puts '
261
- __________ ___. _______ ___. ________ ________
262
- \______ \__ _\_ |__ \ \ __ _\_ |__ \_____ \ / _____/
263
- | ___/ | \ __ \ / | \| | \ __ \ _(__ < / __ \
264
- | | | | / \_\ \/ | \ | / \_\ \ / \ \ |__\ \
265
- |____| |____/|___ /\____|__ /____/|___ / /______ / /\ \_____ /
266
- \/ \/ \/ \/ \/ \/
267
-
268
- Pubnub 3.6.x Demo Console
269
- '.red
270
- end
271
-
272
- def callback(envelope)
273
- ap envelope
274
- end
275
-
276
- def connect_callback(data)
277
- puts 'Connection established'.bg_green.white
278
- end
279
-
280
- def error_callback(error)
281
- puts 'ERROR'.bg_red.white
282
- ap error
283
- end
284
- end
285
-
286
- DemoConsole.new
@@ -1,667 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: http://pubsub.pubnub.com/subscribe/demo-36/rubyheartbeatdemo/0/13962834724662579?heartbeat=4&pnsdk=PubNub-Ruby/3.5.1&uuid=5978a0b7-5c8c-45f8-b5d4-618bd36eaf82
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept-Encoding:
11
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
- Accept:
13
- - '*/*'
14
- User-Agent:
15
- - Ruby
16
- Connection:
17
- - keep-alive
18
- Keep-Alive:
19
- - 30
20
- response:
21
- status:
22
- code: 200
23
- message: OK
24
- headers:
25
- Date:
26
- - Mon, 31 Mar 2014 16:31:13 GMT
27
- Content-Type:
28
- - text/javascript; charset="UTF-8"
29
- Content-Length:
30
- - '38'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - no-cache
35
- Access-Control-Allow-Origin:
36
- - '*'
37
- Access-Control-Allow-Methods:
38
- - GET
39
- body:
40
- encoding: UTF-8
41
- string: '[[{"text":"hey"}],"13962834735397816"]'
42
- http_version:
43
- recorded_at: Mon, 31 Mar 2014 16:31:14 GMT
44
- - request:
45
- method: get
46
- uri: http://pubsub.pubnub.com/subscribe/demo-36/rubyheartbeatdemo/0/13962834735397816?heartbeat=4&pnsdk=PubNub-Ruby/3.5.1&uuid=5978a0b7-5c8c-45f8-b5d4-618bd36eaf82
47
- body:
48
- encoding: US-ASCII
49
- string: ''
50
- headers:
51
- Accept-Encoding:
52
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
53
- Accept:
54
- - '*/*'
55
- User-Agent:
56
- - Ruby
57
- Connection:
58
- - keep-alive
59
- Keep-Alive:
60
- - 30
61
- response:
62
- status:
63
- code: 200
64
- message: OK
65
- headers:
66
- Date:
67
- - Mon, 31 Mar 2014 16:31:13 GMT
68
- Content-Type:
69
- - text/javascript; charset="UTF-8"
70
- Content-Length:
71
- - '38'
72
- Connection:
73
- - keep-alive
74
- Cache-Control:
75
- - no-cache
76
- Access-Control-Allow-Origin:
77
- - '*'
78
- Access-Control-Allow-Methods:
79
- - GET
80
- body:
81
- encoding: UTF-8
82
- string: '[[{"text":"hey"}],"13962834738227474"]'
83
- http_version:
84
- recorded_at: Mon, 31 Mar 2014 16:31:14 GMT
85
- - request:
86
- method: get
87
- uri: http://pubsub.pubnub.com/subscribe/demo-36/rubyheartbeatdemo/0/13962834738227474?heartbeat=4&pnsdk=PubNub-Ruby/3.5.1&uuid=5978a0b7-5c8c-45f8-b5d4-618bd36eaf82
88
- body:
89
- encoding: US-ASCII
90
- string: ''
91
- headers:
92
- Accept-Encoding:
93
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
94
- Accept:
95
- - '*/*'
96
- User-Agent:
97
- - Ruby
98
- Connection:
99
- - keep-alive
100
- Keep-Alive:
101
- - 30
102
- response:
103
- status:
104
- code: 200
105
- message: OK
106
- headers:
107
- Date:
108
- - Mon, 31 Mar 2014 16:31:13 GMT
109
- Content-Type:
110
- - text/javascript; charset="UTF-8"
111
- Content-Length:
112
- - '38'
113
- Connection:
114
- - keep-alive
115
- Cache-Control:
116
- - no-cache
117
- Access-Control-Allow-Origin:
118
- - '*'
119
- Access-Control-Allow-Methods:
120
- - GET
121
- body:
122
- encoding: UTF-8
123
- string: '[[{"text":"hey"}],"13962834739552478"]'
124
- http_version:
125
- recorded_at: Mon, 31 Mar 2014 16:31:14 GMT
126
- - request:
127
- method: get
128
- uri: http://pubsub.pubnub.com/subscribe/demo-36/rubyheartbeatdemo/0/13962834739552478?heartbeat=4&pnsdk=PubNub-Ruby/3.5.1&uuid=5978a0b7-5c8c-45f8-b5d4-618bd36eaf82
129
- body:
130
- encoding: US-ASCII
131
- string: ''
132
- headers:
133
- Accept-Encoding:
134
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
135
- Accept:
136
- - '*/*'
137
- User-Agent:
138
- - Ruby
139
- Connection:
140
- - keep-alive
141
- Keep-Alive:
142
- - 30
143
- response:
144
- status:
145
- code: 200
146
- message: OK
147
- headers:
148
- Date:
149
- - Mon, 31 Mar 2014 16:31:14 GMT
150
- Content-Type:
151
- - text/javascript; charset="UTF-8"
152
- Content-Length:
153
- - '38'
154
- Connection:
155
- - keep-alive
156
- Cache-Control:
157
- - no-cache
158
- Access-Control-Allow-Origin:
159
- - '*'
160
- Access-Control-Allow-Methods:
161
- - GET
162
- body:
163
- encoding: UTF-8
164
- string: '[[{"text":"hey"}],"13962834741853632"]'
165
- http_version:
166
- recorded_at: Mon, 31 Mar 2014 16:31:14 GMT
167
- - request:
168
- method: get
169
- uri: http://pubsub.pubnub.com/subscribe/demo-36/rubyheartbeatdemo/0/0?heartbeat=4&pnsdk=PubNub-Ruby/3.5.1&uuid=a3191078-9099-4b86-a36c-c03b03568b89
170
- body:
171
- encoding: US-ASCII
172
- string: ''
173
- headers:
174
- Accept-Encoding:
175
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
176
- Accept:
177
- - '*/*'
178
- User-Agent:
179
- - Ruby
180
- Connection:
181
- - keep-alive
182
- Keep-Alive:
183
- - 30
184
- response:
185
- status:
186
- code: 200
187
- message: OK
188
- headers:
189
- Date:
190
- - Mon, 31 Mar 2014 16:44:26 GMT
191
- Content-Type:
192
- - text/javascript; charset="UTF-8"
193
- Content-Length:
194
- - '24'
195
- Connection:
196
- - keep-alive
197
- Cache-Control:
198
- - no-cache
199
- Access-Control-Allow-Origin:
200
- - '*'
201
- Access-Control-Allow-Methods:
202
- - GET
203
- body:
204
- encoding: UTF-8
205
- string: '[[],"13962834750580997"]'
206
- http_version:
207
- recorded_at: Mon, 31 Mar 2014 16:44:26 GMT
208
- - request:
209
- method: get
210
- uri: http://pubsub.pubnub.com/v2/presence/sub-key/demo-36/channel/rubyheartbeatdemo/heartbeat?pnsdk=PubNub-Ruby/3.5.1&state=%7B%7D&uuid=a3191078-9099-4b86-a36c-c03b03568b89
211
- body:
212
- encoding: US-ASCII
213
- string: ''
214
- headers:
215
- Accept-Encoding:
216
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
217
- Accept:
218
- - '*/*'
219
- User-Agent:
220
- - Ruby
221
- Connection:
222
- - keep-alive
223
- Keep-Alive:
224
- - 30
225
- response:
226
- status:
227
- code: 400
228
- message: OK
229
- headers:
230
- Date:
231
- - Mon, 31 Mar 2014 16:44:26 GMT
232
- Content-Type:
233
- - application/json
234
- Content-Length:
235
- - '55'
236
- Connection:
237
- - keep-alive
238
- Access-Control-Allow-Origin:
239
- - '*'
240
- Access-Control-Allow-Methods:
241
- - GET
242
- Cache-Control:
243
- - no-cache
244
- Accept-Ranges:
245
- - bytes
246
- Age:
247
- - '0'
248
- Server:
249
- - Pubnub Presence
250
- body:
251
- encoding: UTF-8
252
- string: '{"status": 200, "message": "OK", "service": "Presence"}'
253
- http_version:
254
- recorded_at: Mon, 31 Mar 2014 16:44:27 GMT
255
- - request:
256
- method: get
257
- uri: http://pubsub.pubnub.com/v2/presence/sub-key/demo-36/channel/rubyheartbeatdemo/heartbeat?pnsdk=PubNub-Ruby/3.5.1&state=%7B%7D&uuid=a3191078-9099-4b86-a36c-c03b03568b89
258
- body:
259
- encoding: US-ASCII
260
- string: ''
261
- headers:
262
- Accept-Encoding:
263
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
264
- Accept:
265
- - '*/*'
266
- User-Agent:
267
- - Ruby
268
- Connection:
269
- - keep-alive
270
- Keep-Alive:
271
- - 30
272
- response:
273
- status:
274
- code: 400
275
- message: OK
276
- headers:
277
- Date:
278
- - Mon, 31 Mar 2014 16:44:27 GMT
279
- Content-Type:
280
- - application/json
281
- Content-Length:
282
- - '55'
283
- Connection:
284
- - keep-alive
285
- Access-Control-Allow-Origin:
286
- - '*'
287
- Access-Control-Allow-Methods:
288
- - GET
289
- Cache-Control:
290
- - no-cache
291
- Accept-Ranges:
292
- - bytes
293
- Age:
294
- - '0'
295
- Server:
296
- - Pubnub Presence
297
- body:
298
- encoding: UTF-8
299
- string: '{"status": 200, "message": "OK", "service": "Presence"}'
300
- http_version:
301
- recorded_at: Mon, 31 Mar 2014 16:44:28 GMT
302
- - request:
303
- method: get
304
- uri: http://pubsub.pubnub.com/subscribe/demo-36/rubyheartbeatdemo/0/0?heartbeat=12&pnsdk=PubNub-Ruby/3.5.1&uuid=a74c5a27-76e7-4095-8f57-ebe1e4084ea0
305
- body:
306
- encoding: US-ASCII
307
- string: ''
308
- headers:
309
- Accept-Encoding:
310
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
311
- Accept:
312
- - '*/*'
313
- User-Agent:
314
- - Ruby
315
- Connection:
316
- - keep-alive
317
- Keep-Alive:
318
- - 30
319
- response:
320
- status:
321
- code: 200
322
- message: OK
323
- headers:
324
- Date:
325
- - Mon, 31 Mar 2014 16:55:04 GMT
326
- Content-Type:
327
- - text/javascript; charset="UTF-8"
328
- Content-Length:
329
- - '24'
330
- Connection:
331
- - keep-alive
332
- Cache-Control:
333
- - no-cache
334
- Access-Control-Allow-Origin:
335
- - '*'
336
- Access-Control-Allow-Methods:
337
- - GET
338
- body:
339
- encoding: UTF-8
340
- string: '[[],"13962834750580997"]'
341
- http_version:
342
- recorded_at: Mon, 31 Mar 2014 16:55:05 GMT
343
- - request:
344
- method: get
345
- uri: http://pubsub.pubnub.com/subscribe/demo-36/rubyheartbeatdemo/0/0?heartbeat=4&pnsdk=PubNub-Ruby/3.5.2&uuid=19befa34-c27a-4903-b2c3-bc02812d3c79
346
- body:
347
- encoding: US-ASCII
348
- string: ''
349
- headers:
350
- Accept-Encoding:
351
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
352
- Accept:
353
- - '*/*'
354
- User-Agent:
355
- - Ruby
356
- Connection:
357
- - keep-alive
358
- Keep-Alive:
359
- - 30
360
- response:
361
- status:
362
- code: 200
363
- message: OK
364
- headers:
365
- Date:
366
- - Thu, 10 Apr 2014 10:54:41 GMT
367
- Content-Type:
368
- - text/javascript; charset="UTF-8"
369
- Content-Length:
370
- - '24'
371
- Connection:
372
- - keep-alive
373
- Cache-Control:
374
- - no-cache
375
- Access-Control-Allow-Origin:
376
- - '*'
377
- Access-Control-Allow-Methods:
378
- - GET
379
- body:
380
- encoding: UTF-8
381
- string: '[[],"13971272816618646"]'
382
- http_version:
383
- recorded_at: Thu, 10 Apr 2014 10:54:43 GMT
384
- - request:
385
- method: get
386
- uri: http://pubsub.pubnub.com/subscribe/demo-36/rubyheartbeatdemo/0/0?heartbeat=12&pnsdk=PubNub-Ruby/3.5.2&uuid=c2564912-7b58-4f82-9088-08d8a77c0d99
387
- body:
388
- encoding: US-ASCII
389
- string: ''
390
- headers:
391
- Accept-Encoding:
392
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
393
- Accept:
394
- - '*/*'
395
- User-Agent:
396
- - Ruby
397
- Connection:
398
- - keep-alive
399
- Keep-Alive:
400
- - 30
401
- response:
402
- status:
403
- code: 200
404
- message: OK
405
- headers:
406
- Date:
407
- - Thu, 10 Apr 2014 10:54:41 GMT
408
- Content-Type:
409
- - text/javascript; charset="UTF-8"
410
- Content-Length:
411
- - '24'
412
- Connection:
413
- - keep-alive
414
- Cache-Control:
415
- - no-cache
416
- Access-Control-Allow-Origin:
417
- - '*'
418
- Access-Control-Allow-Methods:
419
- - GET
420
- body:
421
- encoding: UTF-8
422
- string: '[[],"13971272816630114"]'
423
- http_version:
424
- recorded_at: Thu, 10 Apr 2014 10:54:43 GMT
425
- - request:
426
- method: get
427
- uri: http://pubsub.pubnub.com/v2/presence/sub-key/demo-36/channel/rubyheartbeatdemo/heartbeat?pnsdk=PubNub-Ruby/3.5.2&state=%7B%7D&uuid=19befa34-c27a-4903-b2c3-bc02812d3c79
428
- body:
429
- encoding: US-ASCII
430
- string: ''
431
- headers:
432
- Accept-Encoding:
433
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
434
- Accept:
435
- - '*/*'
436
- User-Agent:
437
- - Ruby
438
- Connection:
439
- - keep-alive
440
- Keep-Alive:
441
- - 30
442
- response:
443
- status:
444
- code: 200
445
- message: OK
446
- headers:
447
- Date:
448
- - Thu, 10 Apr 2014 10:54:42 GMT
449
- Content-Type:
450
- - application/json
451
- Content-Length:
452
- - '55'
453
- Connection:
454
- - keep-alive
455
- Access-Control-Allow-Origin:
456
- - '*'
457
- Access-Control-Allow-Methods:
458
- - GET
459
- Cache-Control:
460
- - no-cache
461
- Accept-Ranges:
462
- - bytes
463
- Age:
464
- - '0'
465
- Server:
466
- - Pubnub Presence
467
- body:
468
- encoding: UTF-8
469
- string: '{"status": 200, "message": "OK", "service": "Presence"}'
470
- http_version:
471
- recorded_at: Thu, 10 Apr 2014 10:54:44 GMT
472
- - request:
473
- method: get
474
- uri: http://pubsub.pubnub.com/v2/presence/sub-key/demo-36/channel/rubyheartbeatdemo/heartbeat?pnsdk=PubNub-Ruby/3.5.2&state=%7B%7D&uuid=19befa34-c27a-4903-b2c3-bc02812d3c79
475
- body:
476
- encoding: US-ASCII
477
- string: ''
478
- headers:
479
- Accept-Encoding:
480
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
481
- Accept:
482
- - '*/*'
483
- User-Agent:
484
- - Ruby
485
- Connection:
486
- - keep-alive
487
- Keep-Alive:
488
- - 30
489
- response:
490
- status:
491
- code: 200
492
- message: OK
493
- headers:
494
- Date:
495
- - Thu, 10 Apr 2014 10:54:43 GMT
496
- Content-Type:
497
- - application/json
498
- Content-Length:
499
- - '55'
500
- Connection:
501
- - keep-alive
502
- Access-Control-Allow-Origin:
503
- - '*'
504
- Access-Control-Allow-Methods:
505
- - GET
506
- Cache-Control:
507
- - no-cache
508
- Accept-Ranges:
509
- - bytes
510
- Age:
511
- - '1'
512
- Server:
513
- - Pubnub Presence
514
- body:
515
- encoding: UTF-8
516
- string: '{"status": 200, "message": "OK", "service": "Presence"}'
517
- http_version:
518
- recorded_at: Thu, 10 Apr 2014 10:54:45 GMT
519
- - request:
520
- method: get
521
- uri: http://pubsub.pubnub.com/subscribe/demo/ping_3/0/14039847413557067?auth=demoish_authkey&pnsdk=PubNub-Ruby/3.5.11&uuid=rubytests
522
- body:
523
- encoding: US-ASCII
524
- string: ''
525
- headers:
526
- Accept-Encoding:
527
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
528
- Accept:
529
- - '*/*'
530
- User-Agent:
531
- - Ruby
532
- Connection:
533
- - keep-alive
534
- Keep-Alive:
535
- - 30
536
- response:
537
- status:
538
- code: 200
539
- message: OK
540
- headers:
541
- Date:
542
- - Wed, 08 Oct 2014 08:40:17 GMT
543
- Content-Type:
544
- - text/javascript; charset="UTF-8"
545
- Transfer-Encoding:
546
- - chunked
547
- Connection:
548
- - keep-alive
549
- Cache-Control:
550
- - no-cache
551
- Access-Control-Allow-Origin:
552
- - '*'
553
- Access-Control-Allow-Methods:
554
- - GET
555
- body:
556
- encoding: UTF-8
557
- string: '[["ping_3.php says 1412757304","ping_3.php says 1412757307","ping_3.php
558
- says 1412757310","ping_3.php says 1412757313","ping_3.php says 1412757316","ping_3.php
559
- says 1412757319","ping_3.php says 1412757322","ping_3.php says 1412757325","ping_3.php
560
- says 1412757328","ping_3.php says 1412757332","ping_3.php says 1412757335","ping_3.php
561
- says 1412757338","ping_3.php says 1412757341","ping_3.php says 1412757344","ping_3.php
562
- says 1412757347","ping_3.php says 1412757350","ping_3.php says 1412757353","ping_3.php
563
- says 1412757356","ping_3.php says 1412757359","ping_3.php says 1412757362","ping_3.php
564
- says 1412757366","ping_3.php says 1412757369","ping_3.php says 1412757372","ping_3.php
565
- says 1412757375","ping_3.php says 1412757378","ping_3.php says 1412757382","ping_3.php
566
- says 1412757385","ping_3.php says 1412757388","ping_3.php says 1412757392","ping_3.php
567
- says 1412757395","ping_3.php says 1412757399","ping_3.php says 1412757402","ping_3.php
568
- says 1412757405","ping_3.php says 1412757409","ping_3.php says 1412757413","ping_3.php
569
- says 1412757416","ping_3.php says 1412757420","ping_3.php says 1412757423","ping_3.php
570
- says 1412757426","ping_3.php says 1412757429","ping_3.php says 1412757432","ping_3.php
571
- says 1412757435","ping_3.php says 1412757438","ping_3.php says 1412757441","ping_3.php
572
- says 1412757444","ping_3.php says 1412757447","ping_3.php says 1412757451","ping_3.php
573
- says 1412757454","ping_3.php says 1412757457","ping_3.php says 1412757460","ping_3.php
574
- says 1412757463","ping_3.php says 1412757466","ping_3.php says 1412757469","ping_3.php
575
- says 1412757472","ping_3.php says 1412757476","ping_3.php says 1412757479","ping_3.php
576
- says 1412757482","ping_3.php says 1412757485","ping_3.php says 1412757488","ping_3.php
577
- says 1412757491","ping_3.php says 1412757494","ping_3.php says 1412757497","ping_3.php
578
- says 1412757500","ping_3.php says 1412757503","ping_3.php says 1412757507","ping_3.php
579
- says 1412757510","ping_3.php says 1412757513","ping_3.php says 1412757516","ping_3.php
580
- says 1412757519","ping_3.php says 1412757522","ping_3.php says 1412757525","ping_3.php
581
- says 1412757528","ping_3.php says 1412757531","ping_3.php says 1412757534","ping_3.php
582
- says 1412757537","ping_3.php says 1412757540","ping_3.php says 1412757544","ping_3.php
583
- says 1412757547","ping_3.php says 1412757550","ping_3.php says 1412757553","ping_3.php
584
- says 1412757556","ping_3.php says 1412757559","ping_3.php says 1412757562","ping_3.php
585
- says 1412757565","ping_3.php says 1412757568","ping_3.php says 1412757571","ping_3.php
586
- says 1412757575","ping_3.php says 1412757578","ping_3.php says 1412757581","ping_3.php
587
- says 1412757584","ping_3.php says 1412757587","ping_3.php says 1412757590","ping_3.php
588
- says 1412757593","ping_3.php says 1412757596","ping_3.php says 1412757599","ping_3.php
589
- says 1412757603","ping_3.php says 1412757606","ping_3.php says 1412757609","ping_3.php
590
- says 1412757612","ping_3.php says 1412757615"],"14127576155918979"]'
591
- http_version:
592
- recorded_at: Wed, 08 Oct 2014 08:40:18 GMT
593
- - request:
594
- method: get
595
- uri: http://pubsub.pubnub.com/subscribe/demo/ping_3/0/14127576155918979?auth=demoish_authkey&pnsdk=PubNub-Ruby/3.5.12&uuid=rubytests
596
- body:
597
- encoding: US-ASCII
598
- string: ''
599
- headers:
600
- Accept-Encoding:
601
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
602
- Accept:
603
- - '*/*'
604
- User-Agent:
605
- - Ruby
606
- Connection:
607
- - keep-alive
608
- Keep-Alive:
609
- - 30
610
- response:
611
- status:
612
- code: 200
613
- message: OK
614
- headers:
615
- Date:
616
- - Wed, 08 Oct 2014 12:33:37 GMT
617
- Content-Type:
618
- - text/javascript; charset="UTF-8"
619
- Transfer-Encoding:
620
- - chunked
621
- Connection:
622
- - keep-alive
623
- Cache-Control:
624
- - no-cache
625
- Access-Control-Allow-Origin:
626
- - '*'
627
- Access-Control-Allow-Methods:
628
- - GET
629
- body:
630
- encoding: UTF-8
631
- string: '[["ping_3.php says 1412771309","ping_3.php says 1412771312","ping_3.php
632
- says 1412771315","ping_3.php says 1412771318","ping_3.php says 1412771321","ping_3.php
633
- says 1412771324","ping_3.php says 1412771327","ping_3.php says 1412771330","ping_3.php
634
- says 1412771333","ping_3.php says 1412771337","ping_3.php says 1412771340","ping_3.php
635
- says 1412771343","ping_3.php says 1412771346","ping_3.php says 1412771349","ping_3.php
636
- says 1412771352","ping_3.php says 1412771355","ping_3.php says 1412771359","ping_3.php
637
- says 1412771362","ping_3.php says 1412771365","ping_3.php says 1412771368","ping_3.php
638
- says 1412771371","ping_3.php says 1412771374","ping_3.php says 1412771377","ping_3.php
639
- says 1412771380","ping_3.php says 1412771383","ping_3.php says 1412771386","ping_3.php
640
- says 1412771389","ping_3.php says 1412771393","ping_3.php says 1412771396","ping_3.php
641
- says 1412771399","ping_3.php says 1412771402","ping_3.php says 1412771405","ping_3.php
642
- says 1412771408","ping_3.php says 1412771411","ping_3.php says 1412771414","ping_3.php
643
- says 1412771417","ping_3.php says 1412771420","ping_3.php says 1412771423","ping_3.php
644
- says 1412771427","ping_3.php says 1412771430","ping_3.php says 1412771433","ping_3.php
645
- says 1412771436","ping_3.php says 1412771439","ping_3.php says 1412771442","ping_3.php
646
- says 1412771445","ping_3.php says 1412771448","ping_3.php says 1412771451","ping_3.php
647
- says 1412771454","ping_3.php says 1412771457","ping_3.php says 1412771460","ping_3.php
648
- says 1412771464","ping_3.php says 1412771467","ping_3.php says 1412771470","ping_3.php
649
- says 1412771473","ping_3.php says 1412771476","ping_3.php says 1412771479","ping_3.php
650
- says 1412771482","ping_3.php says 1412771485","ping_3.php says 1412771489","ping_3.php
651
- says 1412771492","ping_3.php says 1412771495","ping_3.php says 1412771498","ping_3.php
652
- says 1412771501","ping_3.php says 1412771504","ping_3.php says 1412771507","ping_3.php
653
- says 1412771510","ping_3.php says 1412771513","ping_3.php says 1412771517","ping_3.php
654
- says 1412771520","ping_3.php says 1412771523","ping_3.php says 1412771526","ping_3.php
655
- says 1412771529","ping_3.php says 1412771532","ping_3.php says 1412771535","ping_3.php
656
- says 1412771538","ping_3.php says 1412771541","ping_3.php says 1412771544","ping_3.php
657
- says 1412771547","ping_3.php says 1412771551","ping_3.php says 1412771554","ping_3.php
658
- says 1412771557","ping_3.php says 1412771560","ping_3.php says 1412771563","ping_3.php
659
- says 1412771566","ping_3.php says 1412771569","ping_3.php says 1412771572","ping_3.php
660
- says 1412771575","ping_3.php says 1412771578","ping_3.php says 1412771581","ping_3.php
661
- says 1412771585","ping_3.php says 1412771588","ping_3.php says 1412771591","ping_3.php
662
- says 1412771594","ping_3.php says 1412771597","ping_3.php says 1412771600","ping_3.php
663
- says 1412771603","ping_3.php says 1412771606","ping_3.php says 1412771609","ping_3.php
664
- says 1412771613","ping_3.php says 1412771616"],"14127716161848214"]'
665
- http_version:
666
- recorded_at: Wed, 08 Oct 2014 12:33:40 GMT
667
- recorded_with: VCR 2.9.2