fog--fog/lib/fog/vcloud/parser.rb

43 lines
1.0 KiB
Ruby

module Fog
module Parsers
module Vcloud
def self.de_camel(str)
str.gsub(/(.)([A-Z])/,'\1_\2').downcase
end
class Base < Fog::Parsers::Base
private
def generate_link(attributes)
link = Struct::VcloudLink.new
until attributes.empty?
link[attributes.shift.downcase] = attributes.shift
end
if link.href
link.href = URI.parse(link.href)
end
link
end
def handle_root(attributes)
root = {}
until attributes.empty?
if attributes.first.is_a?(Array)
attribute = attributes.shift
root[attribute.first.downcase] = attribute.last
else
root[attributes.shift.downcase] = attributes.shift
end
end
@response.href = URI.parse(root['href'])
@response.name = root['name']
@response.type = root['type']
@response.xmlns = root['xmlns']
end
end
end
end
end