File: directories.rb

package info (click to toggle)
ruby-fog-google 1.19.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,568 kB
  • sloc: ruby: 16,775; makefile: 3
file content (34 lines) | stat: -rw-r--r-- 1,099 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module Fog
  module Storage
    class GoogleXML
      class Directories < Fog::Collection
        model Fog::Storage::GoogleXML::Directory

        def all
          data = service.get_service.body["Buckets"]
          load(data)
        end

        def get(key, options = {})
          remap_attributes(options,             :delimiter  => "delimiter",
                                                :marker     => "marker",
                                                :max_keys   => "max-keys",
                                                :prefix     => "prefix")
          data = service.get_bucket(key, options).body
          directory = new(:key => data["Name"])
          options = {}
          data.each_pair do |k, v|
            if %w(CommonPrefixes Delimiter IsTruncated Marker MaxKeys Prefix).include?(k)
              options[k] = v
            end
          end
          directory.files.merge_attributes(options)
          directory.files.load(data["Contents"])
          directory
        rescue Excon::Errors::NotFound
          nil
        end
      end
    end
  end
end