mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
7961ad6508
The 'connection' accessor in collections and models actually refered to a subclassed instance of Fog::Service which creates confusion in the code. References to 'connection' could have meant the service or the Fog::Connection held within that service. This deprecates the connection accessor and replaces it with `#service` as a read only value. When a collection or model is initalised then service should be passed. This commit also updates all the changes to @connection made by providers in model initialisers since these depending on the presence of the 'connection' key. The key is still accepted by outputs a warning.
53 lines
1.3 KiB
Ruby
53 lines
1.3 KiB
Ruby
require 'fog/core/model'
|
|
|
|
module Fog
|
|
module Storage
|
|
class Atmos
|
|
|
|
class Directory < Fog::Model
|
|
|
|
identity :key, :aliases => :Filename
|
|
attribute :objectid, :aliases => :ObjectID
|
|
|
|
def files
|
|
@files ||= begin
|
|
Fog::Storage::Atmos::Files.new(
|
|
:directory => self,
|
|
:service => service
|
|
)
|
|
end
|
|
end
|
|
|
|
def directories
|
|
@directories ||= begin
|
|
Fog::Storage::Atmos::Directories.new(
|
|
:directory => self,
|
|
:service => service
|
|
)
|
|
end
|
|
end
|
|
|
|
def save
|
|
self.key = attributes[:directory].key + key if attributes[:directory]
|
|
self.key = key + '/' unless key =~ /\/$/
|
|
res = service.post_namespace key
|
|
reload
|
|
end
|
|
|
|
def destroy(opts={})
|
|
if opts[:recursive]
|
|
files.each {|f| f.destroy }
|
|
directories.each do |d|
|
|
d.files.each {|f| f.destroy }
|
|
d.destroy(opts)
|
|
end
|
|
end
|
|
service.delete_namespace key
|
|
end
|
|
|
|
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|