cine_io 0.0.3 → 0.0.4

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.
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  *.gem
2
2
  *.rbc
3
+ *.DS_Store
3
4
  .bundle
4
5
  .config
5
6
  .yardoc
data/cine_io.gemspec CHANGED
@@ -19,8 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
23
- spec.add_development_dependency "rspec"
24
- spec.add_development_dependency "webmock"
25
- spec.add_development_dependency "vcr"
22
+ spec.add_development_dependency "rake", '~> 10.3.0'
23
+ spec.add_development_dependency "rspec", '~> 3.0.0'
24
+ spec.add_development_dependency "webmock", '~> 1.18.0'
25
+ spec.add_development_dependency "vcr", '~> 2.9.0'
26
26
  end
@@ -4,4 +4,8 @@ class CineIo::ProjectsHandler < CineIo::ResourceHandler
4
4
  CineIo::Project.new get_resource("/project")
5
5
  end
6
6
 
7
+ def delete
8
+ delete_resource("/project").fetch('deletedAt')
9
+ end
10
+
7
11
  end
@@ -30,4 +30,16 @@ class CineIo::ResourceHandler
30
30
  JSON.parse(response.body)
31
31
  end
32
32
 
33
+ def delete_resource(path, params={})
34
+ uri = URI.parse("#{CineIo::BASE_URL}#{path}")
35
+ request = Net::HTTP::Delete.new(uri.request_uri)
36
+ request.set_form_data({:secretKey => @client.config.fetch(:secretKey)}.merge(params))
37
+ http = Net::HTTP.new(uri.host, uri.port)
38
+ http.use_ssl = (uri.scheme == "https")
39
+ response = http.request(request)
40
+
41
+ raise CineIo::ApiError.new(response.body) unless response.is_a?(Net::HTTPSuccess)
42
+ JSON.parse(response.body)
43
+ end
44
+
33
45
  end
@@ -16,4 +16,8 @@ class CineIo::StreamsHandler < CineIo::ResourceHandler
16
16
  CineIo::Stream.new post_resource("/stream")
17
17
  end
18
18
 
19
+ def delete(stream_id)
20
+ delete_resource("/stream", id: stream_id).fetch('deletedAt')
21
+ end
22
+
19
23
  end
@@ -1,3 +1,3 @@
1
1
  module CineIo
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -22,4 +22,19 @@ describe CineIo::ProjectsHandler do
22
22
  end
23
23
  end
24
24
 
25
+ describe '#delete' do
26
+ it "returns a date" do
27
+ VCR.use_cassette('delete_project') do
28
+ deleted_date = subject.delete
29
+ expect(deleted_date).not_to be_nil
30
+ end
31
+ end
32
+
33
+ it 'can throw an error on api exception' do
34
+ VCR.use_cassette('delete_project_error') do
35
+ expect {subject.delete}.to raise_error(CineIo::ApiError, "An unknown error has occured.")
36
+ end
37
+ end
38
+ end
39
+
25
40
  end
@@ -45,7 +45,7 @@ describe CineIo::StreamsHandler do
45
45
  it "returns the streams" do
46
46
  VCR.use_cassette('get_streams') do
47
47
  streams = subject.index
48
- expect(streams).to have(1).item
48
+ expect(streams.length).to eq(1)
49
49
  stream = streams.first
50
50
  expect(stream).to be_a(CineIo::Stream)
51
51
  expect(stream.id).to eq("53718cef450ff80200f81856")
@@ -81,4 +81,19 @@ describe CineIo::StreamsHandler do
81
81
  end
82
82
  end
83
83
 
84
+ describe '#delete' do
85
+ it "returns a date" do
86
+ VCR.use_cassette('delete_stream') do
87
+ deleted_date = subject.delete('538f79dddfd24d0a00647085')
88
+ expect(deleted_date).not_to be_nil
89
+ end
90
+ end
91
+
92
+ it 'can throw an error on api exception' do
93
+ VCR.use_cassette('delete_stream_error') do
94
+ expect {subject.delete('NOT_A_STREAM')}.to raise_error(CineIo::ApiError, "An unknown error has occured.")
95
+ end
96
+ end
97
+ end
98
+
84
99
  end
@@ -0,0 +1,41 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: https://www.cine.io/api/1/-/project
6
+ body:
7
+ encoding: US-ASCII
8
+ string: secretKey=MY+SECRET&id=538f79dddfd24d0a00647085
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: ! '{"id":"538f79dddfd24d0a00647085","updatedAt":"2014-06-09T20:11:20.610Z","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/-/project
6
+ body:
7
+ encoding: US-ASCII
8
+ string: secretKey=MY+SECRET
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
@@ -0,0 +1,41 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: https://www.cine.io/api/1/-/stream
6
+ body:
7
+ encoding: US-ASCII
8
+ string: secretKey=MY+SECRET&id=538f79dddfd24d0a00647085
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: ! '{"id":"538f79dddfd24d0a00647085","updatedAt":"2014-06-09T20:11:20.610Z","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
6
+ body:
7
+ encoding: US-ASCII
8
+ string: secretKey=MY+SECRET&id=538f79dddfd24d0a00647085
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,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cine_io
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-03 00:00:00.000000000 Z
12
+ date: 2014-06-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -32,65 +32,65 @@ dependencies:
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - ! '>='
35
+ - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: '0'
37
+ version: 10.3.0
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ! '>='
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: '0'
45
+ version: 10.3.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rspec
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - ! '>='
51
+ - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
53
+ version: 3.0.0
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - ! '>='
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 3.0.0
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: webmock
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
- - - ! '>='
67
+ - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: '0'
69
+ version: 1.18.0
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
- - - ! '>='
75
+ - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: '0'
77
+ version: 1.18.0
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: vcr
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
- - - ! '>='
83
+ - - ~>
84
84
  - !ruby/object:Gem::Version
85
- version: '0'
85
+ version: 2.9.0
86
86
  type: :development
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
- - - ! '>='
91
+ - - ~>
92
92
  - !ruby/object:Gem::Version
93
- version: '0'
93
+ version: 2.9.0
94
94
  description: cine.io is an api driven platform for creating and publish live streams.
95
95
  The provides cine.io functionality using your given public and secret keys.
96
96
  email:
@@ -120,6 +120,10 @@ files:
120
120
  - spec/cine_io_spec.rb
121
121
  - spec/fixtures/vcr_cassettes/create_stream.yml
122
122
  - spec/fixtures/vcr_cassettes/create_stream_error.yml
123
+ - spec/fixtures/vcr_cassettes/delete_project.yml
124
+ - spec/fixtures/vcr_cassettes/delete_project_error.yml
125
+ - spec/fixtures/vcr_cassettes/delete_stream.yml
126
+ - spec/fixtures/vcr_cassettes/delete_stream_error.yml
123
127
  - spec/fixtures/vcr_cassettes/get_fmle_profile.yml
124
128
  - spec/fixtures/vcr_cassettes/get_fmle_profile_error.yml
125
129
  - spec/fixtures/vcr_cassettes/get_project.yml
@@ -162,6 +166,10 @@ test_files:
162
166
  - spec/cine_io_spec.rb
163
167
  - spec/fixtures/vcr_cassettes/create_stream.yml
164
168
  - spec/fixtures/vcr_cassettes/create_stream_error.yml
169
+ - spec/fixtures/vcr_cassettes/delete_project.yml
170
+ - spec/fixtures/vcr_cassettes/delete_project_error.yml
171
+ - spec/fixtures/vcr_cassettes/delete_stream.yml
172
+ - spec/fixtures/vcr_cassettes/delete_stream_error.yml
165
173
  - spec/fixtures/vcr_cassettes/get_fmle_profile.yml
166
174
  - spec/fixtures/vcr_cassettes/get_fmle_profile_error.yml
167
175
  - spec/fixtures/vcr_cassettes/get_project.yml