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.
569 570 571 |
# File 'lib/moxml/adapter/oga.rb', line 569 def initialize(handler) @handler = handler end |
Instance Method Details
#after_element(namespace, name) ⇒ Object
Oga: after_element(namespace, name)
604 605 606 607 |
# File 'lib/moxml/adapter/oga.rb', line 604 def after_element(namespace, name) element_name = namespace ? "#{namespace}:#{name}" : name @handler.on_end_element(element_name) end |
#on_cdata(text) ⇒ Object
613 614 615 |
# File 'lib/moxml/adapter/oga.rb', line 613 def on_cdata(text) @handler.on_cdata(text) end |
#on_comment(text) ⇒ Object
617 618 619 |
# File 'lib/moxml/adapter/oga.rb', line 617 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
576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 |
# File 'lib/moxml/adapter/oga.rb', line 576 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
621 622 623 |
# File 'lib/moxml/adapter/oga.rb', line 621 def on_processing_instruction(name, text) @handler.on_processing_instruction(name, text || "") end |
#on_text(text) ⇒ Object
609 610 611 |
# File 'lib/moxml/adapter/oga.rb', line 609 def on_text(text) @handler.on_characters(text) end |