aws-ext 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc ADDED
@@ -0,0 +1,2 @@
1
+ rvm_gemset_create_on_use_flag=1
2
+ rvm gemset use aws-ext
@@ -4,7 +4,7 @@ Extensions for the aws-s3 gem
4
4
 
5
5
  == Installing
6
6
 
7
- % sudo gem install aws-ext --source http://gemcutter.org
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) 2009 Les Hill. See LICENSE for details.
49
+ Copyright (c) 2010 Les Hill. See LICENSE for details.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -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.0"
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{2009-11-21}
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.5}
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",
@@ -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
+
@@ -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
- AWS::S3::Bucket.new(:name => name).exists?(key)
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
- AWS::S3::Bucket.new(:name => name).find(key)
16
+ bucket.find(key)
17
17
  end
18
18
 
19
- it "#each_object calls objects with max_keys and marker set" do
20
- key = 'key'
21
- initial_opts = {:max_keys => 1}
22
- initial_return = [stub('object', :key => key)]
23
- second_opts = {:max_keys => 1}
24
- second_opts[:marker] = key
25
- bucket = AWS::S3::Bucket.new(:name => 'bucket')
26
- bucket.should_receive(:objects).with(initial_opts).and_return(initial_return)
27
- bucket.should_receive(:objects).with(second_opts).and_return([])
28
- bucket.each_object(initial_opts) {}
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
- version: 0.1.0
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: 2009-11-21 00:00:00 -05:00
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
- type: :runtime
18
- version_requirement:
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
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: rspec
27
- type: :development
28
- version_requirement:
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
- version:
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.5
96
+ rubygems_version: 1.3.6
81
97
  signing_key:
82
98
  specification_version: 3
83
99
  summary: Extensions for aws-s3