Sha256: 8ddc986f80c3c8e23d4eaa49d4673de19ef07af38ed5f7d22261512547215449

Contents?: true

Size: 1.39 KB

Versions: 2

Compression:

Stored size: 1.39 KB

Contents

module Dag
  class Client::API
    class StorageResult
      def initialize(xml_doc)
        @xml_doc = xml_doc
      end
    end

    class BucketsResult < StorageResult
      def buckets
        REXML::XPath.match(@xml_doc, "/ListAllMyBucketsResult/Buckets/Bucket/Name").map { |b| b.text }
      end

      def owner_id
        REXML::XPath.match(@xml_doc, "/ListAllMyBucketsResult/Owner/ID").map { |b| b.text }.first
      end

      def owner_display_name
        REXML::XPath.match(@xml_doc, "/ListAllMyBucketsResult/Owner/DisplayName").map { |b| b.text }.first
      end
    end

    class ObjectsResult < StorageResult
      def objects
        REXML::XPath.match(@xml_doc, "/ListBucketResult/Contents/Key").map { |b| b.text }
      end

      def full_objects
        REXML::XPath.match(@xml_doc, "/ListBucketResult/Contents").map{|m|
          XmlSimple.xml_in(m.to_s)
        }
      end

      def truncated?
        REXML::XPath.match(@xml_doc, "/ListBucketResult/IsTruncated").map { |b| b.text }.first == 'true'
      end

      def marker
        REXML::XPath.match(@xml_doc, "/ListBucketResult/Marker").map { |b| b.text }.first
      end

      def next_marker
        REXML::XPath.match(@xml_doc, "/ListBucketResult/NextMarker").map { |b| b.text }.first
      end

      def max
        REXML::XPath.match(@xml_doc, "/ListBucketResult/MaxKeys").map { |b| b.text }.first.to_i
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
iij-dag-client-1.0.2 lib/dag/client/api/storage_result.rb
iij-dag-client-1.0.1 lib/dag/client/api/storage_result.rb