mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
Remove existing (unused) parser module and introduce a
TerremarkParser - which extends the base parser with the ability to extract relevant attributes
This commit is contained in:
parent
a0a2ca31eb
commit
6a0cb4fca8
1 changed files with 14 additions and 13 deletions
|
@ -1,19 +1,20 @@
|
|||
module Fog
|
||||
module Terremark
|
||||
module Shared
|
||||
module Parser
|
||||
|
||||
remove_method :parse
|
||||
def parse(data)
|
||||
case data['type']
|
||||
when 'application/vnd.vmware.vcloud.vApp+xml'
|
||||
servers.new(data.merge!(:service => self))
|
||||
else
|
||||
data
|
||||
end
|
||||
class TerremarkParser < Fog::Parsers::Base
|
||||
|
||||
def extract_attributes(attributes_xml)
|
||||
attributes = {}
|
||||
until attributes_xml.empty?
|
||||
if attributes_xml.first.is_a?(Array)
|
||||
until attributes_xml.first.empty?
|
||||
attribute = attributes_xml.first.shift
|
||||
attributes[attribute.localname] = attribute.value
|
||||
end
|
||||
|
||||
else
|
||||
attribute = attributes_xml.shift
|
||||
attributes[attribute.localname] = attribute.value
|
||||
end
|
||||
end
|
||||
attributes
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue