opentok 3.0.3 → 3.1.0

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +249 -14
  3. data/lib/opentok/archive.rb +45 -4
  4. data/lib/opentok/archives.rb +62 -5
  5. data/lib/opentok/broadcast.rb +118 -0
  6. data/lib/opentok/broadcasts.rb +149 -0
  7. data/lib/opentok/client.rb +206 -3
  8. data/lib/opentok/connections.rb +28 -0
  9. data/lib/opentok/exceptions.rb +6 -0
  10. data/lib/opentok/opentok.rb +40 -8
  11. data/lib/opentok/session.rb +5 -0
  12. data/lib/opentok/signals.rb +47 -0
  13. data/lib/opentok/sip.rb +35 -0
  14. data/lib/opentok/stream.rb +46 -0
  15. data/lib/opentok/stream_list.rb +18 -0
  16. data/lib/opentok/streams.rb +79 -0
  17. data/lib/opentok/version.rb +1 -1
  18. data/spec/cassettes/OpenTok_Archives/calls_layout_on_archive_object.yml +45 -0
  19. data/spec/cassettes/OpenTok_Archives/changes_the_layout_of_an_archive.yml +36 -0
  20. data/spec/cassettes/OpenTok_Archives/should_create_hd_archives.yml +52 -0
  21. data/spec/cassettes/OpenTok_Broadcasts/calls_layout_on_broadcast_object.yml +55 -0
  22. data/spec/cassettes/OpenTok_Broadcasts/changes_the_layout_of_a_broadcast.yml +36 -0
  23. data/spec/cassettes/OpenTok_Broadcasts/fetches_a_hls_broadcast_url.yml +50 -0
  24. data/spec/cassettes/OpenTok_Broadcasts/finds_a_broadcast.yml +55 -0
  25. data/spec/cassettes/OpenTok_Broadcasts/starts_a_rtmp_broadcast.yml +59 -0
  26. data/spec/cassettes/OpenTok_Broadcasts/stops_a_broadcast.yml +45 -0
  27. data/spec/cassettes/OpenTok_Connections/forces_a_connection_to_be_terminated.yml +36 -0
  28. data/spec/cassettes/OpenTok_Signals/receives_a_valid_response_for_a_connection.yml +37 -0
  29. data/spec/cassettes/OpenTok_Signals/receives_a_valid_response_for_all_connections.yml +37 -0
  30. data/spec/cassettes/OpenTok_Streams/get_all_streams_information.yml +53 -0
  31. data/spec/cassettes/OpenTok_Streams/get_specific_stream_information.yml +42 -0
  32. data/spec/cassettes/OpenTok_Streams/layout_working_on_two_stream_list.yml +36 -0
  33. data/spec/opentok/archives_spec.rb +73 -0
  34. data/spec/opentok/broadcasts_spec.rb +171 -0
  35. data/spec/opentok/connection_spec.rb +38 -0
  36. data/spec/opentok/signal_spec.rb +50 -0
  37. data/spec/opentok/streams_spec.rb +75 -0
  38. metadata +48 -3
@@ -0,0 +1,50 @@
1
+ require "opentok/signals"
2
+ require "opentok/opentok"
3
+ require "opentok/version"
4
+ require "spec_helper"
5
+
6
+ describe OpenTok::Signals do
7
+ before(:each) do
8
+ now = Time.parse("2017-04-18 20:17:40 +1000")
9
+ allow(Time).to receive(:now) { now }
10
+ end
11
+
12
+ let(:api_key) { "123456" }
13
+ let(:api_secret) { "1234567890abcdef1234567890abcdef1234567890" }
14
+ let(:session_id) { "SESSIONID" }
15
+ let(:connection_id) { "CONNID" }
16
+ let(:opentok) { OpenTok::OpenTok.new api_key, api_secret }
17
+ let(:signal) { opentok.signals }
18
+
19
+ subject { signal }
20
+
21
+ it 'raise an error on nil sessionId' do
22
+ expect {
23
+ signal.send(nil)
24
+ }.to raise_error(ArgumentError)
25
+ end
26
+
27
+ it 'raise an error on empty sessionId' do
28
+ expect {
29
+ signal.send('')
30
+ }.to raise_error(ArgumentError)
31
+ end
32
+
33
+ it "receives a valid response for all connections", :vcr => { :erb => { :version => OpenTok::VERSION + "-Ruby-Version-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"} } do
34
+ opts = { "type" => "chat",
35
+ "data" => "Hello",
36
+ }
37
+ response = signal.send(session_id, "", opts)
38
+ expect(response).not_to be_nil
39
+ end
40
+
41
+ it "receives a valid response for a connection", :vcr => { :erb => { :version => OpenTok::VERSION + "-Ruby-Version-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"} } do
42
+ opts = { "type" => "chat",
43
+ "data" => "Hello",
44
+ }
45
+ response = signal.send(session_id, connection_id, opts)
46
+ expect(response).not_to be_nil
47
+ end
48
+
49
+
50
+ end
@@ -0,0 +1,75 @@
1
+ require 'opentok/opentok'
2
+ require 'opentok/version'
3
+ require 'opentok/streams'
4
+ require 'opentok/stream'
5
+ require 'opentok/stream_list'
6
+
7
+ require 'spec_helper'
8
+
9
+ describe OpenTok::Streams do
10
+ before(:each) do
11
+ now = Time.parse('2017-04-18 20:17:40 +1000')
12
+ allow(Time).to receive(:now) { now }
13
+ end
14
+
15
+ let(:api_key) { '123456' }
16
+ let(:api_secret) { '1234567890abcdef1234567890abcdef1234567890' }
17
+ let(:session_id) { 'SESSIONID' }
18
+ let(:stream_id) { 'STREAMID' }
19
+ let(:opentok) { OpenTok::OpenTok.new api_key, api_secret }
20
+ let(:streams) { opentok.streams}
21
+
22
+ subject { streams }
23
+
24
+ it { should be_an_instance_of OpenTok::Streams }
25
+ it 'raise an error on nil session_id' do
26
+ expect {
27
+ streams.all(nil)
28
+ }.to raise_error(ArgumentError)
29
+ end
30
+ it 'raise an error on empty session_id' do
31
+ expect {
32
+ streams.all('')
33
+ }.to raise_error(ArgumentError)
34
+ end
35
+ it 'get all streams information', :vcr => { :erb => { :version => OpenTok::VERSION + "-Ruby-Version-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"} } do
36
+ all_streams = streams.all(session_id)
37
+ expect(all_streams).to be_an_instance_of OpenTok::StreamList
38
+ expect(all_streams.total).to eq 2
39
+ expect(all_streams[0].layoutClassList[1]).to eq "focus"
40
+ end
41
+ it 'get specific stream information', :vcr => { :erb => { :version => OpenTok::VERSION + "-Ruby-Version-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"} } do
42
+ stream = streams.find(session_id, stream_id)
43
+ expect(stream).to be_an_instance_of OpenTok::Stream
44
+ expect(stream.videoType).to eq 'camera'
45
+ expect(stream.layoutClassList.count).to eq 1
46
+ expect(stream.layoutClassList.first).to eq "full"
47
+ expect(stream.id).not_to be_nil
48
+ end
49
+ it 'layout raises an error on empty session_id' do
50
+ expect {
51
+ streams.layout('', {} )
52
+ }.to raise_error(ArgumentError)
53
+ end
54
+ it 'layout raises an error on an empty stream list' do
55
+ expect {
56
+ streams.layout(session_id, {})
57
+ }.to raise_error(ArgumentError)
58
+ end
59
+ it 'layout working on two stream list', :vcr => { :erb => { :version => OpenTok::VERSION + "-Ruby-Version-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"} } do
60
+ streams_list = {
61
+ :items => [
62
+ {
63
+ :id => "8b732909-0a06-46a2-8ea8-074e64d43422",
64
+ :layoutClassList => ["full"]
65
+ },
66
+ {
67
+ :id => "8b732909-0a06-46a2-8ea8-074e64d43423",
68
+ :layoutClassList => ["full", "focus"]
69
+ }
70
+ ]
71
+ }
72
+ response = streams.layout(session_id, streams_list)
73
+ expect(response).not_to be_nil
74
+ end
75
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentok
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stijn Mathysen
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2018-07-10 00:00:00.000000000 Z
15
+ date: 2018-10-09 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: bundler
@@ -183,13 +183,20 @@ files:
183
183
  - lib/opentok/archive.rb
184
184
  - lib/opentok/archive_list.rb
185
185
  - lib/opentok/archives.rb
186
+ - lib/opentok/broadcast.rb
187
+ - lib/opentok/broadcasts.rb
186
188
  - lib/opentok/client.rb
189
+ - lib/opentok/connections.rb
187
190
  - lib/opentok/constants.rb
188
191
  - lib/opentok/exceptions.rb
189
192
  - lib/opentok/extensions/hash.rb
190
193
  - lib/opentok/opentok.rb
191
194
  - lib/opentok/session.rb
195
+ - lib/opentok/signals.rb
192
196
  - lib/opentok/sip.rb
197
+ - lib/opentok/stream.rb
198
+ - lib/opentok/stream_list.rb
199
+ - lib/opentok/streams.rb
193
200
  - lib/opentok/token_generator.rb
194
201
  - lib/opentok/version.rb
195
202
  - opentok.gemspec
@@ -212,8 +219,11 @@ files:
212
219
  - sample/HelloWorld/hello_world.rb
213
220
  - sample/HelloWorld/public/js/helloworld.js
214
221
  - sample/HelloWorld/views/index.erb
222
+ - spec/cassettes/OpenTok_Archives/calls_layout_on_archive_object.yml
223
+ - spec/cassettes/OpenTok_Archives/changes_the_layout_of_an_archive.yml
215
224
  - spec/cassettes/OpenTok_Archives/should_create_archives.yml
216
225
  - spec/cassettes/OpenTok_Archives/should_create_audio_only_archives.yml
226
+ - spec/cassettes/OpenTok_Archives/should_create_hd_archives.yml
217
227
  - spec/cassettes/OpenTok_Archives/should_create_individual_archives.yml
218
228
  - spec/cassettes/OpenTok_Archives/should_create_named_archives.yml
219
229
  - spec/cassettes/OpenTok_Archives/should_delete_an_archive_by_id.yml
@@ -227,6 +237,13 @@ files:
227
237
  - spec/cassettes/OpenTok_Archives/when_many_archives_are_created/should_return_count_number_of_archives.yml
228
238
  - spec/cassettes/OpenTok_Archives/when_many_archives_are_created/should_return_part_of_the_archives_when_using_offset_and_count.yml
229
239
  - spec/cassettes/OpenTok_Archives/when_many_archives_are_created/should_return_session_archives.yml
240
+ - spec/cassettes/OpenTok_Broadcasts/calls_layout_on_broadcast_object.yml
241
+ - spec/cassettes/OpenTok_Broadcasts/changes_the_layout_of_a_broadcast.yml
242
+ - spec/cassettes/OpenTok_Broadcasts/fetches_a_hls_broadcast_url.yml
243
+ - spec/cassettes/OpenTok_Broadcasts/finds_a_broadcast.yml
244
+ - spec/cassettes/OpenTok_Broadcasts/starts_a_rtmp_broadcast.yml
245
+ - spec/cassettes/OpenTok_Broadcasts/stops_a_broadcast.yml
246
+ - spec/cassettes/OpenTok_Connections/forces_a_connection_to_be_terminated.yml
230
247
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions.yml
231
248
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_default_sessions.yml
232
249
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_relayed_media_sessions.yml
@@ -236,12 +253,21 @@ files:
236
253
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_routed_media_sessions_with_a_location_hint.yml
237
254
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_sessions_with_a_location_hint.yml
238
255
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/with_an_addendum_to_the_user_agent_string/should_append_the_addendum_to_the_user_agent_header.yml
256
+ - spec/cassettes/OpenTok_Signals/receives_a_valid_response_for_a_connection.yml
257
+ - spec/cassettes/OpenTok_Signals/receives_a_valid_response_for_all_connections.yml
239
258
  - spec/cassettes/OpenTok_Sip/receives_a_valid_response.yml
259
+ - spec/cassettes/OpenTok_Streams/get_all_streams_information.yml
260
+ - spec/cassettes/OpenTok_Streams/get_specific_stream_information.yml
261
+ - spec/cassettes/OpenTok_Streams/layout_working_on_two_stream_list.yml
240
262
  - spec/matchers/token.rb
241
263
  - spec/opentok/archives_spec.rb
264
+ - spec/opentok/broadcasts_spec.rb
265
+ - spec/opentok/connection_spec.rb
242
266
  - spec/opentok/opentok_spec.rb
243
267
  - spec/opentok/session_spec.rb
268
+ - spec/opentok/signal_spec.rb
244
269
  - spec/opentok/sip_spec.rb
270
+ - spec/opentok/streams_spec.rb
245
271
  - spec/shared/opentok_generates_tokens.rb
246
272
  - spec/shared/session_generates_tokens.rb
247
273
  - spec/spec_helper.rb
@@ -265,13 +291,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
265
291
  version: '0'
266
292
  requirements: []
267
293
  rubyforge_project:
268
- rubygems_version: 2.5.2
294
+ rubygems_version: 2.5.2.3
269
295
  signing_key:
270
296
  specification_version: 4
271
297
  summary: Ruby gem for the OpenTok API
272
298
  test_files:
299
+ - spec/cassettes/OpenTok_Archives/calls_layout_on_archive_object.yml
300
+ - spec/cassettes/OpenTok_Archives/changes_the_layout_of_an_archive.yml
273
301
  - spec/cassettes/OpenTok_Archives/should_create_archives.yml
274
302
  - spec/cassettes/OpenTok_Archives/should_create_audio_only_archives.yml
303
+ - spec/cassettes/OpenTok_Archives/should_create_hd_archives.yml
275
304
  - spec/cassettes/OpenTok_Archives/should_create_individual_archives.yml
276
305
  - spec/cassettes/OpenTok_Archives/should_create_named_archives.yml
277
306
  - spec/cassettes/OpenTok_Archives/should_delete_an_archive_by_id.yml
@@ -285,6 +314,13 @@ test_files:
285
314
  - spec/cassettes/OpenTok_Archives/when_many_archives_are_created/should_return_count_number_of_archives.yml
286
315
  - spec/cassettes/OpenTok_Archives/when_many_archives_are_created/should_return_part_of_the_archives_when_using_offset_and_count.yml
287
316
  - spec/cassettes/OpenTok_Archives/when_many_archives_are_created/should_return_session_archives.yml
317
+ - spec/cassettes/OpenTok_Broadcasts/calls_layout_on_broadcast_object.yml
318
+ - spec/cassettes/OpenTok_Broadcasts/changes_the_layout_of_a_broadcast.yml
319
+ - spec/cassettes/OpenTok_Broadcasts/fetches_a_hls_broadcast_url.yml
320
+ - spec/cassettes/OpenTok_Broadcasts/finds_a_broadcast.yml
321
+ - spec/cassettes/OpenTok_Broadcasts/starts_a_rtmp_broadcast.yml
322
+ - spec/cassettes/OpenTok_Broadcasts/stops_a_broadcast.yml
323
+ - spec/cassettes/OpenTok_Connections/forces_a_connection_to_be_terminated.yml
288
324
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions.yml
289
325
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_default_sessions.yml
290
326
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_relayed_media_sessions.yml
@@ -294,12 +330,21 @@ test_files:
294
330
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_routed_media_sessions_with_a_location_hint.yml
295
331
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_sessions_with_a_location_hint.yml
296
332
  - spec/cassettes/OpenTok_OpenTok/when_initialized_properly/with_an_addendum_to_the_user_agent_string/should_append_the_addendum_to_the_user_agent_header.yml
333
+ - spec/cassettes/OpenTok_Signals/receives_a_valid_response_for_a_connection.yml
334
+ - spec/cassettes/OpenTok_Signals/receives_a_valid_response_for_all_connections.yml
297
335
  - spec/cassettes/OpenTok_Sip/receives_a_valid_response.yml
336
+ - spec/cassettes/OpenTok_Streams/get_all_streams_information.yml
337
+ - spec/cassettes/OpenTok_Streams/get_specific_stream_information.yml
338
+ - spec/cassettes/OpenTok_Streams/layout_working_on_two_stream_list.yml
298
339
  - spec/matchers/token.rb
299
340
  - spec/opentok/archives_spec.rb
341
+ - spec/opentok/broadcasts_spec.rb
342
+ - spec/opentok/connection_spec.rb
300
343
  - spec/opentok/opentok_spec.rb
301
344
  - spec/opentok/session_spec.rb
345
+ - spec/opentok/signal_spec.rb
302
346
  - spec/opentok/sip_spec.rb
347
+ - spec/opentok/streams_spec.rb
303
348
  - spec/shared/opentok_generates_tokens.rb
304
349
  - spec/shared/session_generates_tokens.rb
305
350
  - spec/spec_helper.rb