Class: Moxml::SAX::BlockHandler
- Defined in:
- lib/moxml/sax/block_handler.rb
Overview
Block-based SAX handler with DSL
Provides a convenient block-based API for simple SAX parsing cases without requiring a full class definition.
Instance Method Summary collapse
-
#cdata {|text| ... } ⇒ void
Define handler for CDATA section event.
-
#characters {|text| ... } ⇒ void
Define handler for character data event.
-
#comment {|text| ... } ⇒ void
Define handler for comment event.
-
#end_document { ... } ⇒ void
Define handler for document end event.
-
#end_element {|name| ... } ⇒ void
Define handler for element end event.
-
#error {|error| ... } ⇒ void
Define handler for error event.
-
#initialize(&block) { ... } ⇒ BlockHandler
constructor
Create a new block handler.
- #on_cdata(text) ⇒ Object
- #on_characters(text) ⇒ Object
- #on_comment(text) ⇒ Object
- #on_end_document ⇒ Object
- #on_end_element(name) ⇒ Object
- #on_error(error) ⇒ Object
- #on_processing_instruction(target, data) ⇒ Object
- #on_start_document ⇒ Object
- #on_start_element(name, attributes = {}, namespaces = {}) ⇒ Object
- #on_warning(message) ⇒ Object
-
#processing_instruction {|target, data| ... } ⇒ void
Define handler for processing instruction event.
-
#start_document { ... } ⇒ void
Define handler for document start event.
-
#start_element {|name, attributes, namespaces| ... } ⇒ void
Define handler for element start event.
-
#warning {|message| ... } ⇒ void
Define handler for warning event.
Constructor Details
#initialize(&block) { ... } ⇒ BlockHandler
Create a new block handler
30 31 32 33 34 |
# File 'lib/moxml/sax/block_handler.rb', line 30 def initialize(&block) super() @handlers = {} instance_eval(&block) if block end |
Instance Method Details
#cdata {|text| ... } ⇒ void
This method returns an undefined value.
Define handler for CDATA section event
92 93 94 |
# File 'lib/moxml/sax/block_handler.rb', line 92 def cdata(&block) @handlers[:cdata] = block end |
#characters {|text| ... } ⇒ void
This method returns an undefined value.
Define handler for character data event
82 83 84 |
# File 'lib/moxml/sax/block_handler.rb', line 82 def characters(&block) @handlers[:characters] = block end |
#comment {|text| ... } ⇒ void
This method returns an undefined value.
Define handler for comment event
102 103 104 |
# File 'lib/moxml/sax/block_handler.rb', line 102 def comment(&block) @handlers[:comment] = block end |
#end_document { ... } ⇒ void
This method returns an undefined value.
Define handler for document end event
50 51 52 |
# File 'lib/moxml/sax/block_handler.rb', line 50 def end_document(&block) @handlers[:end_document] = block end |
#end_element {|name| ... } ⇒ void
This method returns an undefined value.
Define handler for element end event
72 73 74 |
# File 'lib/moxml/sax/block_handler.rb', line 72 def end_element(&block) @handlers[:end_element] = block end |
#error {|error| ... } ⇒ void
This method returns an undefined value.
Define handler for error event
123 124 125 |
# File 'lib/moxml/sax/block_handler.rb', line 123 def error(&block) @handlers[:error] = block end |
#on_cdata(text) ⇒ Object
163 164 165 |
# File 'lib/moxml/sax/block_handler.rb', line 163 def on_cdata(text) @handlers[:cdata]&.call(text) end |
#on_characters(text) ⇒ Object
158 159 160 |
# File 'lib/moxml/sax/block_handler.rb', line 158 def on_characters(text) @handlers[:characters]&.call(text) end |
#on_comment(text) ⇒ Object
168 169 170 |
# File 'lib/moxml/sax/block_handler.rb', line 168 def on_comment(text) @handlers[:comment]&.call(text) end |
#on_end_document ⇒ Object
143 144 145 |
# File 'lib/moxml/sax/block_handler.rb', line 143 def on_end_document @handlers[:end_document]&.call end |
#on_end_element(name) ⇒ Object
153 154 155 |
# File 'lib/moxml/sax/block_handler.rb', line 153 def on_end_element(name) @handlers[:end_element]&.call(name) end |
#on_error(error) ⇒ Object
178 179 180 181 182 183 184 |
# File 'lib/moxml/sax/block_handler.rb', line 178 def on_error(error) if @handlers[:error] @handlers[:error].call(error) else super end end |
#on_processing_instruction(target, data) ⇒ Object
173 174 175 |
# File 'lib/moxml/sax/block_handler.rb', line 173 def on_processing_instruction(target, data) @handlers[:processing_instruction]&.call(target, data) end |
#on_start_document ⇒ Object
138 139 140 |
# File 'lib/moxml/sax/block_handler.rb', line 138 def on_start_document @handlers[:start_document]&.call end |
#on_start_element(name, attributes = {}, namespaces = {}) ⇒ Object
148 149 150 |
# File 'lib/moxml/sax/block_handler.rb', line 148 def on_start_element(name, attributes = {}, namespaces = {}) @handlers[:start_element]&.call(name, attributes, namespaces) end |
#on_warning(message) ⇒ Object
187 188 189 |
# File 'lib/moxml/sax/block_handler.rb', line 187 def on_warning() @handlers[:warning]&.call() end |
#processing_instruction {|target, data| ... } ⇒ void
This method returns an undefined value.
Define handler for processing instruction event
113 114 115 |
# File 'lib/moxml/sax/block_handler.rb', line 113 def processing_instruction(&block) @handlers[:processing_instruction] = block end |
#start_document { ... } ⇒ void
This method returns an undefined value.
Define handler for document start event
41 42 43 |
# File 'lib/moxml/sax/block_handler.rb', line 41 def start_document(&block) @handlers[:start_document] = block end |
#start_element {|name, attributes, namespaces| ... } ⇒ void
This method returns an undefined value.
Define handler for element start event
62 63 64 |
# File 'lib/moxml/sax/block_handler.rb', line 62 def start_element(&block) @handlers[:start_element] = block end |
#warning {|message| ... } ⇒ void
This method returns an undefined value.
Define handler for warning event
133 134 135 |
# File 'lib/moxml/sax/block_handler.rb', line 133 def warning(&block) @handlers[:warning] = block end |