Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
Psych::Handler is an abstract base class that defines the events used when dealing with Psych::Parser. Clients who want to use Psych::Parser should implement a class that inherits from Psych::Handler and define events that they can handle.
Psych::Handler defines all events that Psych::Parser can possibly send to event handlers.
See Psych::Parser for more details
Default dumping options
Called when an alias is found to anchor
. anchor
will be the name of the anchor found.
Here we have an example of an array that references itself in YAML:
--- &ponies - first element - *ponies
&ponies is the achor, *ponies is the alias. In this case, alias is called with “ponies”.
# File psych/lib/psych/handler.rb, line 96 def alias anchor end
Called when an empty event happens. (Which, as far as I can tell, is never).
# File psych/lib/psych/handler.rb, line 222 def empty end
Called with the document ends. implicit
is a boolean value
indicating whether or not the document has an implicit ending.
Given the following YAML:
--- hello world
implicit
will be true. Given this YAML:
--- hello world ...
implicit
will be false.
# File psych/lib/psych/handler.rb, line 79 def end_document implicit end
Called when a map ends
# File psych/lib/psych/handler.rb, line 216 def end_mapping end
Called when a sequence ends.
# File psych/lib/psych/handler.rb, line 177 def end_sequence end
Called when the YAML stream ends
# File psych/lib/psych/handler.rb, line 227 def end_stream end
Called when a scalar value
is found. The scalar may have an
anchor
, a tag
, be implicitly plain
or implicitly quoted
value
is the string value of the scalar anchor
is
an associated anchor or nil tag
is an associated tag or nil
plain
is a boolean value quoted
is a boolean
value style
is an integer idicating the string style
See the constants in Psych::Nodes::Scalar
for the possible values of style
Here is a YAML document that exercises most of the possible ways this method can be called:
--- - !str "foo" - &anchor fun - many lines - | many newlines
The above YAML document contains a list with four strings. Here are the parameters sent to this method in the same order:
# value anchor tag plain quoted style ["foo", nil, "!str", false, false, 3 ] ["fun", "anchor", nil, true, false, 1 ] ["many lines", nil, nil, true, false, 1 ] ["many\nnewlines\n", nil, nil, false, true, 4 ]
# File psych/lib/psych/handler.rb, line 136 def scalar value, anchor, tag, plain, quoted, style end
Called when the document starts with the declared version
,
tag_directives
, if the document is implicit
.
version
will be an array of integers indicating the YAML
version being dealt with, tag_directives
is a list of tuples
indicating the prefix and suffix of each tag, and implicit
is
a boolean indicating whether the document is started implicitly.
Given the following YAML:
%YAML 1.1 %TAG ! tag:tenderlovemaking.com,2009: --- !squee
The parameters for #start_document must be this:
version # => [1, 1] tag_directives # => [["!", "tag:tenderlovemaking.com,2009:"]] implicit # => false
# File psych/lib/psych/handler.rb, line 58 def start_document version, tag_directives, implicit end
Called when a map starts.
anchor
is the anchor associated with the map or
nil
. tag
is the tag associated with the map or
nil
. implicit
is a boolean indicating whether or
not the map was implicitly started. style
is an integer
indicating the mapping style.
See the constants in Psych::Nodes::Mapping
for the possible values of style
.
Here is a YAML document that exercises most of the possible ways this method can be called:
--- k: !!map { hello: world } v: &pewpew hello: world
The above YAML document consists of three maps, an outer map that contains two inner maps. Below is a matrix of the parameters sent in order to represent these three maps:
# anchor tag implicit style [nil, nil, true, 1 ] [nil, "tag:yaml.org,2002:map", false, 2 ] ["pewpew", nil, true, 1 ]
# File psych/lib/psych/handler.rb, line 211 def start_mapping anchor, tag, implicit, style end
Called when a sequence is started.
anchor
is the anchor associated with the sequence or nil.
tag
is the tag associated with the sequence or nil.
implicit
a boolean indicating whether or not the sequence was
implicitly started. style
is an integer indicating the list
style.
See the constants in Psych::Nodes::Sequence for the possible
values of style
.
Here is a YAML document that exercises most of the possible ways this method can be called:
--- - !!seq [ a ] - &pewpew - b
The above YAML document consists of three lists, an outer list that contains two inner lists. Here is a matrix of the parameters sent to represent these lists:
# anchor tag implicit style [nil, nil, true, 1 ] [nil, "tag:yaml.org,2002:seq", false, 2 ] ["pewpew", nil, true, 1 ]
# File psych/lib/psych/handler.rb, line 172 def start_sequence anchor, tag, implicit, style end
Called with encoding
when the YAML stream starts. This method
is called once per stream. A stream may contain multiple documents.
See the constants in Psych::Parser for the
possible values of encoding
.
# File psych/lib/psych/handler.rb, line 33 def start_stream encoding end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.