Class: Moxml::Adapter::OgaSAXBridge
- Inherits:
-
Object
- Object
- Moxml::Adapter::OgaSAXBridge
- Defined in:
- lib/moxml/adapter/oga.rb
Overview
Bridge between Oga SAX and Moxml SAX
Translates Oga SAX events to Moxml::SAX::Handler events. Oga has different event naming and namespace as first param.
Instance Method Summary collapse
-
#after_element(namespace, name) ⇒ Object
Oga: after_element(namespace, name).
-
#initialize(handler) ⇒ OgaSAXBridge
constructor
A new instance of OgaSAXBridge.
- #on_cdata(text) ⇒ Object
- #on_comment(text) ⇒ Object
-
#on_element(namespace, name, attributes) ⇒ Object
Oga: on_element(namespace, name, attributes) namespace may be nil attributes is an array of [name, value] pairs.
- #on_processing_instruction(name, text) ⇒ Object
- #on_text(text) ⇒ Object
Constructor Details
#initialize(handler) ⇒ OgaSAXBridge
Returns a new instance of OgaSAXBridge.
593 594 595 |
# File 'lib/moxml/adapter/oga.rb', line 593 def initialize(handler) @handler = handler end |
Instance Method Details
#after_element(namespace, name) ⇒ Object
Oga: after_element(namespace, name)
628 629 630 631 |
# File 'lib/moxml/adapter/oga.rb', line 628 def after_element(namespace, name) element_name = namespace ? "#{namespace}:#{name}" : name @handler.on_end_element(element_name) end |
#on_cdata(text) ⇒ Object
637 638 639 |
# File 'lib/moxml/adapter/oga.rb', line 637 def on_cdata(text) @handler.on_cdata(text) end |
#on_comment(text) ⇒ Object
641 642 643 |
# File 'lib/moxml/adapter/oga.rb', line 641 def on_comment(text) @handler.on_comment(text) end |
#on_element(namespace, name, attributes) ⇒ Object
Oga: on_element(namespace, name, attributes) namespace may be nil attributes is an array of [name, value] pairs
600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 |
# File 'lib/moxml/adapter/oga.rb', line 600 def on_element(namespace, name, attributes) # Build full qualified name if namespace present element_name = namespace ? "#{namespace}:#{name}" : name # Convert Oga attributes to hash attr_hash = {} ns_hash = {} # Oga delivers attributes as array of [name, value] pairs attributes.each do |attr_name, attr_value| if attr_name.to_s.start_with?("xmlns") prefix = if attr_name.to_s == "xmlns" nil else attr_name.to_s.sub( "xmlns:", "" ) end ns_hash[prefix] = attr_value else attr_hash[attr_name.to_s] = attr_value end end @handler.on_start_element(element_name, attr_hash, ns_hash) end |
#on_processing_instruction(name, text) ⇒ Object
645 646 647 |
# File 'lib/moxml/adapter/oga.rb', line 645 def on_processing_instruction(name, text) @handler.on_processing_instruction(name, text || "") end |
#on_text(text) ⇒ Object
633 634 635 |
# File 'lib/moxml/adapter/oga.rb', line 633 def on_text(text) @handler.on_characters(text) end |