Sha256: bb4ae47ae4fe16ec26b55f042942f76f2078c16c37873bbbf0982ef6288feb4e

Contents?: true

Size: 951 Bytes

Versions: 2

Compression:

Stored size: 951 Bytes

Contents

module Fog
  module Storage
    class GoogleJSON
      class Directories < Fog::Collection
        model Fog::Storage::GoogleJSON::Directory

        def all(opts = {})
          data = service.list_buckets(opts).to_h[:items] || []
          load(data)
        end

        def get(bucket_name,
                if_metageneration_match: nil,
                if_metageneration_not_match: nil,
                projection: nil)
          data = service.get_bucket(
            bucket_name,
            :if_metageneration_match => if_metageneration_match,
            :if_metageneration_not_match => if_metageneration_not_match,
            :projection => projection
          ).to_h

          new(data)
        rescue ::Google::Apis::ClientError => e
          # metageneration check failures returns HTTP 412 Precondition Failed
          raise e unless e.status_code == 404 || e.status_code == 412
          nil
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fog-google-1.0.1 lib/fog/storage/google_json/models/directories.rb
fog-google-1.0.0 lib/fog/storage/google_json/models/directories.rb