Class: Builder::XmlEvents
- Defined in:
- lib/action_view/vendor/builder/xmlevents.rb
Overview
Create a series of SAX-like XML events (e.g. start_tag, end_tag) from the markup code. XmlEvent objects are used in a way similar to XmlMarkup objects, except that a series of events are generated and passed to a handler rather than generating character-based markup.
Usage:
xe = Builder::XmlEvents.new(hander)
xe.title("HI") # Sends start_tag/end_tag/text messages to the handler.
Indentation may also be selected by providing value for the indentation size and initial indentation level.
xe = Builder::XmlEvents.new(handler, indent_size, initial_indent_level)
XML Event Handler
The handler object must expect the following events.
start_tag(tag, attrs)
-
Announces that a new tag has been found.
tag
is the name of the tag andattrs
is a hash of attributes for the tag. end_tag(tag)
-
Announces that an end tag for
tag
has been found. text(text)
-
Announces that a string of characters (
text
) has been found. A series of characters may be broken up into more than onetext
call, so the client cannot assume that a single callback contains all the text data.
Instance Method Summary collapse
- #_end_tag(sym) ⇒ Object
- #_start_tag(sym, attrs, end_too = false) ⇒ Object
-
#text!(text) ⇒ Object
:nodoc:.
Methods inherited from XmlMarkup
#cdata!, #comment!, #declare!, #initialize, #instruct!, #target!
Methods inherited from XmlBase
#<<, #initialize, #method_missing, #nil?, #tag!
Methods inherited from BlankSlate
Constructor Details
This class inherits a constructor from Builder::XmlMarkup
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Builder::XmlBase
Instance Method Details
#_end_tag(sym) ⇒ Object
58 59 60 |
# File 'lib/action_view/vendor/builder/xmlevents.rb', line 58 def _end_tag(sym) @target.end_tag(sym) end |
#_start_tag(sym, attrs, end_too = false) ⇒ Object
53 54 55 56 |
# File 'lib/action_view/vendor/builder/xmlevents.rb', line 53 def _start_tag(sym, attrs, end_too=false) @target.start_tag(sym, attrs) _end_tag(sym) if end_too end |
#text!(text) ⇒ Object
:nodoc:
49 50 51 |
# File 'lib/action_view/vendor/builder/xmlevents.rb', line 49 def text!(text) @target.text(text) end |