Class: Psych::Nodes::Node
- 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.
Instance Attribute Summary collapse
-
#children ⇒ Object
readonly
The children of this node.
-
#tag ⇒ Object
readonly
An associated tag.
Instance Method Summary collapse
-
#each(&block) ⇒ Object
Iterate over each node in the tree.
-
#initialize ⇒ Node
constructor
Create a new Psych::Nodes::Node.
-
#to_ruby ⇒ Object
(also: #transform)
Convert this node to Ruby.
-
#yaml(io = nil, options = {}) ⇒ Object
(also: #to_yaml)
Convert this node to YAML.
Constructor Details
#initialize ⇒ Node
Create a new Psych::Nodes::Node
20 21 22 |
# File 'lib/psych/nodes/node.rb', line 20 def initialize @children = [] end |
Instance Attribute Details
#children ⇒ Object (readonly)
The children of this node
14 15 16 |
# File 'lib/psych/nodes/node.rb', line 14 def children @children end |
#tag ⇒ Object (readonly)
An associated tag
17 18 19 |
# File 'lib/psych/nodes/node.rb', line 17 def tag @tag end |
Instance Method Details
#each(&block) ⇒ Object
Iterate over each node in the tree. Yields each node to block
depth first.
27 28 29 30 |
# File 'lib/psych/nodes/node.rb', line 27 def each &block return enum_for :each unless block_given? Visitors::DepthFirst.new(block).accept self end |
#to_ruby ⇒ Object Also known as: transform
Convert this node to Ruby.
See also Psych::Visitors::ToRuby
36 37 38 |
# File 'lib/psych/nodes/node.rb', line 36 def to_ruby Visitors::ToRuby.create.accept(self) end |
#yaml(io = nil, options = {}) ⇒ Object Also known as: to_yaml
Convert this node to YAML.
See also Psych::Visitors::Emitter
45 46 47 48 49 50 51 |
# File 'lib/psych/nodes/node.rb', line 45 def yaml io = nil, = {} real_io = io || StringIO.new(''.encode('utf-8')) Visitors::Emitter.new(real_io, ).accept self return real_io.string unless io io end |