Class: Fog::Storage::Rackspace::Directory
- Defined in:
- lib/fog/rackspace/models/storage/directory.rb
Instance Attribute Summary
Attributes inherited from Model
Instance Method Summary collapse
Methods inherited from Model
#initialize, #inspect, #reload, #symbolize_keys, #to_json, #wait_for
Methods included from Attributes::ClassMethods
#_load, #aliases, #attribute, #attributes, #identity, #ignore_attributes, #ignored_attributes
Methods included from Core::DeprecatedConnectionAccessors
#connection, #connection=, #prepare_service_value
Methods included from Attributes::InstanceMethods
#_dump, #attributes, #dup, #identity, #identity=, #merge_attributes, #new_record?, #persisted?, #requires, #requires_one
Constructor Details
This class inherits a constructor from Fog::Model
Instance Method Details
#destroy ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/fog/rackspace/models/storage/directory.rb', line 16 def destroy requires :key service.delete_container(key) service.cdn.post_container(key, 'X-CDN-Enabled' => 'False') true rescue Excon::Errors::NotFound false end |
#files ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/fog/rackspace/models/storage/directory.rb', line 25 def files @files ||= begin Fog::Storage::Rackspace::Files.new( :directory => self, :service => service ) end end |
#public=(new_public) ⇒ Object
34 35 36 |
# File 'lib/fog/rackspace/models/storage/directory.rb', line 34 def public=(new_public) @public = new_public end |
#public_url ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/fog/rackspace/models/storage/directory.rb', line 38 def public_url requires :key @public_url ||= begin begin response = service.cdn.head_container(key) if response.headers['X-Cdn-Enabled'] == 'True' if service.rackspace_cdn_ssl == true response.headers['X-Cdn-Ssl-Uri'] else cdn_cname || response.headers['X-Cdn-Uri'] end end rescue Fog::Service::NotFound nil end end end |
#save ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/fog/rackspace/models/storage/directory.rb', line 55 def save requires :key service.put_container(key) if service.cdn && @public # if public and CDN connection then update cdn to public uri_header = 'X-CDN-URI' if service.rackspace_cdn_ssl == true uri_header = 'X-CDN-SSL-URI' end @public_url = service.cdn.put_container(key, 'X-CDN-Enabled' => 'True').headers[uri_header] elsif service.cdn && !@public service.cdn.put_container(key, 'X-CDN-Enabled' => 'False') @public_url = nil elsif !service.cdn && @public # if public but no CDN connection then error raise(Fog::Storage::Rackspace::Error.new("Directory can not be set as :public without a CDN provided")) end true end |