Class: Moxml::Adapter::Oga::OgaSAXBridge
- Inherits:
-
Object
- Object
- Moxml::Adapter::Oga::OgaSAXBridge
- Includes:
- SAX::NamespaceSplitter
- Defined in:
- lib/moxml/adapter/oga.rb
Overview
Bridge between a parsed Oga DOM and Moxml SAX events.
Instance Method Summary collapse
-
#emit(node) ⇒ Object
Walk a parsed Oga node and emit Moxml SAX events.
-
#initialize(handler) ⇒ OgaSAXBridge
constructor
A new instance of OgaSAXBridge.
- #on_end_document ⇒ Object
- #on_start_document ⇒ Object
Methods included from SAX::NamespaceSplitter
#split_attributes_and_namespaces
Constructor Details
#initialize(handler) ⇒ OgaSAXBridge
Returns a new instance of OgaSAXBridge.
619 620 621 |
# File 'lib/moxml/adapter/oga.rb', line 619 def initialize(handler) @handler = handler end |
Instance Method Details
#emit(node) ⇒ Object
Walk a parsed Oga node and emit Moxml SAX events.
632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 |
# File 'lib/moxml/adapter/oga.rb', line 632 def emit(node) case node when ::Oga::XML::Element element_name = qualified_name(node.namespace_name, node.name) pairs = node.attributes.map do |a| [qualified_name(a.namespace_name, a.name), a.value] end attrs, namespaces = split_attributes_and_namespaces(pairs) @handler.on_start_element(element_name, attrs, namespaces) node.children.each { |c| emit(c) } @handler.on_end_element(element_name) when ::Oga::XML::Text @handler.on_characters(node.text) when ::Oga::XML::Cdata @handler.on_cdata(node.text) when ::Oga::XML::Comment @handler.on_comment(node.text) when ::Oga::XML::ProcessingInstruction @handler.on_processing_instruction(node.name, node.text || "") end end |
#on_end_document ⇒ Object
627 628 629 |
# File 'lib/moxml/adapter/oga.rb', line 627 def on_end_document @handler.on_end_document end |
#on_start_document ⇒ Object
623 624 625 |
# File 'lib/moxml/adapter/oga.rb', line 623 def on_start_document @handler.on_start_document end |