cine_io 0.0.6 → 0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5b0ec33bdf989e04c860f22f29eae5fb981b6a63
4
- data.tar.gz: e1608d96a8949fa6adce9effdbcefda6c40520b0
3
+ metadata.gz: 129fa81cea126c8c282860014af9c8996c17b517
4
+ data.tar.gz: 82c95d117260a42fcff3dccbaf965375a0fb5259
5
5
  SHA512:
6
- metadata.gz: d84a65ecf9e6d49802800214a645d1e010f8b89f65c204d55fce57dbdd66cf9d82d284f37d86aed3ee3a528a2db85c6cf98009b7b8a4c90d546f9308c1372371
7
- data.tar.gz: 424c2cd304fa73b3651c554b69b000dfeddc141a1ec28fb5b385215f5433524827db21227aafe96e0e1c1ac37f0e5ca5c2c5fe038f5c0583b5106b6b4ba405d0
6
+ metadata.gz: f1a6e3da38a5075e6eab338e39b1d8e336807c4acc666649f01622b449dc16e8b58f1b96a32487ed4d868f05e7d743f0d0c40e46754a8ccbe6e514b60a52fad9
7
+ data.tar.gz: 762f2912e3b05d100d473e91167175ce4ee34bde1bc4fee435b90d2706cd526df039260aa60bae0f076970568ec8da3cd0335f8ac03678803531c91c65737a87
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/cine-io/cineio-ruby.svg?branch=master)](https://travis-ci.org/cine-io/cineio-ruby)
4
4
 
5
- The ruby gem for [cine.io](cine.io).
5
+ The [ruby gem](https://rubygems.org/gems/cine_io) for [cine.io](cine.io).
6
6
 
7
7
  ## Installation
8
8
 
@@ -98,10 +98,17 @@ stream = client.streams.create(params)
98
98
  To get all the recordings of stream:
99
99
 
100
100
  ```ruby
101
- recordings = client.streams.recordings('STREAM_ID')
101
+ recordings = client.streams.recordings.index('STREAM_ID')
102
102
  # => [CineIo::StreamRecording, …]
103
103
  ```
104
104
 
105
+ To delete a the recordings of stream:
106
+
107
+ ```ruby
108
+ recordings = client.streams.recordings.delete('STREAM_ID', 'recordingName')
109
+ # => Date String
110
+ ```
111
+
105
112
  To fetch the [Flash Media Live Encoder](http://www.adobe.com/products/flash-media-encoder.html) profile for a stream:
106
113
 
107
114
  ```ruby
@@ -0,0 +1,11 @@
1
+ class CineIo::StreamRecordingsHandler < CineIo::ResourceHandler
2
+
3
+ def index(stream_id)
4
+ get_resource("/stream/recordings", id: stream_id).map(&CineIo::StreamRecording.method(:new))
5
+ end
6
+
7
+ def delete(stream_id, recordingName)
8
+ delete_resource("/stream/recording", id: stream_id, name: recordingName).fetch('deletedAt')
9
+ end
10
+
11
+ end
@@ -12,8 +12,8 @@ class CineIo::StreamsHandler < CineIo::ResourceHandler
12
12
  get_resource("/stream", id: stream_id, fmleProfile: true).fetch('content')
13
13
  end
14
14
 
15
- def recordings(stream_id)
16
- get_resource("/stream/recordings", id: stream_id).map(&CineIo::StreamRecording.method(:new))
15
+ def recordings
16
+ @streams ||= CineIo::StreamRecordingsHandler.new(@client)
17
17
  end
18
18
 
19
19
  # params
@@ -1,3 +1,3 @@
1
1
  module CineIo
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ describe CineIo::StreamRecordingsHandler do
4
+
5
+ let(:client) { CineIo::Client.new(:secretKey => "MY SECRET", :publicKey => "MY PUBLIC") }
6
+
7
+ subject { described_class.new(client) }
8
+
9
+ describe '#index' do
10
+ it "returns a stream" do
11
+ VCR.use_cassette('get_stream_recordings') do
12
+ recordings = subject.index("53718cef450ff80200f81856")
13
+ expect(recordings.length).to eq(2)
14
+
15
+ recording = recordings.first
16
+ expect(recording).to be_a(CineIo::StreamRecording)
17
+ expect(recording.name).to eq("recordingName")
18
+ expect(recording.url).to eq("recordingUrl")
19
+ expect(recording.date).to eq("recording Date")
20
+ expect(recording.size).to eq(12345)
21
+ end
22
+ end
23
+
24
+ it 'can throw an error on api exception' do
25
+ VCR.use_cassette('get_stream_recordings_error') do
26
+ expect {subject.index("NOT_AN_ID")}.to raise_error(CineIo::ApiError, "An unknown error has occured.")
27
+ end
28
+ end
29
+ end
30
+
31
+ describe '#delete' do
32
+ it "returns a stream" do
33
+ VCR.use_cassette('delete_stream_recording') do
34
+ recordingDeletedAt = subject.delete("53718cef450ff80200f81856", "VALID_RECORDING")
35
+ expect(recordingDeletedAt).to eq("2014-06-09T20:11:20.608Z")
36
+ end
37
+ end
38
+
39
+ it 'can throw an error on api exception' do
40
+ VCR.use_cassette('delete_stream_recording_error') do
41
+ expect {subject.delete("53718cef450ff80200f81856", "NOT_A_RECORDING")}.to raise_error(CineIo::ApiError, "An unknown error has occured.")
42
+ end
43
+ end
44
+ end
45
+
46
+ end
@@ -26,24 +26,12 @@ describe CineIo::StreamsHandler do
26
26
  end
27
27
 
28
28
  describe '#recordings' do
29
- it "returns a stream" do
30
- VCR.use_cassette('get_stream_recordings') do
31
- recordings = subject.recordings("53718cef450ff80200f81856")
32
- expect(recordings.length).to eq(2)
33
-
34
- recording = recordings.first
35
- expect(recording).to be_a(CineIo::StreamRecording)
36
- expect(recording.name).to eq("recordingName")
37
- expect(recording.url).to eq("recordingUrl")
38
- expect(recording.date).to eq("recording Date")
39
- expect(recording.size).to eq(12345)
40
- end
29
+ it 'returns an instance of a StreamRecordingsHandler' do
30
+ expect(subject.recordings).to be_a(CineIo::StreamRecordingsHandler)
41
31
  end
42
32
 
43
- it 'can throw an error on api exception' do
44
- VCR.use_cassette('get_stream_recordings_error') do
45
- expect {subject.recordings("NOT_AN_ID")}.to raise_error(CineIo::ApiError, "An unknown error has occured.")
46
- end
33
+ it 'passes along the client to the StreamRecordingsHandler' do
34
+ expect(subject.recordings.instance_variable_get(:@client)).to eq(client)
47
35
  end
48
36
  end
49
37
 
@@ -0,0 +1,41 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: https://www.cine.io/api/1/-/stream/recording
6
+ body:
7
+ encoding: US-ASCII
8
+ string: secretKey=MY+SECRET&id=53718cef450ff80200f81856&name=VALID_RECORDING
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ Content-Type:
15
+ - application/x-www-form-urlencoded
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Date:
24
+ - Mon, 09 Jun 2014 20:11:20 GMT
25
+ Set-Cookie:
26
+ - connect.sid=s%3Ai7nlBuDnKvrZJHC7GhJAcos6.BabWYwU0yuQYyqe9oely9%2FrDxtWc1dlcl2qAt3zRdi8;
27
+ Path=/; HttpOnly
28
+ Vary:
29
+ - Accept-Encoding
30
+ X-Powered-By:
31
+ - Express
32
+ Content-Length:
33
+ - '111'
34
+ Connection:
35
+ - keep-alive
36
+ body:
37
+ encoding: US-ASCII
38
+ string: ! '{"deletedAt":"2014-06-09T20:11:20.608Z"}'
39
+ http_version:
40
+ recorded_at: Mon, 09 Jun 2014 20:11:20 GMT
41
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,38 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: https://www.cine.io/api/1/-/stream/recording
6
+ body:
7
+ encoding: US-ASCII
8
+ string: secretKey=MY+SECRET&id=53718cef450ff80200f81856&name=NOT_A_RECORDING
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ Content-Type:
15
+ - application/x-www-form-urlencoded
16
+ response:
17
+ status:
18
+ code: 503
19
+ message: Service Unavailable
20
+ headers:
21
+ Cache-Control:
22
+ - no-cache, no-store
23
+ Content-Type:
24
+ - text/html; charset=utf-8
25
+ Date:
26
+ - Mon, 09 Jun 2014 20:12:42 GMT
27
+ Server:
28
+ - MochiWeb/1.0 (Any of you quaids got a smint?)
29
+ Content-Length:
30
+ - '484'
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: US-ASCII
35
+ string: An unknown error has occured.
36
+ http_version:
37
+ recorded_at: Mon, 09 Jun 2014 20:12:42 GMT
38
+ recorded_with: VCR 2.9.2
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cine_io
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - cine.io
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-29 00:00:00.000000000 Z
11
+ date: 2014-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -101,11 +101,13 @@ files:
101
101
  - lib/cine_io/resource_handler.rb
102
102
  - lib/cine_io/stream.rb
103
103
  - lib/cine_io/stream_recording.rb
104
+ - lib/cine_io/stream_recordings_handler.rb
104
105
  - lib/cine_io/streams_handler.rb
105
106
  - lib/cine_io/version.rb
106
107
  - spec/cine_io/project_spec.rb
107
108
  - spec/cine_io/projects_handler_spec.rb
108
109
  - spec/cine_io/stream_recording_spec.rb
110
+ - spec/cine_io/stream_recordings_handler_spec.rb
109
111
  - spec/cine_io/stream_spec.rb
110
112
  - spec/cine_io/streams_handler_spec.rb
111
113
  - spec/cine_io_spec.rb
@@ -116,6 +118,8 @@ files:
116
118
  - spec/fixtures/vcr_cassettes/delete_project_error.yml
117
119
  - spec/fixtures/vcr_cassettes/delete_stream.yml
118
120
  - spec/fixtures/vcr_cassettes/delete_stream_error.yml
121
+ - spec/fixtures/vcr_cassettes/delete_stream_recording.yml
122
+ - spec/fixtures/vcr_cassettes/delete_stream_recording_error.yml
119
123
  - spec/fixtures/vcr_cassettes/get_fmle_profile.yml
120
124
  - spec/fixtures/vcr_cassettes/get_fmle_profile_error.yml
121
125
  - spec/fixtures/vcr_cassettes/get_project.yml
@@ -159,6 +163,7 @@ test_files:
159
163
  - spec/cine_io/project_spec.rb
160
164
  - spec/cine_io/projects_handler_spec.rb
161
165
  - spec/cine_io/stream_recording_spec.rb
166
+ - spec/cine_io/stream_recordings_handler_spec.rb
162
167
  - spec/cine_io/stream_spec.rb
163
168
  - spec/cine_io/streams_handler_spec.rb
164
169
  - spec/cine_io_spec.rb
@@ -169,6 +174,8 @@ test_files:
169
174
  - spec/fixtures/vcr_cassettes/delete_project_error.yml
170
175
  - spec/fixtures/vcr_cassettes/delete_stream.yml
171
176
  - spec/fixtures/vcr_cassettes/delete_stream_error.yml
177
+ - spec/fixtures/vcr_cassettes/delete_stream_recording.yml
178
+ - spec/fixtures/vcr_cassettes/delete_stream_recording_error.yml
172
179
  - spec/fixtures/vcr_cassettes/get_fmle_profile.yml
173
180
  - spec/fixtures/vcr_cassettes/get_fmle_profile_error.yml
174
181
  - spec/fixtures/vcr_cassettes/get_project.yml