1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00
fog--fog-aws/lib/fog/aws/parsers/storage/get_bucket.rb

59 lines
1.7 KiB
Ruby
Raw Normal View History

module Fog
module Parsers
module Storage
module AWS
class GetBucket < Fog::Parsers::Base
def reset
@object = { 'Owner' => {} }
@response = { 'Contents' => [], 'CommonPrefixes' => [] }
end
def start_element(name, attrs = [])
super
case name
when 'CommonPrefixes'
@in_common_prefixes = true
end
end
def end_element(name)
case name
when 'CommonPrefixes'
@in_common_prefixes = false
when 'Contents'
@response['Contents'] << @object
@object = { 'Owner' => {} }
when 'DisplayName', 'ID'
@object['Owner'][name] = value
when 'ETag'
@object[name] = value.gsub('"', '')
when 'IsTruncated'
if value == 'true'
@response['IsTruncated'] = true
else
@response['IsTruncated'] = false
end
when 'LastModified'
@object['LastModified'] = Time.parse(value)
when 'Marker', 'Name'
@response[name] = value
when 'MaxKeys'
@response['MaxKeys'] = value.to_i
when 'Prefix'
if @in_common_prefixes
@response['CommonPrefixes'] << value
else
@response[name] = value
end
when 'Size'
@object['Size'] = value.to_i
when 'Delimiter', 'Key', 'StorageClass'
@object[name] = value
end
end
end
end
end
end
end