collections should be arrays, and should not memoize stuff
This commit is contained in:
parent
e3326e4261
commit
7f57619dd9
|
@ -19,7 +19,6 @@ module Fog
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
connection.delete_bucket(@name)
|
connection.delete_bucket(@name)
|
||||||
buckets.delete(name)
|
|
||||||
true
|
true
|
||||||
rescue Fog::Errors::NotFound
|
rescue Fog::Errors::NotFound
|
||||||
false
|
false
|
||||||
|
@ -60,7 +59,6 @@ module Fog
|
||||||
options['LocationConstraint'] = @location
|
options['LocationConstraint'] = @location
|
||||||
end
|
end
|
||||||
connection.put_bucket(@name, options)
|
connection.put_bucket(@name, options)
|
||||||
buckets[name] = self
|
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -11,15 +11,15 @@ module Fog
|
||||||
def all
|
def all
|
||||||
data = connection.get_service.body
|
data = connection.get_service.body
|
||||||
owner = Fog::AWS::S3::Owner.new(data.delete('Owner').merge!(:connection => connection))
|
owner = Fog::AWS::S3::Owner.new(data.delete('Owner').merge!(:connection => connection))
|
||||||
self.delete_if {true}
|
buckets = Fog::AWS::S3::Buckets.new(:connection => connection)
|
||||||
data['Buckets'].each do |bucket|
|
data['Buckets'].each do |bucket|
|
||||||
self[bucket['Name']] = Fog::AWS::S3::Bucket.new({
|
buckets << Fog::AWS::S3::Bucket.new({
|
||||||
:buckets => self,
|
:buckets => buckets,
|
||||||
:connection => connection,
|
:connection => connection,
|
||||||
:owner => owner
|
:owner => owner
|
||||||
}.merge!(bucket))
|
}.merge!(bucket))
|
||||||
end
|
end
|
||||||
self
|
buckets
|
||||||
end
|
end
|
||||||
|
|
||||||
def create(attributes = {})
|
def create(attributes = {})
|
||||||
|
@ -41,7 +41,6 @@ module Fog
|
||||||
:connection => connection,
|
:connection => connection,
|
||||||
:name => data['Name']
|
:name => data['Name']
|
||||||
})
|
})
|
||||||
self[bucket.name] = bucket
|
|
||||||
objects_data = {}
|
objects_data = {}
|
||||||
for key, value in data
|
for key, value in data
|
||||||
if ['IsTruncated', 'Marker', 'MaxKeys', 'Prefix'].include?(key)
|
if ['IsTruncated', 'Marker', 'MaxKeys', 'Prefix'].include?(key)
|
||||||
|
@ -51,7 +50,7 @@ module Fog
|
||||||
bucket.objects.merge_attributes(objects_data)
|
bucket.objects.merge_attributes(objects_data)
|
||||||
data['Contents'].each do |object|
|
data['Contents'].each do |object|
|
||||||
owner = Fog::AWS::S3::Owner.new(object.delete('Owner').merge!(:connection => connection))
|
owner = Fog::AWS::S3::Owner.new(object.delete('Owner').merge!(:connection => connection))
|
||||||
bucket.objects[object['Key']] = Fog::AWS::S3::Object.new({
|
bucket.objects << Fog::AWS::S3::Object.new({
|
||||||
:bucket => bucket,
|
:bucket => bucket,
|
||||||
:connection => connection,
|
:connection => connection,
|
||||||
:objects => self,
|
:objects => self,
|
||||||
|
|
|
@ -33,13 +33,11 @@ module Fog
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
target_object.merge_attributes(copy_data)
|
target_object.merge_attributes(copy_data)
|
||||||
target_object.objects[target_object_key] = target_object
|
|
||||||
target_object
|
target_object
|
||||||
end
|
end
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
connection.delete_object(bucket.name, @key)
|
connection.delete_object(bucket.name, @key)
|
||||||
objects.delete(@key)
|
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -55,7 +53,6 @@ module Fog
|
||||||
def save(options = {})
|
def save(options = {})
|
||||||
data = connection.put_object(bucket.name, @key, @body, options)
|
data = connection.put_object(bucket.name, @key, @body, options)
|
||||||
@etag = data.headers['ETag']
|
@etag = data.headers['ETag']
|
||||||
objects[@key] = self
|
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -15,12 +15,7 @@ module Fog
|
||||||
|
|
||||||
def all(options = {})
|
def all(options = {})
|
||||||
merge_attributes(options)
|
merge_attributes(options)
|
||||||
self.delete_if {true}
|
bucket.buckets.get(bucket.name, attributes).objects
|
||||||
objects = bucket.buckets.get(bucket.name, attributes).objects
|
|
||||||
objects.keys.each do |key|
|
|
||||||
self[key] = objects[key]
|
|
||||||
end
|
|
||||||
self
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def bucket
|
def bucket
|
||||||
|
@ -44,11 +39,12 @@ module Fog
|
||||||
object_data[key] = value
|
object_data[key] = value
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
self[object_data['key']] = Fog::AWS::S3::Object.new({
|
object = Fog::AWS::S3::Object.new({
|
||||||
:bucket => bucket,
|
:bucket => bucket,
|
||||||
:connection => connection,
|
:connection => connection,
|
||||||
:objects => self
|
:objects => self
|
||||||
}.merge!(object_data))
|
}.merge!(object_data))
|
||||||
|
object
|
||||||
rescue Fog::Errors::NotFound
|
rescue Fog::Errors::NotFound
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
@ -63,11 +59,12 @@ module Fog
|
||||||
object_data[key] = value
|
object_data[key] = value
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
self[object_data['key']] = Fog::AWS::S3::Object.new({
|
object = Fog::AWS::S3::Object.new({
|
||||||
:bucket => bucket,
|
:bucket => bucket,
|
||||||
:connection => connection,
|
:connection => connection,
|
||||||
:objects => self
|
:objects => self
|
||||||
}.merge!(object_data))
|
}.merge!(object_data))
|
||||||
|
object
|
||||||
rescue Fog::Errors::NotFound
|
rescue Fog::Errors::NotFound
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
module Fog
|
module Fog
|
||||||
class Collection < Hash
|
class Collection < Array
|
||||||
|
|
||||||
def self.attribute(name, other_names = [])
|
def self.attribute(name, other_names = [])
|
||||||
class_eval <<-EOS, __FILE__, __LINE__
|
class_eval <<-EOS, __FILE__, __LINE__
|
||||||
|
|
|
@ -116,12 +116,12 @@ describe 'Fog::AWS::S3::Bucket' do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should not exist in buckets before save" do
|
it "should not exist in buckets before save" do
|
||||||
@bucket.buckets.key?(@bucket.name).should be_false
|
@bucket.buckets.all.map {|bucket| bucket.name}.include?(@bucket.name).should be_false
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should exist in buckets after save" do
|
it "should exist in buckets after save" do
|
||||||
@bucket.save
|
@bucket.save
|
||||||
@bucket.buckets.key?(@bucket.name).should be_true
|
@bucket.buckets.all.map {|bucket| bucket.name}.include?(@bucket.name).should be_true
|
||||||
@bucket.destroy
|
@bucket.destroy
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@ describe 'Fog::AWS::S3::Buckets' do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should include persisted buckets" do
|
it "should include persisted buckets" do
|
||||||
bucket = s3.buckets.create(:name => 'fogbucketname')
|
@bucket = s3.buckets.create(:name => 'fogbucketname')
|
||||||
s3.buckets.all.keys.should include('fogbucketname')
|
s3.buckets.all.map {|bucket| bucket.name}.should include('fogbucketname')
|
||||||
bucket.destroy
|
@bucket.destroy
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue