tenderlove-vimeo 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/vimeo.rb +1 -1
- data/lib/vimeo/advanced/upload.rb +8 -56
- data/vimeo.gemspec +5 -2
- metadata +14 -3
data/Rakefile
CHANGED
@@ -8,5 +8,5 @@ Hoe.spec('vimeo') do
|
|
8
8
|
self.readme_file = 'README.rdoc'
|
9
9
|
self.history_file = 'CHANGELOG.rdoc'
|
10
10
|
self.extra_rdoc_files = FileList['*.rdoc']
|
11
|
-
self.extra_deps = [['jnunemaker-httparty', '>= 0.2.6']]
|
11
|
+
self.extra_deps = [['jnunemaker-httparty', '>= 0.2.6'], 'curb']
|
12
12
|
end
|
data/lib/vimeo.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'webrick/httputils'
|
2
|
+
require 'curl'
|
3
|
+
|
2
4
|
|
3
5
|
module Vimeo
|
4
6
|
module Advanced
|
@@ -27,31 +29,18 @@ module Vimeo
|
|
27
29
|
###
|
28
30
|
# Upload +file+ to vimeo with +ticket_id+ and +auth_token+
|
29
31
|
def upload file, ticket_id, auth_token
|
30
|
-
boundary = rand_string 20
|
31
|
-
|
32
|
-
enctype = "multipart/form-data; boundary=#{boundary}"
|
33
|
-
|
34
|
-
file_part = file_to_multipart(file)
|
35
|
-
|
36
32
|
params = {
|
37
33
|
:auth_token => auth_token,
|
38
34
|
:ticket_id => ticket_id
|
39
35
|
}
|
40
36
|
params[:api_sig] = generate_api_sig params
|
41
37
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
uri = URI.parse('http://vimeo.com/services/upload')
|
49
|
-
|
50
|
-
http_ctx = Net::HTTP.new(uri.host, uri.port)
|
51
|
-
request = Net::HTTP::Post.new(uri.request_uri)
|
52
|
-
request['Content-Type'] = enctype
|
53
|
-
request['Content-Length'] = data.size.to_s
|
54
|
-
http_ctx.request(request, data)
|
38
|
+
c = Curl::Easy.new('http://vimeo.com/services/upload')
|
39
|
+
c.multipart_form_post = true
|
40
|
+
c.http_post(
|
41
|
+
*(params.map { |k,v| Curl::PostField.content(k.to_s, v) } +
|
42
|
+
[Curl::PostField.file('video', file)])
|
43
|
+
)
|
55
44
|
end
|
56
45
|
|
57
46
|
def signature_for_file_upload(ticket_id, auth_token)
|
@@ -61,43 +50,6 @@ module Vimeo
|
|
61
50
|
}
|
62
51
|
generate_api_sig sig_options
|
63
52
|
end
|
64
|
-
|
65
|
-
private
|
66
|
-
def mime_value_quote(str)
|
67
|
-
str.to_s.gsub(/(["\r\\])/){|s| '\\' + s}
|
68
|
-
end
|
69
|
-
|
70
|
-
def param_to_multipart name, value
|
71
|
-
"Content-Disposition: form-data; name=\"#{mime_value_quote(name)}\"" +
|
72
|
-
"\r\n#{value}\r\n"
|
73
|
-
end
|
74
|
-
|
75
|
-
def file_to_multipart file
|
76
|
-
file_name = File.basename(file)
|
77
|
-
|
78
|
-
headers = nil
|
79
|
-
|
80
|
-
File.open(file, 'rb') { |fh|
|
81
|
-
|
82
|
-
mime_type = WEBrick::HTTPUtils.mime_type(
|
83
|
-
file,
|
84
|
-
WEBrick::HTTPUtils::DefaultMimeTypes
|
85
|
-
)
|
86
|
-
|
87
|
-
headers = [
|
88
|
-
"Content-Disposition: form-data; name=\"" +
|
89
|
-
"#{mime_value_quote(file)}\"; " +
|
90
|
-
"filename=\"#{mime_value_quote(file_name)}\"",
|
91
|
-
"Content-Transfer-Encoding: binary",
|
92
|
-
]
|
93
|
-
|
94
|
-
headers << "Content-Type: #{mime_type}" if mime_type
|
95
|
-
headers << nil
|
96
|
-
headers << fh.read
|
97
|
-
}
|
98
|
-
headers.join("\r\n") + "\r\n"
|
99
|
-
end
|
100
|
-
|
101
53
|
end
|
102
54
|
|
103
55
|
end # Advanced
|
data/vimeo.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{vimeo}
|
5
|
-
s.version = "1.3.
|
5
|
+
s.version = "1.3.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Matt Hooks"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-08-03}
|
10
10
|
s.description = %q{}
|
11
11
|
s.email = ["matthooks@gmail.com"]
|
12
12
|
s.extra_rdoc_files = ["Manifest.txt", "CHANGELOG.rdoc", "README.rdoc"]
|
@@ -25,13 +25,16 @@ Gem::Specification.new do |s|
|
|
25
25
|
|
26
26
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
27
27
|
s.add_runtime_dependency(%q<jnunemaker-httparty>, [">= 0.2.6"])
|
28
|
+
s.add_runtime_dependency(%q<curb>, [">= 0"])
|
28
29
|
s.add_development_dependency(%q<hoe>, [">= 2.3.2"])
|
29
30
|
else
|
30
31
|
s.add_dependency(%q<jnunemaker-httparty>, [">= 0.2.6"])
|
32
|
+
s.add_dependency(%q<curb>, [">= 0"])
|
31
33
|
s.add_dependency(%q<hoe>, [">= 2.3.2"])
|
32
34
|
end
|
33
35
|
else
|
34
36
|
s.add_dependency(%q<jnunemaker-httparty>, [">= 0.2.6"])
|
37
|
+
s.add_dependency(%q<curb>, [">= 0"])
|
35
38
|
s.add_dependency(%q<hoe>, [">= 2.3.2"])
|
36
39
|
end
|
37
40
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tenderlove-vimeo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Hooks
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-08-03 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,6 +22,16 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 0.2.6
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: curb
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
25
35
|
- !ruby/object:Gem::Dependency
|
26
36
|
name: hoe
|
27
37
|
type: :development
|
@@ -73,6 +83,7 @@ files:
|
|
73
83
|
- vimeo.gemspec
|
74
84
|
has_rdoc: false
|
75
85
|
homepage: http://github.com/matthooks/vimeo
|
86
|
+
licenses:
|
76
87
|
post_install_message:
|
77
88
|
rdoc_options:
|
78
89
|
- --main
|
@@ -94,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
105
|
requirements: []
|
95
106
|
|
96
107
|
rubyforge_project: vimeo
|
97
|
-
rubygems_version: 1.
|
108
|
+
rubygems_version: 1.3.5
|
98
109
|
signing_key:
|
99
110
|
specification_version: 3
|
100
111
|
summary: ""
|