Class: Fog::Storage::Rackspace::Mock::MockContainer
- Inherits:
-
Object
- Object
- Fog::Storage::Rackspace::Mock::MockContainer
- Defined in:
- lib/fog/rackspace/storage.rb
Overview
An in-memory container for use with Rackspace storage mocks. Includes many ‘objects` mapped by (escaped) object name. Tracks container metadata.
Instance Attribute Summary collapse
-
#meta ⇒ Object
readonly
Returns the value of attribute meta.
-
#objects ⇒ Object
readonly
Returns the value of attribute objects.
-
#service ⇒ Object
readonly
Returns the value of attribute service.
Instance Method Summary collapse
-
#add_object(name, data) ⇒ Object
Add a new MockObject to this container.
-
#bytes_used ⇒ Integer
Total sizes of all objects added to this container.
-
#empty? ⇒ Boolean
Determine if this container contains any MockObjects or not.
-
#initialize(service) ⇒ MockContainer
constructor
Create a new container.
-
#mock_object(name) ⇒ MockObject?
Access a MockObject within this container by (unescaped) name.
-
#mock_object!(name) ⇒ MockObject
Access a MockObject with a specific name, raising a ‘Fog::Storage::Rackspace::NotFound` exception if none are present.
-
#remove_object(name) ⇒ Object
Remove a MockObject from the container by name.
-
#to_headers ⇒ Hash<String, String>
Render the HTTP headers that would be associated with this container.
Constructor Details
#initialize(service) ⇒ MockContainer
Create a new container. Generally, you should call Rackspace::Storage#add_container instead.
132 133 134 135 |
# File 'lib/fog/rackspace/storage.rb', line 132 def initialize(service) @service = service @objects, @meta = {}, {} end |
Instance Attribute Details
#meta ⇒ Object (readonly)
Returns the value of attribute meta.
128 129 130 |
# File 'lib/fog/rackspace/storage.rb', line 128 def @meta end |
#objects ⇒ Object (readonly)
Returns the value of attribute objects.
128 129 130 |
# File 'lib/fog/rackspace/storage.rb', line 128 def objects @objects end |
#service ⇒ Object (readonly)
Returns the value of attribute service.
128 129 130 |
# File 'lib/fog/rackspace/storage.rb', line 128 def service @service end |
Instance Method Details
#add_object(name, data) ⇒ Object
Add a new MockObject to this container. An existing object with the same name will be overwritten.
188 189 190 |
# File 'lib/fog/rackspace/storage.rb', line 188 def add_object(name, data) @objects[Fog::Rackspace.escape(name)] = MockObject.new(data, service) end |
#bytes_used ⇒ Integer
Total sizes of all objects added to this container.
148 149 150 |
# File 'lib/fog/rackspace/storage.rb', line 148 def bytes_used @objects.values.map { |o| o.bytes_used }.inject(0) { |a, b| a + b } end |
#empty? ⇒ Boolean
Determine if this container contains any MockObjects or not.
140 141 142 |
# File 'lib/fog/rackspace/storage.rb', line 140 def empty? @objects.empty? end |
#mock_object(name) ⇒ MockObject?
Access a MockObject within this container by (unescaped) name.
169 170 171 |
# File 'lib/fog/rackspace/storage.rb', line 169 def mock_object(name) @objects[Fog::Rackspace.escape(name)] end |
#mock_object!(name) ⇒ MockObject
Access a MockObject with a specific name, raising a ‘Fog::Storage::Rackspace::NotFound` exception if none are present.
179 180 181 |
# File 'lib/fog/rackspace/storage.rb', line 179 def mock_object!(name) mock_object(name) or raise Fog::Storage::Rackspace::NotFound.new end |