class YAML::Nodes::Builder
Overview
Builds a tree of YAML nodes.
This builder is similar to YAML::Builder
, but instead of
directly emitting the output to an IO it builds a YAML document
tree in memory.
All "emitting" methods support specifying a "reference" object that will be associated to the emitted object, so that when that reference object is emitted again an anchor and an alias will be created. This generates both more compact documents and allows handling recursive data structures.
Defined in:
yaml/nodes/builder.crConstructors
Instance Method Summary
-
#alias(anchor : String) : Nil
Emits an alias to the given anchor.
-
#document : Document
The document this builder builds.
- #mapping(anchor : String? = nil, tag : String? = nil, style : YAML::MappingStyle = YAML::MappingStyle::ANY, reference = nil, &) : Nil
-
#merge(anchor : String) : Nil
Emits the scalar
"<<"
followed by an alias to the given anchor. - #scalar(value, anchor : String? = nil, tag : String? = nil, style : YAML::ScalarStyle = YAML::ScalarStyle::ANY, reference = nil) : Nil
- #sequence(anchor : String? = nil, tag : String? = nil, style : YAML::SequenceStyle = YAML::SequenceStyle::ANY, reference = nil, &) : Nil
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
! : Bool
!,
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash
hash(hasher) hash, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) 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 : String
to_s(io : IO) : Nil to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Constructor Detail
Instance Method Detail
Emits an alias to the given anchor.
require "yaml"
nodes_builder = YAML::Nodes::Builder.new
nodes_builder.mapping do
nodes_builder.scalar "foo"
nodes_builder.alias "key"
end
yaml = YAML.build do |builder|
nodes_builder.document.to_yaml builder
end
yaml # => "---\nfoo: *key\n"
def mapping(anchor : String? = nil, tag : String? = nil, style : YAML::MappingStyle = YAML::MappingStyle::ANY, reference = nil, &) : Nil
#
Emits the scalar "<<"
followed by an alias to the given anchor.
See YAML Merge.
require "yaml"
nodes_builder = YAML::Nodes::Builder.new
nodes_builder.mapping do
nodes_builder.merge "key"
end
yaml = YAML.build do |builder|
nodes_builder.document.to_yaml builder
end
yaml # => "---\n<<: *key\n"
def scalar(value, anchor : String? = nil, tag : String? = nil, style : YAML::ScalarStyle = YAML::ScalarStyle::ANY, reference = nil) : Nil
#
def sequence(anchor : String? = nil, tag : String? = nil, style : YAML::SequenceStyle = YAML::SequenceStyle::ANY, reference = nil, &) : Nil
#