class XMLBuilder::PathParser::Element
Attributes
index[R]
name[R]
Public Class Methods
new(name, index)
click to toggle source
# File lib/ec2/amitools/xmlbuilder.rb, line 161 def initialize(name, index) @name = name @index = index end
Public Instance Methods
assign_visit(rexml_node, value)
click to toggle source
# File lib/ec2/amitools/xmlbuilder.rb, line 180 def assign_visit(rexml_node, value) if value.is_a?(String) rexml_node.text = value elsif value.is_a?(REXML::Element) value.name = rexml_node.name raise "Node #{rexml_node.name} does not have a parent node" if rexml_node.parent.nil? rexml_node.parent.replace_child(rexml_node, value) else raise 'Can only assign a String or a REXML::Element to an element' end end
retrieve_visit(rexml_node)
click to toggle source
# File lib/ec2/amitools/xmlbuilder.rb, line 192 def retrieve_visit(rexml_node) rexml_node end
walk_visit(rexml_node)
click to toggle source
Move one element down in the dom
# File lib/ec2/amitools/xmlbuilder.rb, line 167 def walk_visit(rexml_node) elements = rexml_node.get_elements(name) raise "Invalid index #{index} for element #{@name}" if @index > elements.length # Create a node if it doesn't exist if @index == elements.length new_element = REXML::Element.new(@name) rexml_node.add_element(new_element) new_element else elements[@index] end end