s3-restful 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 's3-restful'
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. s3-restful-benchmark.s3-external-3.amazonaws.com instead of s3-restful-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>s3-restful-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>s3-restful-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,123 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: s3-restful
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.6
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: &70188499424480 !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: *70188499424480
25
+ - !ruby/object:Gem::Dependency
26
+ name: shoulda
27
+ requirement: &70188499423800 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70188499423800
36
+ - !ruby/object:Gem::Dependency
37
+ name: bundler
38
+ requirement: &70188499422940 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.0
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70188499422940
47
+ - !ruby/object:Gem::Dependency
48
+ name: jeweler
49
+ requirement: &70188499421920 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.6.4
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70188499421920
58
+ - !ruby/object:Gem::Dependency
59
+ name: mocha
60
+ requirement: &70188499420200 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70188499420200
69
+ description: An EventMachine based client for S3 compatible APIs
70
+ email: joaodrp@gmail.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files:
74
+ - LICENSE.txt
75
+ - README.md
76
+ files:
77
+ - CHANGELOG.md
78
+ - Gemfile
79
+ - LICENSE.txt
80
+ - README.md
81
+ - Rakefile
82
+ - VERSION
83
+ - benchmark/right_aws.rb
84
+ - s3-restful.gemspec
85
+ - lib/s3-restful.rb
86
+ - lib/s3-restful/aws.rb
87
+ - lib/s3-restful/log.rb
88
+ - lib/s3-restful/s3.rb
89
+ - lib/s3-restful/s3/item.rb
90
+ - lib/s3-restful/s3/request.rb
91
+ - lib/s3-restful/utils.rb
92
+ - test/aws_test.rb
93
+ - test/s3/item_test.rb
94
+ - test/s3/request_test.rb
95
+ - test/s3_test.rb
96
+ - test/test_helper.rb
97
+ homepage: http://github.com/joaodrp/s3-restful
98
+ licenses:
99
+ - BSD
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ! '>='
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ requirements: []
117
+ rubyforge_project:
118
+ rubygems_version: 1.8.11
119
+ signing_key:
120
+ specification_version: 3
121
+ summary: An EventMachine based client for S3 compatible APIs
122
+ test_files: []
123
+ has_rdoc: