Class: SaxStream::Internal::SaxHandler
- Inherits:
-
Nokogiri::XML::SAX::Document
- Object
- Nokogiri::XML::SAX::Document
- SaxStream::Internal::SaxHandler
- Defined in:
- lib/sax_stream/internal/sax_handler.rb
Constant Summary collapse
- ERROR_TYPES =
{ 'Document is empty' => nil, 'Start tag expected, \'<\' not found' => nil }
Instance Method Summary collapse
- #cdata_block(*params) ⇒ Object
- #characters(*params) ⇒ Object
- #end_element(*params) ⇒ Object
- #error(message) ⇒ Object
- #error_class(message) ⇒ Object
-
#initialize(collector, mappers, handler_stack = HandlerStack.new) ⇒ SaxHandler
constructor
A new instance of SaxHandler.
- #start_element(*params) ⇒ Object
Constructor Details
#initialize(collector, mappers, handler_stack = HandlerStack.new) ⇒ SaxHandler
Returns a new instance of SaxHandler.
13 14 15 16 17 18 19 |
# File 'lib/sax_stream/internal/sax_handler.rb', line 13 def initialize(collector, mappers, handler_stack = HandlerStack.new) @handler_stack = handler_stack mapper_handlers = mappers.map do |mapper| MapperHandler.new(mapper, collector, @handler_stack) end @handler_stack.root = CombinedHandler.new(@handler_stack, mapper_handlers) end |
Instance Method Details
#cdata_block(*params) ⇒ Object
33 34 35 |
# File 'lib/sax_stream/internal/sax_handler.rb', line 33 def cdata_block(*params) @handler_stack.top.cdata_block(*params) end |
#characters(*params) ⇒ Object
29 30 31 |
# File 'lib/sax_stream/internal/sax_handler.rb', line 29 def characters(*params) @handler_stack.top.characters(*params) end |
#end_element(*params) ⇒ Object
25 26 27 |
# File 'lib/sax_stream/internal/sax_handler.rb', line 25 def end_element(*params) @handler_stack.top.end_element(*params) end |
#error(message) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/sax_stream/internal/sax_handler.rb', line 37 def error() klass = error_class() if klass raise klass.new(.inspect) end end |
#error_class(message) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/sax_stream/internal/sax_handler.rb', line 44 def error_class() .strip! if ERROR_TYPES.has_key?() ERROR_TYPES[] else ParsingError end end |
#start_element(*params) ⇒ Object
21 22 23 |
# File 'lib/sax_stream/internal/sax_handler.rb', line 21 def start_element(*params) @handler_stack.top.start_element(*params) end |