1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/cdn/parsers/aws/distribution.rb

59 lines
2 KiB
Ruby

module Fog
module Parsers
module AWS
module CDN
class Distribution < Fog::Parsers::Base
def reset
@response = { 'DistributionConfig' => { 'CNAME' => [], 'Logging' => {}, 'TrustedSigners' => [] } }
end
def start_element(name, attrs = [])
super
case name
when 'CustomOrigin', 'S3Origin'
@origin = name
@response['DistributionConfig'][@origin] = {}
end
end
def end_element(name)
case name
when 'AwsAccountNumber'
@response['DistributionConfig']['TrustedSigners'] << value
when 'Bucket', 'Prefix'
@response['DistributionConfig']['Logging'][name] = value
when 'CNAME'
@response['DistributionConfig']['CNAME'] << value
when 'DNSName', 'OriginAccessIdentity', 'OriginProtocolPolicy'
@response['DistributionConfig'][@origin][name] = value
when 'DomainName', 'Id', 'Status'
@response[name] = value
when 'CallerReference', 'Comment', 'DefaultRootObject', 'Origin', 'OriginAccessIdentity'
@response['DistributionConfig'][name] = value
when 'Enabled'
if value == 'true'
@response['DistributionConfig'][name] = true
else
@response['DistributionConfig'][name] = false
end
when 'HTTPPort', 'HTTPSPort'
@response['DistributionConfig'][@origin][name] = value.to_i
when 'InProgressInvalidationBatches'
@response[name] = value.to_i
when 'LastModifiedTime'
@response[name] = Time.parse(value)
when 'Protocol'
@response['DistributionConfig']['RequireProtocols'] = value
when 'Self'
@response['DistributionConfig']['TrustedSigners'] << 'Self'
end
end
end
end
end
end
end