lib/fog/storage/google_json/models/directory.rb in fog-google-0.6.0 vs lib/fog/storage/google_json/models/directory.rb in fog-google-1.0.0

- old
+ new

@@ -1,24 +1,41 @@ module Fog module Storage class GoogleJSON + ## + # Represents a Google Storage bucket class Directory < Fog::Model - identity :key, :aliases => %w(Name name) + identity :key, :aliases => ["Name", "name", :name] - def acl=(new_acl) - valid_acls = %w(private projectPrivate publicRead publicReadWrite authenticatedRead) - unless valid_acls.include?(new_acl) - raise ArgumentError.new("acl must be one of [#{valid_acls.join(', ')}]") - end - @acl = new_acl - end + attribute :acl + attribute :billing + attribute :cors + attribute :default_object_acl, aliases => "defaultObjectAcl" + attribute :etag + attribute :id + attribute :kind + attribute :labels + attribute :lifecycle + attribute :location + attribute :logging + attribute :metageneration + attribute :name + attribute :owner + attribute :project_number, aliases => "projectNumber" + attribute :self_link, aliases => "selfLink" + attribute :storage_class, aliases => "storageClass" + attribute :time_created, aliases => "timeCreated" + attribute :updated + attribute :versioning + attribute :website def destroy requires :key service.delete_bucket(key) true - rescue Fog::Errors::NotFound + rescue ::Google::Apis::ClientError => e + raise e unless e.status_code == 404 false end def files @files ||= begin @@ -27,37 +44,17 @@ :service => service ) end end - def public=(new_public) - if new_public - @acl = "publicRead" - else - @acl = "private" - end - new_public - end - def public_url requires :key - acl = service.get_bucket_acl(key).body - if acl["items"].detect { |entry| entry["entity"] == "allUsers" && entry["role"] == "READER" } - if key.to_s =~ /^(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\.(?![\.\-])|\-(?![\.])){1,61}[a-z0-9]$/ - "https://#{key}.storage.googleapis.com" - else - "https://storage.googleapis.com/#{key}" - end - end + "#{GOOGLE_STORAGE_BUCKET_BASE_URL}#{key}" end def save requires :key - options = {} - options["predefinedAcl"] = @acl if @acl - options["LocationConstraint"] = @location if @location - options["StorageClass"] = attributes[:storage_class] if attributes[:storage_class] - service.put_bucket(key, options) + service.put_bucket(key, attributes) true end end end end