module OpenNebula::ParsePoolBase
vmpool, imagepool, templatepool, vnpool, documentpool
Attributes
pool[RW]
Public Class Methods
new(pool_name, elem_name)
click to toggle source
# File lib/opennebula/xml_utils.rb, line 49 def initialize (pool_name, elem_name) @current = 0 @levels = [{}] @pool = Array.new @pool_name = pool_name @elem_name = elem_name end
Public Instance Methods
characters(s)
click to toggle source
# File lib/opennebula/xml_utils.rb, line 67 def characters(s) @value = s end
end_element(name)
click to toggle source
# File lib/opennebula/xml_utils.rb, line 71 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
start_element(name, attrs = [])
click to toggle source
# File lib/opennebula/xml_utils.rb, line 58 def start_element(name, attrs = []) return if name == @pool_name @value = nil @current = @current + 1 @levels[@current] = Hash.new if @levels[@current].nil? end