net-github-upload 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/Rakefile +2 -2
- data/lib/net/github-upload.rb +19 -5
- data/test/github_test.rb +1 -1
- metadata +44 -18
data/Rakefile
CHANGED
@@ -75,12 +75,12 @@ end
|
|
75
75
|
|
76
76
|
desc "gem install"
|
77
77
|
task :install => [:package] do
|
78
|
-
sh "
|
78
|
+
sh "gem install pkg/#{$name}-#{$version}.gem --local"
|
79
79
|
end
|
80
80
|
|
81
81
|
desc "gem uninstall"
|
82
82
|
task :uninstall do
|
83
|
-
sh "
|
83
|
+
sh "gem uninstall #{$name}"
|
84
84
|
end
|
85
85
|
|
86
86
|
# vim: syntax=ruby
|
data/lib/net/github-upload.rb
CHANGED
@@ -6,10 +6,14 @@ require 'faster_xml_simple'
|
|
6
6
|
module Net
|
7
7
|
module GitHub
|
8
8
|
class Upload
|
9
|
-
VERSION = '0.0.
|
9
|
+
VERSION = '0.0.4'
|
10
10
|
def initialize params=nil
|
11
11
|
@login = params[:login]
|
12
12
|
@token = params[:token]
|
13
|
+
|
14
|
+
if @login.empty? or @token.empty?
|
15
|
+
raise "login or token is empty"
|
16
|
+
end
|
13
17
|
end
|
14
18
|
|
15
19
|
def upload info
|
@@ -46,9 +50,10 @@ module Net
|
|
46
50
|
raise "file '#{info[:name]}' is already uploaded. please try different name"
|
47
51
|
end
|
48
52
|
|
53
|
+
info[:content_type] ||= 'application/octet-stream'
|
49
54
|
stat = HTTPClient.post("http://github.com/#{info[:repos]}/downloads", {
|
50
55
|
"file_size" => info[:file] ? File.stat(info[:file]).size : info[:data].size,
|
51
|
-
"content_type" => info[:content_type]
|
56
|
+
"content_type" => info[:content_type],
|
52
57
|
"file_name" => info[:name],
|
53
58
|
"description" => info[:description] || '',
|
54
59
|
"login" => @login,
|
@@ -68,7 +73,6 @@ module Net
|
|
68
73
|
['success_action_status', 201],
|
69
74
|
['key', upload_info['prefix'] + info[:name]],
|
70
75
|
['AWSAccessKeyId', upload_info['accesskeyid']],
|
71
|
-
['Content-Type', info[:content_type] || 'application/octet-stream'],
|
72
76
|
['signature', upload_info['signature']],
|
73
77
|
['acl', upload_info['acl']],
|
74
78
|
['file', f]
|
@@ -81,7 +85,6 @@ module Net
|
|
81
85
|
['success_action_status', 201],
|
82
86
|
['key', upload_info['prefix'] + info[:name]],
|
83
87
|
['AWSAccessKeyId', upload_info['accesskeyid']],
|
84
|
-
['Content-Type', info[:content_type] || 'application/octet-stream'],
|
85
88
|
['signature', upload_info['signature']],
|
86
89
|
['acl', upload_info['acl']],
|
87
90
|
['file', StringIO.new(info[:data])]
|
@@ -91,7 +94,7 @@ module Net
|
|
91
94
|
if stat.code == 201
|
92
95
|
return FasterXmlSimple.xml_in(stat.content)['PostResponse']['Location']
|
93
96
|
else
|
94
|
-
raise 'Failed to upload'
|
97
|
+
raise 'Failed to upload' + extract_error_message(stat)
|
95
98
|
end
|
96
99
|
end
|
97
100
|
|
@@ -100,6 +103,17 @@ module Net
|
|
100
103
|
end
|
101
104
|
|
102
105
|
private
|
106
|
+
|
107
|
+
|
108
|
+
def extract_error_message(stat)
|
109
|
+
# @see http://docs.amazonwebservices.com/AmazonS3/2006-03-01/ErrorResponses.html
|
110
|
+
error = FasterXmlSimple.xml_in(stat.content)['Error']
|
111
|
+
" due to #{error['Code']} (#{error['Message']})"
|
112
|
+
rescue
|
113
|
+
''
|
114
|
+
end
|
115
|
+
|
116
|
+
|
103
117
|
def list_files repos
|
104
118
|
raise "required repository name" unless repos
|
105
119
|
res = HTTPClient.get_content("http://github.com/#{repos}/downloads", {
|
data/test/github_test.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-github-upload
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 23
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Constellation
|
@@ -9,39 +15,53 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date: 2010-
|
18
|
+
date: 2010-08-12 00:00:00 +09:00
|
13
19
|
default_executable:
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
16
22
|
name: nokogiri
|
17
|
-
|
18
|
-
|
19
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
20
26
|
requirements:
|
21
27
|
- - ">="
|
22
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 7
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 4
|
33
|
+
- 0
|
23
34
|
version: 1.4.0
|
24
|
-
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
25
37
|
- !ruby/object:Gem::Dependency
|
26
38
|
name: faster_xml_simple
|
27
|
-
|
28
|
-
|
29
|
-
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
30
42
|
requirements:
|
31
43
|
- - ">="
|
32
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 0
|
33
48
|
version: "0"
|
34
|
-
|
49
|
+
type: :runtime
|
50
|
+
version_requirements: *id002
|
35
51
|
- !ruby/object:Gem::Dependency
|
36
52
|
name: httpclient
|
37
|
-
|
38
|
-
|
39
|
-
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
40
56
|
requirements:
|
41
57
|
- - ">="
|
42
58
|
- !ruby/object:Gem::Version
|
59
|
+
hash: 3
|
60
|
+
segments:
|
61
|
+
- 0
|
43
62
|
version: "0"
|
44
|
-
|
63
|
+
type: :runtime
|
64
|
+
version_requirements: *id003
|
45
65
|
description: |
|
46
66
|
Ruby Net::GitHub::Upload is upload user agent for GitHub Downloads
|
47
67
|
|
@@ -55,8 +75,8 @@ extra_rdoc_files:
|
|
55
75
|
files:
|
56
76
|
- README.rdoc
|
57
77
|
- Rakefile
|
58
|
-
- test/github_test.rb
|
59
78
|
- test/test
|
79
|
+
- test/github_test.rb
|
60
80
|
- lib/net/github-upload.rb
|
61
81
|
has_rdoc: true
|
62
82
|
homepage: http://github.com/Constellation/ruby-net-github-upload
|
@@ -73,21 +93,27 @@ rdoc_options:
|
|
73
93
|
require_paths:
|
74
94
|
- lib
|
75
95
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
76
97
|
requirements:
|
77
98
|
- - ">="
|
78
99
|
- !ruby/object:Gem::Version
|
100
|
+
hash: 3
|
101
|
+
segments:
|
102
|
+
- 0
|
79
103
|
version: "0"
|
80
|
-
version:
|
81
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
82
106
|
requirements:
|
83
107
|
- - ">="
|
84
108
|
- !ruby/object:Gem::Version
|
109
|
+
hash: 3
|
110
|
+
segments:
|
111
|
+
- 0
|
85
112
|
version: "0"
|
86
|
-
version:
|
87
113
|
requirements: []
|
88
114
|
|
89
115
|
rubyforge_project: ruby-net-github-upload
|
90
|
-
rubygems_version: 1.3.
|
116
|
+
rubygems_version: 1.3.7
|
91
117
|
signing_key:
|
92
118
|
specification_version: 3
|
93
119
|
summary: ruby porting of Net::GitHub::Upload
|