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

[View source]

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

def initialize
  @children = []
end

Instance Attribute Details

#childrenObject (readonly)

The children of this node


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

def children
  @children
end

#end_columnObject

The column number where this node ends


30
31
32
# File 'lib/psych/nodes/node.rb', line 30

def end_column
  @end_column
end

#end_lineObject

The line number where this node ends


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

def end_line
  @end_line
end

#start_columnObject

The column number where this node start


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

def start_column
  @start_column
end

#start_lineObject

The line number where this node start


21
22
23
# File 'lib/psych/nodes/node.rb', line 21

def start_line
  @start_line
end

#tagObject (readonly)

An associated tag


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

def tag
  @tag
end

Instance Method Details

#alias?Boolean

Returns:

  • (Boolean)
[View source]

67
# File 'lib/psych/nodes/node.rb', line 67

def alias?;    false; end

#document?Boolean

Returns:

  • (Boolean)
[View source]

68
# File 'lib/psych/nodes/node.rb', line 68

def document?; false; end

#each(&block) ⇒ Object

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

[View source]

40
41
42
43
# File 'lib/psych/nodes/node.rb', line 40

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

#mapping?Boolean

Returns:

  • (Boolean)
[View source]

69
# File 'lib/psych/nodes/node.rb', line 69

def mapping?;  false; end

#scalar?Boolean

Returns:

  • (Boolean)
[View source]

70
# File 'lib/psych/nodes/node.rb', line 70

def scalar?;   false; end

#sequence?Boolean

Returns:

  • (Boolean)
[View source]

71
# File 'lib/psych/nodes/node.rb', line 71

def sequence?; false; end

#stream?Boolean

Returns:

  • (Boolean)
[View source]

72
# File 'lib/psych/nodes/node.rb', line 72

def stream?;   false; end

#to_ruby(symbolize_names: false, freeze: false, strict_integer: false) ⇒ Object Also known as: transform

Convert this node to Ruby.

See also Psych::Visitors::ToRuby

[View source]

49
50
51
# File 'lib/psych/nodes/node.rb', line 49

def to_ruby(symbolize_names: false, freeze: false, strict_integer: false)
  Visitors::ToRuby.create(symbolize_names: symbolize_names, freeze: freeze, strict_integer: strict_integer).accept(self)
end

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

Convert this node to YAML.

See also Psych::Visitors::Emitter

[View source]

58
59
60
61
62
63
64
# File 'lib/psych/nodes/node.rb', line 58

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