Class: Psych::Nodes::Node

Inherits:
Object show all
Includes:
Enumerable
Defined in:
lib/psych/nodes/node.rb

Overview

The base class for any Node in a YAML parse tree. This class should never be instantiated.

Direct Known Subclasses

Alias, Document, Mapping, Scalar, Sequence, Stream

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeNode

Create a new Psych::Nodes::Node


18
19
20
# File 'lib/psych/nodes/node.rb', line 18

def initialize
  @children = []
end

Instance Attribute Details

#childrenObject (readonly)

The children of this node


12
13
14
# File 'lib/psych/nodes/node.rb', line 12

def children
  @children
end

#tagObject (readonly)

An associated tag


15
16
17
# File 'lib/psych/nodes/node.rb', line 15

def tag
  @tag
end

Instance Method Details

#each(&block) ⇒ Object

Iterate over each node in the tree. Yields each node to block depth first.


25
26
27
28
# File 'lib/psych/nodes/node.rb', line 25

def each &block
  return enum_for :each unless block_given?
  Visitors::DepthFirst.new(block).accept self
end

#to_rubyObject Also known as: transform

Convert this node to Ruby.

See also Psych::Visitors::ToRuby


34
35
36
# File 'lib/psych/nodes/node.rb', line 34

def to_ruby
  Visitors::ToRuby.new.accept self
end

#yaml(io = nil, options = {}) ⇒ Object Also known as: to_yaml

Convert this node to YAML.

See also Psych::Visitors::Emitter


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

def yaml io = nil, options = {}
  real_io = io || StringIO.new(''.encode('utf-8'))

  Visitors::Emitter.new(real_io, options).accept self
  return real_io.string unless io
  io
end