Class: Psych::Nodes::Document

Inherits:
Node show all
Defined in:
lib/psych/nodes/document.rb

Overview

This represents a YAML Document. This node must be a child of Psych::Nodes::Stream. A Psych::Nodes::Document must have one child, and that child may be one of the following:

  • Psych::Nodes::Sequence

  • Psych::Nodes::Mapping

  • Psych::Nodes::Scalar

Instance Attribute Summary collapse

Attributes inherited from Node

#children, #tag

Instance Method Summary collapse

Methods inherited from Node

#each, #to_ruby, #yaml

Constructor Details

#initialize(version = [], tag_directives = [], implicit = false) ⇒ Document

Create a new Psych::Nodes::Document object.

version is a list indicating the YAML version. tags_directives is a list of tag directive declarations implicit is a flag indicating whether the document will be implicitly started.

Example:

This creates a YAML document object that represents a YAML 1.1 document with one tag directive, and has an implicit start:

Psych::Nodes::Document.new(
  [1,1],
  [["!", "tag:tenderlovemaking.com,2009:"]],
  true
)

See Also

See also Psych::Handler#start_document


44
45
46
47
48
49
50
# File 'lib/psych/nodes/document.rb', line 44

def initialize version = [], tag_directives = [], implicit = false
  super()
  @version        = version
  @tag_directives = tag_directives
  @implicit       = implicit
  @implicit_end   = true
end

Instance Attribute Details

#implicitObject

Was this document implicitly created?


19
20
21
# File 'lib/psych/nodes/document.rb', line 19

def implicit
  @implicit
end

#implicit_endObject

Is the end of the document implicit?


22
23
24
# File 'lib/psych/nodes/document.rb', line 22

def implicit_end
  @implicit_end
end

#tag_directivesObject

A list of tag directives for this document


16
17
18
# File 'lib/psych/nodes/document.rb', line 16

def tag_directives
  @tag_directives
end

#versionObject

The version of the YAML document


13
14
15
# File 'lib/psych/nodes/document.rb', line 13

def version
  @version
end

Instance Method Details

#rootObject

Returns the root node. A Document may only have one root node: yaml.org/spec/1.1/#id898031


55
56
57
# File 'lib/psych/nodes/document.rb', line 55

def root
  children.first
end