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