Method: ActiveSupport::XmlMini_LibXMLSAX#parse

Defined in:
lib/active_support/xml_mini/libxmlsax.rb

#parse(data) ⇒ Object


65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/active_support/xml_mini/libxmlsax.rb', line 65

def parse(data)
  if !data.respond_to?(:read)
    data = StringIO.new(data || "")
  end

  if data.eof?
    {}
  else
    LibXML::XML::Error.set_handler(&LibXML::XML::Error::QUIET_HANDLER)
    parser = LibXML::XML::SaxParser.io(data)
    document = document_class.new

    parser.callbacks = document
    parser.parse
    document.hash
  end
end