happening 0.0.4 → 0.0.5
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/lib/happening/s3/item.rb +4 -4
- data/test/s3/item_test.rb +56 -0
- metadata +2 -2
data/lib/happening/s3/item.rb
CHANGED
@@ -33,17 +33,17 @@ module Happening
|
|
33
33
|
Happening::S3::Request.new(:get, url, request_options).execute
|
34
34
|
end
|
35
35
|
|
36
|
-
def put(data, request_options = {})
|
36
|
+
def put(data, request_options = {}, &blk)
|
37
37
|
permissions = options[:permissions] != 'private' ? {'x-amz-acl' => options[:permissions] } : {}
|
38
38
|
headers = needs_to_sign? ? aws.sign("PUT", path, permissions.update({'url' => path})) : {}
|
39
|
-
|
39
|
+
request_options[:on_success] = blk if blk
|
40
40
|
request_options.update(:headers => headers, :data => data)
|
41
41
|
Happening::S3::Request.new(:put, url, request_options).execute
|
42
42
|
end
|
43
43
|
|
44
|
-
def delete(request_options = {})
|
44
|
+
def delete(request_options = {}, &blk)
|
45
45
|
headers = needs_to_sign? ? aws.sign("DELETE", path, {'url' => path}) : {}
|
46
|
-
|
46
|
+
request_options[:on_success] = blk if blk
|
47
47
|
request_options.update(:headers => headers)
|
48
48
|
Happening::S3::Request.new(:delete, url, request_options).execute
|
49
49
|
end
|
data/test/s3/item_test.rb
CHANGED
@@ -176,6 +176,34 @@ class ItemTest < Test::Unit::TestCase
|
|
176
176
|
end
|
177
177
|
end
|
178
178
|
|
179
|
+
should "support direct blocks" do
|
180
|
+
EventMachine::MockHttpRequest.register('https://bucket.s3.amazonaws.com:443/the-key', :delete, {
|
181
|
+
"Authorization"=>"AWS abc:nvkrlq4wor1qbFXZh6rHnAbiRjk=",
|
182
|
+
'date' => @time,
|
183
|
+
'url' => "/bucket/the-key"}, fake_response("data-here"))
|
184
|
+
|
185
|
+
called = false
|
186
|
+
data = nil
|
187
|
+
@item = Happening::S3::Item.new('bucket', 'the-key', :aws_access_key_id => 'abc', :aws_secret_access_key => '123')
|
188
|
+
run_in_em_loop do
|
189
|
+
@item.delete do |http|
|
190
|
+
called = true
|
191
|
+
data = http.response
|
192
|
+
end
|
193
|
+
|
194
|
+
EM.add_timer(1) {
|
195
|
+
assert called
|
196
|
+
assert_equal "data-here\n", data
|
197
|
+
EM.stop_event_loop
|
198
|
+
assert_equal 1, EventMachine::MockHttpRequest.count('https://bucket.s3.amazonaws.com:443/the-key', :delete, {
|
199
|
+
"Authorization"=>"AWS abc:nvkrlq4wor1qbFXZh6rHnAbiRjk=",
|
200
|
+
'date' => @time,
|
201
|
+
'url' => "/bucket/the-key"})
|
202
|
+
}
|
203
|
+
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
179
207
|
should "handle re-direct" do
|
180
208
|
EventMachine::MockHttpRequest.register('https://bucket.s3.amazonaws.com:443/the-key', :delete, {
|
181
209
|
"Authorization"=>"AWS abc:nvkrlq4wor1qbFXZh6rHnAbiRjk=",
|
@@ -250,6 +278,34 @@ class ItemTest < Test::Unit::TestCase
|
|
250
278
|
end
|
251
279
|
end
|
252
280
|
|
281
|
+
should "support direct blocks" do
|
282
|
+
EventMachine::MockHttpRequest.register('https://bucket.s3.amazonaws.com:443/the-key', :put, {
|
283
|
+
"Authorization"=>"AWS abc:lZMKxGDKcQ1PH8yjbpyN7o2sPWg=",
|
284
|
+
'date' => @time,
|
285
|
+
'url' => "/bucket/the-key"}, fake_response("data-here"))
|
286
|
+
|
287
|
+
called = false
|
288
|
+
data = nil
|
289
|
+
@item = Happening::S3::Item.new('bucket', 'the-key', :aws_access_key_id => 'abc', :aws_secret_access_key => '123')
|
290
|
+
run_in_em_loop do
|
291
|
+
@item.put('upload me') do |http|
|
292
|
+
called = true
|
293
|
+
data = http.response
|
294
|
+
end
|
295
|
+
|
296
|
+
EM.add_timer(1) {
|
297
|
+
assert called
|
298
|
+
assert_equal "data-here\n", data
|
299
|
+
EM.stop_event_loop
|
300
|
+
assert_equal 1, EventMachine::MockHttpRequest.count('https://bucket.s3.amazonaws.com:443/the-key', :put, {
|
301
|
+
"Authorization"=>"AWS abc:lZMKxGDKcQ1PH8yjbpyN7o2sPWg=",
|
302
|
+
'date' => @time,
|
303
|
+
'url' => "/bucket/the-key"})
|
304
|
+
}
|
305
|
+
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
253
309
|
should "set the desired permissions" do
|
254
310
|
EventMachine::MockHttpRequest.register('https://bucket.s3.amazonaws.com:443/the-key', :put, {
|
255
311
|
"Authorization"=>"AWS abc:cqkfX+nC7WIkYD+yWaUFuoRuePA=",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: happening
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Weiss
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-02-
|
12
|
+
date: 2010-02-27 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|