mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
8338c5f81a
local fix
53 lines
1.5 KiB
Ruby
53 lines
1.5 KiB
Ruby
require 'fog/core/model'
|
|
|
|
module Fog
|
|
module Storage
|
|
class Ninefold
|
|
|
|
class Directory < Fog::Model
|
|
|
|
identity :key, :aliases => :Filename
|
|
attribute :objectid, :aliases => :ObjectID
|
|
|
|
def files
|
|
@files ||= begin
|
|
Fog::Storage::Ninefold::Files.new(
|
|
:directory => self,
|
|
:connection => connection
|
|
)
|
|
end
|
|
end
|
|
|
|
def directories
|
|
@directories ||= begin
|
|
Fog::Storage::Ninefold::Directories.new(
|
|
:directory => self,
|
|
:connection => connection
|
|
)
|
|
end
|
|
end
|
|
|
|
def save
|
|
self.key = attributes[:directory].key + key if attributes[:directory]
|
|
self.key = key + '/' unless key =~ /\/$/
|
|
res = connection.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
|
|
connection.delete_namespace key
|
|
end
|
|
|
|
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|