fake-aws-sdk 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NjEwYzgyMWM4M2ZkZTI0NDQ2NWUyMDg5Mzg4M2YxNjRiYWY2MjI1NA==
5
+ data.tar.gz: !binary |-
6
+ YzE1ZTEzMTEzOTkwMDNjNzQ5NWRmMWU1MjMwYjA2NjFhOGY4YWViZg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ OThmODliYjJlNjQyZTk2MzY4OGM0ZmFiMWEzY2FkNDIyZTgxYzc2MGZmMGY4
10
+ MTA1MTNiNGVmMGM0N2Y2MjkwMTAxNzcyZmUxMTUyODY0MDdlYTE3YTk4NzJh
11
+ MThmM2NiNTJkNmY3NTY3NTBjOWQ2N2ExYjEzMzFlNjBjNjRjNGM=
12
+ data.tar.gz: !binary |-
13
+ NDBkMGE4ZGRiZWI0MTZkYjMxNTJiZjc1MjJlYWRlNjdiYWUzYTEzYzVjM2Rl
14
+ ZGVlNGI0OGQ3Y2MyOTQ5ZDM2NGJjNmU1Mjc4OWViNDEyZjcwZWU5MmFlNzJm
15
+ Yzk5MWI2ZWJiZjdlZTZhM2QxNDE3OWYxYTU1MjExNmZiZDM4M2E=
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
data/lib/fake_aws/s3.rb CHANGED
@@ -1,2 +1,18 @@
1
- require "fake_aws/s3/bucket"
1
+ require "fake_aws/s3/bucket_collection"
2
2
  require "fake_aws/s3/s3_object"
3
+
4
+ module FakeAWS
5
+
6
+ class S3
7
+
8
+ def initialize(options = {})
9
+ @options = options
10
+ @buckets = BucketCollection.new
11
+ end
12
+
13
+ attr_reader :buckets
14
+ attr_reader :options
15
+
16
+ end
17
+
18
+ end
@@ -1,18 +1,22 @@
1
1
  require "fake_aws/s3/object_collection"
2
2
 
3
3
  module FakeAWS
4
- module S3
4
+ class S3
5
5
 
6
6
  class Bucket
7
7
 
8
8
  def initialize(name)
9
9
  @name = name
10
- @objects = ObjectCollection.new(self)
10
+ @objects = ObjectCollection.new
11
11
  end
12
12
 
13
13
  attr_reader :name
14
14
  attr_reader :objects
15
15
 
16
+ def exists?
17
+ true
18
+ end
19
+
16
20
  end
17
21
 
18
22
  end
@@ -0,0 +1,33 @@
1
+ require "fake_aws/s3/bucket"
2
+ require "forwardable"
3
+
4
+ module FakeAWS
5
+ class S3
6
+
7
+ class BucketCollection
8
+
9
+ def initialize
10
+ @buckets = Hash.new do |h, name|
11
+ h[name] = Bucket.new(name)
12
+ end
13
+ end
14
+
15
+ def [](name)
16
+ name = name.to_s
17
+ @buckets[name]
18
+ end
19
+
20
+ extend Forwardable
21
+
22
+ def_delegators :@buckets, :empty?
23
+
24
+ include Enumerable
25
+
26
+ def each(&block)
27
+ @buckets.each_value(&block)
28
+ end
29
+
30
+ end
31
+
32
+ end
33
+ end
@@ -2,14 +2,13 @@ require "fake_aws/s3/s3_object"
2
2
  require "forwardable"
3
3
 
4
4
  module FakeAWS
5
- module S3
5
+ class S3
6
6
 
7
7
  class ObjectCollection
8
8
 
9
- def initialize(bucket)
10
- @bucket = bucket
9
+ def initialize
11
10
  @objects = Hash.new do |h, key|
12
- h[key] = S3Object.new(self, key)
11
+ h[key] = S3Object.new(key)
13
12
  end
14
13
  end
15
14
 
@@ -20,7 +19,17 @@ module FakeAWS
20
19
 
21
20
  extend Forwardable
22
21
 
23
- def_delegators :@objects, :count
22
+ include Enumerable
23
+
24
+ def each
25
+ @objects.each_value do |object|
26
+ yield object if object.exists?
27
+ end
28
+ end
29
+
30
+ def empty?
31
+ !@objects.values.any?(&:exists?)
32
+ end
24
33
 
25
34
  end
26
35
 
@@ -1,14 +1,12 @@
1
1
  module FakeAWS
2
- module S3
2
+ class S3
3
3
 
4
4
  class S3Object
5
5
 
6
- def initialize(bucket, key)
7
- @bucket = bucket
6
+ def initialize(key)
8
7
  @key = key
9
8
  end
10
9
 
11
- attr_reader :bucket
12
10
  attr_reader :key
13
11
 
14
12
  def write(data)
@@ -1,3 +1,3 @@
1
1
  module FakeAWS
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,39 @@
1
+ require "fake_aws/s3/bucket_collection"
2
+
3
+ describe FakeAWS::S3::BucketCollection do
4
+
5
+ let(:buckets) { FakeAWS::S3::BucketCollection.new }
6
+
7
+ it "starts empty" do
8
+ buckets.should be_empty
9
+ end
10
+
11
+ describe "#[]" do
12
+
13
+ it "returns a Bucket" do
14
+ buckets["foo"].should be_kind_of(FakeAWS::S3::Bucket)
15
+ end
16
+
17
+ it "always returns the same Bucket" do
18
+ buckets["foo"].should equal(buckets["foo"])
19
+ end
20
+
21
+ it "converts Symbol names to String" do
22
+ buckets["foo"].should equal(buckets[:foo])
23
+ end
24
+
25
+ end
26
+
27
+ it "is Enumerable" do
28
+ buckets.should be_kind_of(Enumerable)
29
+ end
30
+
31
+ describe "#each" do
32
+ it "yields all buckets" do
33
+ buckets["a"]
34
+ buckets["b"]
35
+ buckets.map(&:name).should eq(%w(a b))
36
+ end
37
+ end
38
+
39
+ end
@@ -1,5 +1,3 @@
1
- require "spec_helper"
2
-
3
1
  require "fake_aws/s3/bucket"
4
2
 
5
3
  describe FakeAWS::S3::Bucket do
@@ -10,28 +8,14 @@ describe FakeAWS::S3::Bucket do
10
8
  bucket.name.should eq("foo")
11
9
  end
12
10
 
13
- let(:objects) { bucket.objects }
14
-
15
- describe "#objects" do
16
-
17
- it "starts empty" do
18
- objects.count.should be_zero
19
- end
20
-
11
+ it "implicitly exists" do
12
+ bucket.should exist
21
13
  end
22
14
 
23
- describe "#objects['key']" do
24
-
25
- it "returns an S3Object" do
26
- objects["foo"].should be_kind_of(FakeAWS::S3::S3Object)
27
- end
28
-
29
- it "always returns the same S3Object" do
30
- objects["foo"].should equal(objects["foo"])
31
- end
15
+ describe "#objects" do
32
16
 
33
- it "converts Symbol keys to String" do
34
- objects["foo"].should equal(objects[:foo])
17
+ it "returns an ObjectCollection" do
18
+ bucket.objects.should be_kind_of(FakeAWS::S3::ObjectCollection)
35
19
  end
36
20
 
37
21
  end
@@ -0,0 +1,77 @@
1
+ require "fake_aws/s3/object_collection"
2
+
3
+ describe FakeAWS::S3::ObjectCollection do
4
+
5
+ let(:objects) { FakeAWS::S3::ObjectCollection.new }
6
+
7
+ it "starts empty" do
8
+ objects.should be_empty
9
+ end
10
+
11
+ describe "#[]" do
12
+
13
+ it "returns an S3Object" do
14
+ objects["foo"].should be_kind_of(FakeAWS::S3::S3Object)
15
+ end
16
+
17
+ it "always returns the same S3Object" do
18
+ objects["foo"].should equal(objects["foo"])
19
+ end
20
+
21
+ it "passes along the object key" do
22
+ objects["foo"].key.should eq("foo")
23
+ end
24
+
25
+ it "converts Symbol keys to String" do
26
+ objects["foo"].should equal(objects[:foo])
27
+ end
28
+
29
+ end
30
+
31
+ it "is Enumerable" do
32
+ objects.should be_kind_of(Enumerable)
33
+ end
34
+
35
+ context "after writing some objects" do
36
+
37
+ before do
38
+ objects["a"].write("CONTENT")
39
+ objects["b"].write("CONTENT")
40
+ end
41
+
42
+ it "is no longer empty" do
43
+ objects.should_not be_empty
44
+ end
45
+
46
+ describe "#each" do
47
+
48
+ it "yields the objects with content" do
49
+ objects.map(&:key).should eq(%w(a b))
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+
56
+ context "after referencing some objects (without writing content)" do
57
+
58
+ before do
59
+ objects["a"]
60
+ objects["b"]
61
+ end
62
+
63
+ it "is still considered empty" do
64
+ objects.should be_empty
65
+ end
66
+
67
+ describe "#each" do
68
+
69
+ it "yields nothing" do
70
+ objects.map(&:key).should be_empty
71
+ end
72
+
73
+ end
74
+
75
+ end
76
+
77
+ end
@@ -1,13 +1,9 @@
1
- require "spec_helper"
2
-
3
1
  require "fake_aws/s3/bucket"
4
2
  require "fake_aws/s3/s3_object"
5
3
 
6
4
  describe FakeAWS::S3::S3Object do
7
5
 
8
- let(:bucket) { FakeAWS::S3::Bucket.new("test-bucket") }
9
-
10
- let(:object) { FakeAWS::S3::S3Object.new(bucket, "test-object") }
6
+ let(:object) { FakeAWS::S3::S3Object.new("test-object") }
11
7
 
12
8
  subject { object }
13
9
 
@@ -0,0 +1,15 @@
1
+ require "fake_aws/s3"
2
+
3
+ describe FakeAWS::S3 do
4
+
5
+ let(:fake_s3) { FakeAWS::S3.new }
6
+
7
+ describe "#buckets" do
8
+
9
+ it "returns a BucketCollection" do
10
+ fake_s3.buckets.should be_kind_of(FakeAWS::S3::BucketCollection)
11
+ end
12
+
13
+ end
14
+
15
+ end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fake-aws-sdk
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.0.1
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Mike Williams
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-06 00:00:00.000000000 Z
11
+ date: 2013-02-27 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: Fake implementation of AWS SDK
15
14
  email:
@@ -19,6 +18,7 @@ extensions: []
19
18
  extra_rdoc_files: []
20
19
  files:
21
20
  - .gitignore
21
+ - .rspec
22
22
  - Gemfile
23
23
  - LICENSE.txt
24
24
  - README.md
@@ -28,43 +28,41 @@ files:
28
28
  - lib/fake_aws.rb
29
29
  - lib/fake_aws/s3.rb
30
30
  - lib/fake_aws/s3/bucket.rb
31
+ - lib/fake_aws/s3/bucket_collection.rb
31
32
  - lib/fake_aws/s3/object_collection.rb
32
33
  - lib/fake_aws/s3/s3_object.rb
33
34
  - lib/fake_aws/version.rb
35
+ - spec/fake-aws/s3/bucket_collection_spec.rb
34
36
  - spec/fake-aws/s3/bucket_spec.rb
37
+ - spec/fake-aws/s3/object_collection_spec.rb
35
38
  - spec/fake-aws/s3/s3_object_spec.rb
36
- - spec/spec_helper.rb
39
+ - spec/fake-aws/s3_spec.rb
37
40
  homepage: http://github.com/cogent/fake-aws-sdk
38
41
  licenses: []
42
+ metadata: {}
39
43
  post_install_message:
40
44
  rdoc_options: []
41
45
  require_paths:
42
46
  - lib
43
47
  required_ruby_version: !ruby/object:Gem::Requirement
44
- none: false
45
48
  requirements:
46
49
  - - ! '>='
47
50
  - !ruby/object:Gem::Version
48
- segments:
49
- - 0
50
- hash: 4095608689954055844
51
51
  version: '0'
52
52
  required_rubygems_version: !ruby/object:Gem::Requirement
53
- none: false
54
53
  requirements:
55
54
  - - ! '>='
56
55
  - !ruby/object:Gem::Version
57
- segments:
58
- - 0
59
- hash: 4095608689954055844
60
56
  version: '0'
61
57
  requirements: []
62
58
  rubyforge_project:
63
- rubygems_version: 1.8.24
59
+ rubygems_version: 2.0.0
64
60
  signing_key:
65
- specification_version: 3
61
+ specification_version: 4
66
62
  summary: Fake implementation of AWS SDK
67
63
  test_files:
64
+ - spec/fake-aws/s3/bucket_collection_spec.rb
68
65
  - spec/fake-aws/s3/bucket_spec.rb
66
+ - spec/fake-aws/s3/object_collection_spec.rb
69
67
  - spec/fake-aws/s3/s3_object_spec.rb
70
- - spec/spec_helper.rb
68
+ - spec/fake-aws/s3_spec.rb
data/spec/spec_helper.rb DELETED
@@ -1 +0,0 @@
1
- require "aws-sdk"