# class Psych::Nodes::Document

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`

### Attributes

implicit [RW]

Was this document implicitly created?

implicit_end [RW]

Is the end of the document implicit?

tag_directives [RW]

A list of tag directives for this document

version [RW]

The version of the `YAML` document

### Public Class Methods

new (version = [], tag_directives = [], implicit = false)
Source

    # File ext/psych/lib/psych/nodes/document.rb, line 45
    def initialize version = [], tag_directives = [], implicit = false
      super()
      @version        = version
      @tag_directives = tag_directives
      @implicit       = implicit
      @implicit_end   = true
    end

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`

Calls superclass method `Psych::Nodes::Node::new`

### Public Instance Methods

document? ()
Source

    # File ext/psych/lib/psych/nodes/document.rb, line 60
    def document?; true; end

root ()
Source

    # File ext/psych/lib/psych/nodes/document.rb, line 56
    def root
      children.first
    end

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