brightcove-api 1.0.8 → 1.0.9
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/.rvmrc +2 -0
- data/CHANELOG.markdown +4 -0
- data/Gemfile +8 -7
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/brightcove-api.gemspec +7 -3
- data/lib/brightcove-api.rb +42 -2
- data/test/fakeweb/delete_video_response.json +1 -1
- data/test/test_brightcove-api.rb +18 -2
- metadata +26 -12
data/.rvmrc
ADDED
data/CHANELOG.markdown
CHANGED
data/Gemfile
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
source :rubygems
|
2
2
|
|
3
3
|
group :development do
|
4
|
-
gem
|
5
|
-
gem
|
6
|
-
gem
|
4
|
+
gem 'bundler', '~> 1.0.0'
|
5
|
+
gem 'jeweler', '~> 1.5.1'
|
6
|
+
gem 'rcov', '~> 0.9.9'
|
7
7
|
end
|
8
8
|
|
9
9
|
group :test do
|
@@ -11,7 +11,8 @@ group :test do
|
|
11
11
|
gem 'mocha'
|
12
12
|
end
|
13
13
|
|
14
|
-
gem 'httparty',
|
15
|
-
gem 'json',
|
16
|
-
gem 'rest-client',
|
17
|
-
gem '
|
14
|
+
gem 'httparty', '~> 0.7.7'
|
15
|
+
gem 'json', '~> 1.4.6'
|
16
|
+
gem 'rest-client', '~> 1.6.1'
|
17
|
+
gem 'multipart-post', '~> 1.1.2'
|
18
|
+
gem 'orderedhash', '~> 0.0.6'
|
data/Rakefile
CHANGED
@@ -36,8 +36,6 @@ Rcov::RcovTask.new do |test|
|
|
36
36
|
test.verbose = true
|
37
37
|
end
|
38
38
|
|
39
|
-
task :default => :test
|
40
|
-
|
41
39
|
require 'rake/rdoctask'
|
42
40
|
Rake::RDocTask.new do |rdoc|
|
43
41
|
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
@@ -48,6 +46,8 @@ Rake::RDocTask.new do |rdoc|
|
|
48
46
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
49
47
|
end
|
50
48
|
|
49
|
+
task :default => :test_rubies
|
50
|
+
|
51
51
|
task :test_rubies do
|
52
|
-
system "rvm 1.8.7,1.9.2 rake test"
|
52
|
+
system "rvm 1.8.7@brightcove-api_gem,1.9.2@brightcove-api_gem rake test"
|
53
53
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.9
|
data/brightcove-api.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{brightcove-api}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["David Czarnecki"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-06-22}
|
13
13
|
s.description = %q{Ruby gem for interacting with the Brightcove media API. http://docs.brightcove.com/en/media/}
|
14
14
|
s.email = %q{dczarnecki@agoragames.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
"README.md"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
|
+
".rvmrc",
|
20
21
|
"CHANELOG.markdown",
|
21
22
|
"Gemfile",
|
22
23
|
"LICENSE",
|
@@ -35,7 +36,7 @@ Gem::Specification.new do |s|
|
|
35
36
|
s.homepage = %q{http://github.com/BrightcoveOS/Ruby-MAPI-Wrapper}
|
36
37
|
s.licenses = ["MIT"]
|
37
38
|
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = %q{1.
|
39
|
+
s.rubygems_version = %q{1.5.3}
|
39
40
|
s.summary = %q{Ruby gem for interacting with the Brightcove media API}
|
40
41
|
s.test_files = [
|
41
42
|
"test/helper.rb",
|
@@ -49,6 +50,7 @@ Gem::Specification.new do |s|
|
|
49
50
|
s.add_runtime_dependency(%q<httparty>, ["~> 0.7.7"])
|
50
51
|
s.add_runtime_dependency(%q<json>, ["~> 1.4.6"])
|
51
52
|
s.add_runtime_dependency(%q<rest-client>, ["~> 1.6.1"])
|
53
|
+
s.add_runtime_dependency(%q<multipart-post>, ["~> 1.1.2"])
|
52
54
|
s.add_runtime_dependency(%q<orderedhash>, ["~> 0.0.6"])
|
53
55
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
54
56
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
|
@@ -57,6 +59,7 @@ Gem::Specification.new do |s|
|
|
57
59
|
s.add_dependency(%q<httparty>, ["~> 0.7.7"])
|
58
60
|
s.add_dependency(%q<json>, ["~> 1.4.6"])
|
59
61
|
s.add_dependency(%q<rest-client>, ["~> 1.6.1"])
|
62
|
+
s.add_dependency(%q<multipart-post>, ["~> 1.1.2"])
|
60
63
|
s.add_dependency(%q<orderedhash>, ["~> 0.0.6"])
|
61
64
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
62
65
|
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
@@ -66,6 +69,7 @@ Gem::Specification.new do |s|
|
|
66
69
|
s.add_dependency(%q<httparty>, ["~> 0.7.7"])
|
67
70
|
s.add_dependency(%q<json>, ["~> 1.4.6"])
|
68
71
|
s.add_dependency(%q<rest-client>, ["~> 1.6.1"])
|
72
|
+
s.add_dependency(%q<multipart-post>, ["~> 1.1.2"])
|
69
73
|
s.add_dependency(%q<orderedhash>, ["~> 0.0.6"])
|
70
74
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
71
75
|
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
data/lib/brightcove-api.rb
CHANGED
@@ -2,13 +2,14 @@ require 'httparty'
|
|
2
2
|
require 'json'
|
3
3
|
require 'rest-client'
|
4
4
|
require 'orderedhash'
|
5
|
+
require 'net/http/post/multipart'
|
5
6
|
|
6
7
|
module Brightcove
|
7
8
|
class API
|
8
9
|
include HTTParty
|
9
10
|
disable_rails_query_string_format
|
10
11
|
|
11
|
-
VERSION = '1.0.
|
12
|
+
VERSION = '1.0.9'.freeze
|
12
13
|
|
13
14
|
DEFAULT_HEADERS = {
|
14
15
|
'User-Agent' => "brightcove-api gem #{VERSION}"
|
@@ -22,6 +23,11 @@ module Brightcove
|
|
22
23
|
attr_accessor :read_api_url
|
23
24
|
attr_accessor :write_api_url
|
24
25
|
attr_accessor :token
|
26
|
+
|
27
|
+
# RestClient POST timeout for reading conection
|
28
|
+
attr_accessor :timeout
|
29
|
+
# RestClient POST timeout for opening connection
|
30
|
+
attr_accessor :open_timeout
|
25
31
|
|
26
32
|
# Brightcove returns text/html as the Content-Type for a response even though the response is JSON.
|
27
33
|
# So, let's just parse the response as JSON
|
@@ -93,9 +99,43 @@ module Brightcove
|
|
93
99
|
payload[:json] = body.to_json
|
94
100
|
payload[:file] = File.new(file, 'rb')
|
95
101
|
|
96
|
-
response = RestClient.
|
102
|
+
response = RestClient::Request.execute(
|
103
|
+
:method => :post,
|
104
|
+
:url => @write_api_url,
|
105
|
+
:payload => payload,
|
106
|
+
:content_type => :json,
|
107
|
+
:accept => :json,
|
108
|
+
:multipart => true,
|
109
|
+
:timeout => @timeout,
|
110
|
+
:open_timeout => @open_timeout
|
111
|
+
)
|
97
112
|
|
98
113
|
JSON.parse(response)
|
99
114
|
end
|
115
|
+
|
116
|
+
def post_file_streaming(api_method, upload_file, content_type, parameters)
|
117
|
+
parameters.merge!({"token" => @token})
|
118
|
+
|
119
|
+
body = {}
|
120
|
+
body.merge!({:method => api_method})
|
121
|
+
body.merge!({:params => parameters})
|
122
|
+
|
123
|
+
url = URI.parse(@write_api_url)
|
124
|
+
response = nil
|
125
|
+
File.open(upload_file) do |file|
|
126
|
+
request = Net::HTTP::Post::Multipart.new(
|
127
|
+
url.path,
|
128
|
+
{
|
129
|
+
:json => body.to_json,
|
130
|
+
:file => UploadIO.new(file, content_type)
|
131
|
+
})
|
132
|
+
|
133
|
+
response = Net::HTTP.start(url.host, url.port) do |http|
|
134
|
+
http.request(request)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
JSON.parse(response.body)
|
139
|
+
end
|
100
140
|
end
|
101
141
|
end
|
@@ -1 +1 @@
|
|
1
|
-
{"result":{}, "id":
|
1
|
+
{"result":{}, "id":null, "error":null}
|
data/test/test_brightcove-api.rb
CHANGED
@@ -12,7 +12,7 @@ class TestBrightcoveApi < Test::Unit::TestCase
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_api_version
|
15
|
-
assert_equal '1.0.
|
15
|
+
assert_equal '1.0.9', Brightcove::API::VERSION
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_can_set_read_api_url
|
@@ -124,7 +124,7 @@ class TestBrightcoveApi < Test::Unit::TestCase
|
|
124
124
|
brightcove_response = brightcove.post('delete_video', {:video_id => '595153261337'})
|
125
125
|
|
126
126
|
assert brightcove_response.has_key?('result')
|
127
|
-
assert_equal brightcove_response['error'],
|
127
|
+
assert_equal brightcove_response['error'], nil
|
128
128
|
end
|
129
129
|
|
130
130
|
def test_create_video_using_post_file
|
@@ -142,4 +142,20 @@ class TestBrightcoveApi < Test::Unit::TestCase
|
|
142
142
|
assert_equal '653155417001', brightcove_response['result'].to_s
|
143
143
|
assert_equal brightcove_response['error'], nil
|
144
144
|
end
|
145
|
+
|
146
|
+
def test_create_video_using_post_file_streaming
|
147
|
+
FakeWeb.register_uri(:post,
|
148
|
+
'http://api.brightcove.com/services/post',
|
149
|
+
:body => File.join(File.dirname(__FILE__), 'fakeweb', 'create_video_response.json'),
|
150
|
+
:content_type => "application/json")
|
151
|
+
|
152
|
+
brightcove = Brightcove::API.new('0Z2dtxTdJAxtbZ-d0U7Bhio2V1Rhr5Iafl5FFtDPY8E.')
|
153
|
+
brightcove_response = brightcove.post_file_streaming('create_video',
|
154
|
+
File.join(File.dirname(__FILE__), 'fakeweb', 'movie.mov'), 'video/quicktime',
|
155
|
+
:video => {:shortDescription => "Short Description", :name => "Video"})
|
156
|
+
|
157
|
+
assert brightcove_response.has_key?('result')
|
158
|
+
assert_equal '653155417001', brightcove_response['result'].to_s
|
159
|
+
assert_equal brightcove_response['error'], nil
|
160
|
+
end
|
145
161
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: brightcove-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.9
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- David Czarnecki
|
@@ -10,7 +10,8 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-06-22 00:00:00 -04:00
|
14
|
+
default_executable:
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: httparty
|
@@ -46,19 +47,30 @@ dependencies:
|
|
46
47
|
prerelease: false
|
47
48
|
version_requirements: *id003
|
48
49
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
50
|
+
name: multipart-post
|
50
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
51
52
|
none: false
|
52
53
|
requirements:
|
53
54
|
- - ~>
|
54
55
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
56
|
+
version: 1.1.2
|
56
57
|
type: :runtime
|
57
58
|
prerelease: false
|
58
59
|
version_requirements: *id004
|
59
60
|
- !ruby/object:Gem::Dependency
|
60
|
-
name:
|
61
|
+
name: orderedhash
|
61
62
|
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ~>
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.0.6
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: *id005
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: bundler
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
62
74
|
none: false
|
63
75
|
requirements:
|
64
76
|
- - ~>
|
@@ -66,10 +78,10 @@ dependencies:
|
|
66
78
|
version: 1.0.0
|
67
79
|
type: :development
|
68
80
|
prerelease: false
|
69
|
-
version_requirements: *
|
81
|
+
version_requirements: *id006
|
70
82
|
- !ruby/object:Gem::Dependency
|
71
83
|
name: jeweler
|
72
|
-
requirement: &
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
73
85
|
none: false
|
74
86
|
requirements:
|
75
87
|
- - ~>
|
@@ -77,10 +89,10 @@ dependencies:
|
|
77
89
|
version: 1.5.1
|
78
90
|
type: :development
|
79
91
|
prerelease: false
|
80
|
-
version_requirements: *
|
92
|
+
version_requirements: *id007
|
81
93
|
- !ruby/object:Gem::Dependency
|
82
94
|
name: rcov
|
83
|
-
requirement: &
|
95
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
84
96
|
none: false
|
85
97
|
requirements:
|
86
98
|
- - ~>
|
@@ -88,7 +100,7 @@ dependencies:
|
|
88
100
|
version: 0.9.9
|
89
101
|
type: :development
|
90
102
|
prerelease: false
|
91
|
-
version_requirements: *
|
103
|
+
version_requirements: *id008
|
92
104
|
description: Ruby gem for interacting with the Brightcove media API. http://docs.brightcove.com/en/media/
|
93
105
|
email: dczarnecki@agoragames.com
|
94
106
|
executables: []
|
@@ -99,6 +111,7 @@ extra_rdoc_files:
|
|
99
111
|
- LICENSE
|
100
112
|
- README.md
|
101
113
|
files:
|
114
|
+
- .rvmrc
|
102
115
|
- CHANELOG.markdown
|
103
116
|
- Gemfile
|
104
117
|
- LICENSE
|
@@ -113,6 +126,7 @@ files:
|
|
113
126
|
- test/fakeweb/movie.mov
|
114
127
|
- test/helper.rb
|
115
128
|
- test/test_brightcove-api.rb
|
129
|
+
has_rdoc: true
|
116
130
|
homepage: http://github.com/BrightcoveOS/Ruby-MAPI-Wrapper
|
117
131
|
licenses:
|
118
132
|
- MIT
|
@@ -126,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
126
140
|
requirements:
|
127
141
|
- - ">="
|
128
142
|
- !ruby/object:Gem::Version
|
129
|
-
hash:
|
143
|
+
hash: 1985167017172697863
|
130
144
|
segments:
|
131
145
|
- 0
|
132
146
|
version: "0"
|
@@ -139,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
153
|
requirements: []
|
140
154
|
|
141
155
|
rubyforge_project:
|
142
|
-
rubygems_version: 1.
|
156
|
+
rubygems_version: 1.5.3
|
143
157
|
signing_key:
|
144
158
|
specification_version: 3
|
145
159
|
summary: Ruby gem for interacting with the Brightcove media API
|