module OpenNebula::ParsePoolBase
vmpool, imagepool, templatepool, vnpool, documentpool
Attributes
Public Class Methods
Source
# File lib/opennebula/xml_utils.rb, line 49 def initialize (pool_name, elem_name) clear @pool_name = pool_name @elem_name = elem_name end
Public Instance Methods
Source
# File lib/opennebula/xml_utils.rb, line 56 def clear @current = 0 @levels = [{}] @pool = Array.new end
Source
# File lib/opennebula/xml_utils.rb, line 75 def end_element(name) if @levels[@current].empty? @levels[@current-1][name] = @value || {} else if @levels[@current-1][name] @levels[@current-1][name] = [@levels[@current-1][name], @levels[@current]].flatten else @levels[@current-1][name] = @levels[@current] end @levels[@current] = Hash.new end if name == @elem_name @pool << @levels[0][@elem_name] @current = 0 @levels[0] = Hash.new else @current = @current -1 end end
Source
# File lib/opennebula/xml_utils.rb, line 62 def start_element(name, attrs = []) return if name == @pool_name @value = nil @current = @current + 1 @levels[@current] = Hash.new if @levels[@current].nil? end