class YAML::PullParser
Overview
A pull parser allows parsing a YAML document by events.
When creating an instance, the parser is positioned in
the first event. To get the event kind invoke #kind
.
If the event is a scalar you can invoke #value
to get
its string value. Other methods like #tag
, #anchor
and #scalar_style
let you inspect other information from events.
Invoking #read_next
reads the next event.
Defined in:
yaml/pull_parser.crConstructors
- .new(content : String | IO)
-
.new(content, &block)
Creates a parser, yields it to the block, and closes the parser at the end of it.
Instance Method Summary
-
#anchor
Returns the anchor associated to the current event, or
nil
if there's no anchor. - #close
- #end_column
- #end_line
-
#expect_kind(kind : EventKind)
Raises if the current kind is not the expected one.
- #finalize
-
#kind : EventKind
The current event kind.
- #location
-
#mapping_style : MappingStyle
Returns the mapping style, assuming the pull parser is located at a mapping begin event.
- #raise(msg : String, line_number = self.start_line, column_number = self.start_column, context_info = nil)
-
#read(expected_kind : EventKind) : EventKind
Reads an expected event kind.
-
#read_alias
Reads an alias event, returning its anchor.
-
#read_document(&block)
Reads a "document start" event, yields to the block, and then reads a "document end" event.
-
#read_document_end
Reads a "document end" event.
-
#read_document_start
Reads a "document start" event.
-
#read_mapping(&block)
Reads a "mapping start" event, yields to the block, and then reads a "mapping end" event.
-
#read_mapping_end
Reads a "mapping end" event.
-
#read_mapping_start
Reads a "mapping start" event.
-
#read_next : EventKind
Reads the next event.
-
#read_scalar
Reads a scalar, returning its value.
-
#read_sequence(&block)
Reads a "sequence start" event, yields to the block, and then reads a "sequence end" event.
-
#read_sequence_end
Reads a "sequence end" event.
-
#read_sequence_start
Reads a "sequence start" event.
-
#read_stream(&block)
Reads a "stream start" event, yields to the block, and then reads a "stream end" event.
-
#read_stream_end
Reads a "stream end" event.
-
#read_stream_start
Reads a "stream start" event.
-
#scalar_style : ScalarStyle
Returns the scalar style, assuming the pull parser is located at a scalar event.
-
#sequence_style : SequenceStyle
Returns the sequence style, assuming the pull parser is located at a sequence begin event.
- #skip
- #start_column
- #start_line
-
#tag : String?
Returns the tag associated to the current event, or
nil
if there's no tag. -
#value : String
Returns the scalar value, assuming the pull parser is located at a scalar.
Instance methods inherited from class Reference
==(other : self)==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference)
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Constructor methods inherited from class Reference
new
new
Instance methods inherited from class Object
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, class class, dup dup, hash(hasher)
hash hash, inspect(io : IO)
inspect inspect, itself itself, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, tap(&block) tap, to_json(io : IO)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&block) try, unsafe_as(type : T.class) forall T unsafe_as
Constructor methods inherited from class Object
from_json(string_or_io, root : String) : selffrom_json(string_or_io) : self from_json, from_yaml(string_or_io : String | IO) : self from_yaml
Constructor Detail
Creates a parser, yields it to the block, and closes the parser at the end of it.
Instance Method Detail
Raises if the current kind is not the expected one.
Returns the mapping style, assuming the pull parser is located at a mapping begin event. Raises otherwise.
Reads a "document start" event, yields to the block, and then reads a "document end" event.
Reads a "mapping start" event, yields to the block, and then reads a "mapping end" event.
Reads a "sequence start" event, yields to the block, and then reads a "sequence end" event.
Reads a "stream start" event, yields to the block, and then reads a "stream end" event.
Returns the scalar style, assuming the pull parser is located at a scalar event. Raises otherwise.
Returns the sequence style, assuming the pull parser is located at a sequence begin event. Raises otherwise.
Returns the tag associated to the current event, or nil
if there's no tag.
Returns the scalar value, assuming the pull parser is located at a scalar. Raises otherwise.