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 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
@@ -7,5 +7,5 @@ require 'vimeo/simple'
7
7
  require 'vimeo/advanced'
8
8
 
9
9
  module Vimeo
10
- VERSION = '1.3.0'
10
+ VERSION = '1.3.1'
11
11
  end
@@ -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
- data = (params.map { |k,v| param_to_multipart(k,v) } +
43
- [file_part]
44
- ).map { |part|
45
- "--#{boundary}\r\n#{part}"
46
- }.join + "--#{boundary}--\r\n"
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
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{vimeo}
5
- s.version = "1.3.0"
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-07-11}
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.0
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-07-11 00:00:00 -07:00
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.2.0
108
+ rubygems_version: 1.3.5
98
109
  signing_key:
99
110
  specification_version: 3
100
111
  summary: ""