# File lib/crack/xml.rb, line 189 189: def self.parse(xml) 190: stack = [] 191: parser = REXML::Parsers::BaseParser.new(xml) 192: 193: while true 194: event = parser.pull 195: case event[0] 196: when :end_document 197: break 198: when :end_doctype, :start_doctype 199: # do nothing 200: when :start_element 201: stack.push REXMLUtilityNode.new(event[1], event[2]) 202: when :end_element 203: if stack.size > 1 204: temp = stack.pop 205: stack.last.add_node(temp) 206: end 207: when :text, :cdata 208: stack.last.add_node(event[1]) unless event[1].strip.length == 0 || stack.empty? 209: end 210: end 211: stack.length > 0 ? stack.pop.to_hash : {} 212: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.