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.
Constant Summary
Constants included from SAX::NamespaceSplitter
SAX::NamespaceSplitter::EMPTY_NAMESPACES
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
654 655 656 |
# File 'lib/moxml/adapter/oga.rb', line 654 def initialize(handler) @handler = handler end |
Instance Method Details
#emit(node) ⇒ Object
Walk a parsed Oga node and emit Moxml SAX events.
667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 |
# File 'lib/moxml/adapter/oga.rb', line 667 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
662 663 664 |
# File 'lib/moxml/adapter/oga.rb', line 662 def on_end_document @handler.on_end_document end |
#on_start_document ⇒ Object
658 659 660 |
# File 'lib/moxml/adapter/oga.rb', line 658 def on_start_document @handler.on_start_document end |