class Oembed::XmlParser
Public Class Methods
parse(source)
click to toggle source
# File lib/oembed/xml_parser.rb, line 7 def self.parse(source) begin document = REXML::Document.new(source) traverse(document.root) rescue REXML::ParseException => e raise Oembed::ParserError.new(e), 'XML parser error' end end
Private Class Methods
traverse(node)
click to toggle source
# File lib/oembed/xml_parser.rb, line 18 def self.traverse(node) node.elements.to_a.inject({}) do |accum, elem| accum[elem.name] = elem.has_elements? ? traverse(elem) : elem.text accum end end