Class: Moxml::Adapter::Nokogiri::NokogiriSAXBridge

Inherits:
Nokogiri::XML::SAX::Document
  • Object
show all
Includes:
SAX::NamespaceSplitter
Defined in:
lib/moxml/adapter/nokogiri.rb

Overview

Bridge between Nokogiri SAX and Moxml SAX

Translates Nokogiri::XML::SAX::Document events to Moxml::SAX::Handler events

Constant Summary

Constants included from SAX::NamespaceSplitter

SAX::NamespaceSplitter::EMPTY_NAMESPACES

Instance Method Summary collapse

Methods included from SAX::NamespaceSplitter

#split_attributes_and_namespaces

Constructor Details

#initialize(handler) ⇒ NokogiriSAXBridge

Returns a new instance of NokogiriSAXBridge.



617
618
619
620
# File 'lib/moxml/adapter/nokogiri.rb', line 617

def initialize(handler)
  super()
  @handler = handler
end

Instance Method Details

#cdata_block(string) ⇒ Object



647
648
649
# File 'lib/moxml/adapter/nokogiri.rb', line 647

def cdata_block(string)
  @handler.on_cdata(string)
end

#characters(string) ⇒ Object



643
644
645
# File 'lib/moxml/adapter/nokogiri.rb', line 643

def characters(string)
  @handler.on_characters(string)
end

#comment(string) ⇒ Object



651
652
653
# File 'lib/moxml/adapter/nokogiri.rb', line 651

def comment(string)
  @handler.on_comment(string)
end

#end_document ⇒ Object



628
629
630
# File 'lib/moxml/adapter/nokogiri.rb', line 628

def end_document
  @handler.on_end_document
end

#end_element(name) ⇒ Object



639
640
641
# File 'lib/moxml/adapter/nokogiri.rb', line 639

def end_element(name)
  @handler.on_end_element(name)
end

#error(string) ⇒ Object



659
660
661
# File 'lib/moxml/adapter/nokogiri.rb', line 659

def error(string)
  @handler.on_error(Moxml::ParseError.new(string))
end

#processing_instruction(target, data) ⇒ Object



655
656
657
# File 'lib/moxml/adapter/nokogiri.rb', line 655

def processing_instruction(target, data)
  @handler.on_processing_instruction(target, data || "")
end

#start_document ⇒ Object

Map Nokogiri events to Moxml events



624
625
626
# File 'lib/moxml/adapter/nokogiri.rb', line 624

def start_document
  @handler.on_start_document
end

#start_element(name, attributes = []) ⇒ Object



632
633
634
635
636
637
# File 'lib/moxml/adapter/nokogiri.rb', line 632

def start_element(name, attributes = [])
  attr_hash, ns_hash = split_attributes_and_namespaces(attributes) do |v|
    Moxml::Adapter::Base.decode_entities(v)
  end
  @handler.on_start_element(name, attr_hash, ns_hash)
end

#warning(string) ⇒ Object



663
664
665
# File 'lib/moxml/adapter/nokogiri.rb', line 663

def warning(string)
  @handler.on_warning(string)
end