Module: ActiveSupport::XmlMini_LibXMLSAX

Extended by:
XmlMini_LibXMLSAX
Included in:
XmlMini_LibXMLSAX
Defined in:
lib/active_support/xml_mini/libxmlsax.rb

Overview

:nodoc:

Defined Under Namespace

Classes: HashBuilder

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#document_classObject

Returns the value of attribute document_class.



61
62
63
# File 'lib/active_support/xml_mini/libxmlsax.rb', line 61

def document_class
  @document_class
end

Instance Method Details

#parse(data) ⇒ Object



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

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

  char = data.getc
  if char.nil?
    {}
  else
    data.ungetc(char)

    LibXML::XML::Error.set_handler(&LibXML::XML::Error::QUIET_HANDLER)
    parser = LibXML::XML::SaxParser.io(data)
    document = self.document_class.new

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