s3restful 0.2.7
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/CHANGELOG.md +24 -0
- data/Gemfile +10 -0
- data/LICENSE.txt +13 -0
- data/README.md +230 -0
- data/Rakefile +47 -0
- data/VERSION +1 -0
- data/benchmark/right_aws.rb +106 -0
- data/lib/s3restful/aws.rb +65 -0
- data/lib/s3restful/log.rb +40 -0
- data/lib/s3restful/s3/item.rb +136 -0
- data/lib/s3restful/s3/request.rb +111 -0
- data/lib/s3restful/s3.rb +16 -0
- data/lib/s3restful/utils.rb +26 -0
- data/lib/s3restful.rb +23 -0
- data/s3restful.gemspec +69 -0
- data/test/aws_test.rb +41 -0
- data/test/s3/item_test.rb +531 -0
- data/test/s3/request_test.rb +109 -0
- data/test/s3_test.rb +32 -0
- data/test/test_helper.rb +94 -0
- metadata +148 -0
data/test/test_helper.rb
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
require 'shoulda'
|
5
|
+
require 'mocha'
|
6
|
+
|
7
|
+
$:.unshift(File.dirname(__FILE__) + "/../")
|
8
|
+
|
9
|
+
require 's3restful'
|
10
|
+
|
11
|
+
require 'em-http/mock'
|
12
|
+
|
13
|
+
EventMachine.instance_eval do
|
14
|
+
# Switching out EM's defer since it makes tests just a tad more unreliable
|
15
|
+
alias :defer_original :defer
|
16
|
+
def defer
|
17
|
+
yield
|
18
|
+
end
|
19
|
+
end unless EM.respond_to?(:defer_original)
|
20
|
+
|
21
|
+
class Test::Unit::TestCase
|
22
|
+
def setup
|
23
|
+
EventMachine::MockHttpRequest.reset_counts!
|
24
|
+
EventMachine::MockHttpRequest.reset_registry!
|
25
|
+
end
|
26
|
+
|
27
|
+
def run_in_em_loop
|
28
|
+
EM.run {
|
29
|
+
yield
|
30
|
+
}
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
module S3restful
|
35
|
+
module S3
|
36
|
+
class Request
|
37
|
+
def http_class
|
38
|
+
EventMachine::MockHttpRequest
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def fake_response(data)
|
45
|
+
<<-HEREDOC
|
46
|
+
HTTP/1.0 200 OK
|
47
|
+
Date: Mon, 16 Nov 2009 20:39:15 GMT
|
48
|
+
Expires: -1
|
49
|
+
Cache-Control: private, max-age=0
|
50
|
+
Content-Type: text/html; charset=ISO-8859-1
|
51
|
+
Set-Cookie: PREF=ID=9454187d21c4a6a6:TM=1258403955:LM=1258403955:S=2-mf1n5oV5yAeT9-; expires=Wed, 16-Nov-2011 20:39:15 GMT; path=/; domain=.google.ca
|
52
|
+
Set-Cookie: NID=28=lvxxVdiBQkCetu_WFaUxLyB7qPlHXS5OdAGYTqge_laVlCKVN8VYYeVBh4bNZiK_Oan2gm8oP9GA-FrZfMPC3ZMHeNq37MG2JH8AIW9LYucU8brOeuggMEbLNNXuiWg4; expires=Tue, 18-May-2010 20:39:15 GMT; path=/; domain=.google.ca; HttpOnly
|
53
|
+
Server: gws
|
54
|
+
X-XSS-Protection: 0
|
55
|
+
X-Cache: MISS from .
|
56
|
+
Via: 1.0 .:80 (squid)
|
57
|
+
Connection: close
|
58
|
+
|
59
|
+
#{data}
|
60
|
+
HEREDOC
|
61
|
+
end
|
62
|
+
|
63
|
+
# amazon tells us to upload to another location, e.g. s3restful-benchmark.s3-external-3.amazonaws.com instead of s3restful-benchmark.s3.amazonaws.com
|
64
|
+
def redirect_response(location)
|
65
|
+
<<-HEREDOC
|
66
|
+
HTTP/1.0 301 Moved Permanently
|
67
|
+
Date: Mon, 16 Nov 2009 20:39:15 GMT
|
68
|
+
Expires: -1
|
69
|
+
Cache-Control: private, max-age=0
|
70
|
+
Content-Type: text/html; charset=ISO-8859-1
|
71
|
+
Via: 1.0 .:80 (squid)
|
72
|
+
Connection: close
|
73
|
+
Location: #{location}
|
74
|
+
|
75
|
+
<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>TemporaryRedirect</Code><Message>Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.</Message><RequestId>137D5486D66095AE</RequestId><Bucket>s3restful-benchmark</Bucket><HostId>Nyk+Zq9GbtxcspdbKDWyGhsZhyUZquZP55tteYef4QVodsn73HUUad0xrIeD09lF</HostId><Endpoint>#{location}</Endpoint></Error>
|
76
|
+
HEREDOC
|
77
|
+
end
|
78
|
+
|
79
|
+
def error_response(error_code)
|
80
|
+
<<-HEREDOC
|
81
|
+
HTTP/1.0 #{error_code} OK
|
82
|
+
Date: Mon, 16 Nov 2009 20:39:15 GMT
|
83
|
+
Content-Type: text/html; charset=ISO-8859-1
|
84
|
+
Connection: close
|
85
|
+
|
86
|
+
<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>TemporaryRedirect</Code><Message>Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.</Message><RequestId>137D5486D66095AE</RequestId><Bucket>s3restful-benchmark</Bucket><HostId>Nyk+Zq9GbtxcspdbKDWyGhsZhyUZquZP55tteYef4QVodsn73HUUad0xrIeD09lF</HostId><Endpoint>https://s3.amazonaws.com</Endpoint></Error>
|
87
|
+
HEREDOC
|
88
|
+
end
|
89
|
+
|
90
|
+
module EventMachine
|
91
|
+
class MockHttpRequest
|
92
|
+
@@pass_through_requests = false
|
93
|
+
end
|
94
|
+
end
|
metadata
ADDED
@@ -0,0 +1,148 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: s3restful
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.7
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- João Pereira
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-06-08 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: em-http-request
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.0.2
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.0.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: shoulda
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: bundler
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.0.0
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.0.0
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: jeweler
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.6.4
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.6.4
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: mocha
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
description: An EventMachine based client for S3 compatible APIs
|
95
|
+
email: joaodrp@gmail.com
|
96
|
+
executables: []
|
97
|
+
extensions: []
|
98
|
+
extra_rdoc_files:
|
99
|
+
- LICENSE.txt
|
100
|
+
- README.md
|
101
|
+
files:
|
102
|
+
- CHANGELOG.md
|
103
|
+
- Gemfile
|
104
|
+
- LICENSE.txt
|
105
|
+
- README.md
|
106
|
+
- Rakefile
|
107
|
+
- VERSION
|
108
|
+
- benchmark/right_aws.rb
|
109
|
+
- s3restful.gemspec
|
110
|
+
- lib/s3restful.rb
|
111
|
+
- lib/s3restful/aws.rb
|
112
|
+
- lib/s3restful/log.rb
|
113
|
+
- lib/s3restful/s3.rb
|
114
|
+
- lib/s3restful/s3/item.rb
|
115
|
+
- lib/s3restful/s3/request.rb
|
116
|
+
- lib/s3restful/utils.rb
|
117
|
+
- test/aws_test.rb
|
118
|
+
- test/s3/item_test.rb
|
119
|
+
- test/s3/request_test.rb
|
120
|
+
- test/s3_test.rb
|
121
|
+
- test/test_helper.rb
|
122
|
+
homepage: http://github.com/joaodrp/s3-restful
|
123
|
+
licenses:
|
124
|
+
- BSD
|
125
|
+
post_install_message:
|
126
|
+
rdoc_options: []
|
127
|
+
require_paths:
|
128
|
+
- lib
|
129
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
131
|
+
requirements:
|
132
|
+
- - ! '>='
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
135
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
|
+
none: false
|
137
|
+
requirements:
|
138
|
+
- - ! '>='
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
141
|
+
requirements: []
|
142
|
+
rubyforge_project:
|
143
|
+
rubygems_version: 1.8.24
|
144
|
+
signing_key:
|
145
|
+
specification_version: 3
|
146
|
+
summary: An EventMachine based client for S3 compatible APIs
|
147
|
+
test_files: []
|
148
|
+
has_rdoc:
|