aws-ext 0.1.0 → 0.1.1
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/.rvmrc +2 -0
- data/README.rdoc +7 -3
- data/VERSION +1 -1
- data/aws-ext.gemspec +4 -3
- data/lib/aws-ext.rb +8 -1
- data/spec/aws-ext_spec.rb +33 -16
- metadata +29 -13
data/.rvmrc
ADDED
data/README.rdoc
CHANGED
@@ -4,7 +4,7 @@ Extensions for the aws-s3 gem
|
|
4
4
|
|
5
5
|
== Installing
|
6
6
|
|
7
|
-
%
|
7
|
+
% gem install aws-ext
|
8
8
|
|
9
9
|
== S3Object
|
10
10
|
|
@@ -12,12 +12,16 @@ Extensions for the aws-s3 gem
|
|
12
12
|
|
13
13
|
Copies arbitrary S3Object across buckets using the Amazon S3 copy option. ACLs default to :public_read. Passing :copy as the ACL will copy the sources ACL.
|
14
14
|
|
15
|
-
=== #copy_to_bucket(dest_bucket, dest_key = nil, acl_policy = :copy
|
15
|
+
=== #copy_to_bucket(dest_bucket, dest_key = nil, acl_policy = :copy)
|
16
16
|
|
17
17
|
Copies this S3Object across buckets using the Amazon S3 copy option. Destination key defaults to Source key.ACLs default to :public_read. Passing :copy as the ACL will copy the sources ACL.
|
18
18
|
|
19
19
|
== Bucket
|
20
20
|
|
21
|
+
=== #copy_to_bucket(copy_bucket)
|
22
|
+
|
23
|
+
Copy all objects in this bucket to the copy_bucket.
|
24
|
+
|
21
25
|
=== #exists?(key)
|
22
26
|
|
23
27
|
Does key exist in this bucket?
|
@@ -42,4 +46,4 @@ Paginates over all objects in the bucket. :max_keys defaults to 100.
|
|
42
46
|
|
43
47
|
== Copyright
|
44
48
|
|
45
|
-
Copyright (c)
|
49
|
+
Copyright (c) 2010 Les Hill. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/aws-ext.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{aws-ext}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Les Hill"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2010-05-31}
|
13
13
|
s.description = %q{Extensions for aws-s3}
|
14
14
|
s.email = %q{leshill@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
".gitignore",
|
22
|
+
".rvmrc",
|
22
23
|
"LICENSE",
|
23
24
|
"README.rdoc",
|
24
25
|
"Rakefile",
|
@@ -32,7 +33,7 @@ Gem::Specification.new do |s|
|
|
32
33
|
s.homepage = %q{http://github.com/leshill/aws-ext}
|
33
34
|
s.rdoc_options = ["--charset=UTF-8"]
|
34
35
|
s.require_paths = ["lib"]
|
35
|
-
s.rubygems_version = %q{1.3.
|
36
|
+
s.rubygems_version = %q{1.3.6}
|
36
37
|
s.summary = %q{Extensions for aws-s3}
|
37
38
|
s.test_files = [
|
38
39
|
"spec/aws-ext_spec.rb",
|
data/lib/aws-ext.rb
CHANGED
@@ -21,6 +21,12 @@ module AWS
|
|
21
21
|
end
|
22
22
|
|
23
23
|
class Bucket
|
24
|
+
def copy_to_bucket(copy_bucket)
|
25
|
+
each_object do |obj|
|
26
|
+
obj.copy_to_bucket(copy_bucket)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
24
30
|
def each_object(opts = {}, &block)
|
25
31
|
opts = { :max_keys => 100 }.merge(opts)
|
26
32
|
while (response = objects(opts).each {|obj| yield obj }).any? do
|
@@ -37,4 +43,5 @@ module AWS
|
|
37
43
|
end
|
38
44
|
end
|
39
45
|
end
|
40
|
-
end
|
46
|
+
end
|
47
|
+
|
data/spec/aws-ext_spec.rb
CHANGED
@@ -2,30 +2,47 @@ require File.expand_path(File.join(File.dirname(__FILE__), '/spec_helper'))
|
|
2
2
|
|
3
3
|
describe 'aws_ext' do
|
4
4
|
context "AWS::S3::Bucket" do
|
5
|
+
let(:key) { 'key' }
|
6
|
+
let(:name) { 'bucket' }
|
7
|
+
let(:bucket) { AWS::S3::Bucket.new(:name => name) }
|
8
|
+
|
5
9
|
it "#exists? delegates to S3Object.exists?" do
|
6
|
-
key = 'key'
|
7
|
-
name = 'bucket'
|
8
10
|
AWS::S3::S3Object.should_receive(:exists?).with(key, name)
|
9
|
-
|
11
|
+
bucket.exists?(key)
|
10
12
|
end
|
11
13
|
|
12
14
|
it "#find delegates to S3Object.find" do
|
13
|
-
key = 'key'
|
14
|
-
name = 'bucket'
|
15
15
|
AWS::S3::S3Object.should_receive(:find).with(key, name)
|
16
|
-
|
16
|
+
bucket.find(key)
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
19
|
+
describe "#each_object" do
|
20
|
+
let(:objects_options_1) { {:max_keys => 1} }
|
21
|
+
let(:objects_returned_1) { [stub('object', :key => key)] }
|
22
|
+
let(:objects_options_2) { objects_options_1[:marker] = key; objects_options_1 }
|
23
|
+
let(:objects_returned_2) { [] }
|
24
|
+
|
25
|
+
it "iterates objects with max_keys and marker set" do
|
26
|
+
bucket.should_receive(:objects).with(objects_options_1).and_return(objects_returned_1)
|
27
|
+
bucket.should_receive(:objects).with(objects_options_2).and_return(objects_returned_2)
|
28
|
+
bucket.each_object(objects_options_1) {}
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#copy_to_bucket" do
|
32
|
+
let(:copy_bucket) { AWS::S3::Bucket.new(:name => 'copy_bucket') }
|
33
|
+
let(:s3object) { stub }
|
34
|
+
|
35
|
+
it "iterates over each object" do
|
36
|
+
bucket.should_receive(:each_object)
|
37
|
+
bucket.copy_to_bucket(copy_bucket)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "copies each object to the destination bucket" do
|
41
|
+
s3object.should_receive(:copy_to_bucket).with(copy_bucket)
|
42
|
+
bucket.stub(:each_object).and_yield(s3object)
|
43
|
+
bucket.copy_to_bucket(copy_bucket)
|
44
|
+
end
|
45
|
+
end
|
29
46
|
end
|
30
47
|
end
|
31
48
|
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 1
|
9
|
+
version: 0.1.1
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Les Hill
|
@@ -9,29 +14,37 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2010-05-31 00:00:00 -04:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: aws-s3
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 6
|
30
|
+
- 2
|
23
31
|
version: 0.6.2
|
24
|
-
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: rspec
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
38
|
requirements:
|
31
39
|
- - ">="
|
32
40
|
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 1
|
43
|
+
- 2
|
44
|
+
- 9
|
33
45
|
version: 1.2.9
|
34
|
-
|
46
|
+
type: :development
|
47
|
+
version_requirements: *id002
|
35
48
|
description: Extensions for aws-s3
|
36
49
|
email: leshill@gmail.com
|
37
50
|
executables: []
|
@@ -44,6 +57,7 @@ extra_rdoc_files:
|
|
44
57
|
files:
|
45
58
|
- .document
|
46
59
|
- .gitignore
|
60
|
+
- .rvmrc
|
47
61
|
- LICENSE
|
48
62
|
- README.rdoc
|
49
63
|
- Rakefile
|
@@ -66,18 +80,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
66
80
|
requirements:
|
67
81
|
- - ">="
|
68
82
|
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 0
|
69
85
|
version: "0"
|
70
|
-
version:
|
71
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
87
|
requirements:
|
73
88
|
- - ">="
|
74
89
|
- !ruby/object:Gem::Version
|
90
|
+
segments:
|
91
|
+
- 0
|
75
92
|
version: "0"
|
76
|
-
version:
|
77
93
|
requirements: []
|
78
94
|
|
79
95
|
rubyforge_project:
|
80
|
-
rubygems_version: 1.3.
|
96
|
+
rubygems_version: 1.3.6
|
81
97
|
signing_key:
|
82
98
|
specification_version: 3
|
83
99
|
summary: Extensions for aws-s3
|