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.
-
#end_column ⇒ Object
The column number where this node ends.
-
#end_line ⇒ Object
The line number where this node ends.
-
#start_column ⇒ Object
The column number where this node start.
-
#start_line ⇒ Object
The line number where this node start.
-
#tag ⇒ Object
readonly
An associated tag.
Instance Method Summary collapse
- #alias? ⇒ Boolean
- #document? ⇒ Boolean
-
#each(&block) ⇒ Object
Iterate over each node in the tree.
-
#initialize ⇒ Node
constructor
Create a new Psych::Nodes::Node.
- #mapping? ⇒ Boolean
- #scalar? ⇒ Boolean
- #sequence? ⇒ Boolean
- #stream? ⇒ Boolean
-
#to_ruby(symbolize_names: false, freeze: false, strict_integer: false) ⇒ 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
32 33 34 |
# File 'lib/psych/nodes/node.rb', line 32 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 |
#end_column ⇒ Object
The column number where this node ends
29 30 31 |
# File 'lib/psych/nodes/node.rb', line 29 def end_column @end_column end |
#end_line ⇒ Object
The line number where this node ends
26 27 28 |
# File 'lib/psych/nodes/node.rb', line 26 def end_line @end_line end |
#start_column ⇒ Object
The column number where this node start
23 24 25 |
# File 'lib/psych/nodes/node.rb', line 23 def start_column @start_column end |
#start_line ⇒ Object
The line number where this node start
20 21 22 |
# File 'lib/psych/nodes/node.rb', line 20 def start_line @start_line 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
#alias? ⇒ Boolean
67 |
# File 'lib/psych/nodes/node.rb', line 67 def alias?; false; end |
#document? ⇒ Boolean
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.
39 40 41 42 |
# File 'lib/psych/nodes/node.rb', line 39 def each &block return enum_for :each unless block_given? Visitors::DepthFirst.new(block).accept self end |
#mapping? ⇒ Boolean
69 |
# File 'lib/psych/nodes/node.rb', line 69 def mapping?; false; end |
#scalar? ⇒ Boolean
70 |
# File 'lib/psych/nodes/node.rb', line 70 def scalar?; false; end |
#sequence? ⇒ Boolean
71 |
# File 'lib/psych/nodes/node.rb', line 71 def sequence?; false; end |
#stream? ⇒ Boolean
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
48 49 50 |
# File 'lib/psych/nodes/node.rb', line 48 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
57 58 59 60 61 62 63 64 |
# File 'lib/psych/nodes/node.rb', line 57 def yaml io = nil, = {} require "stringio" real_io = io || StringIO.new(''.encode('utf-8')) Visitors::Emitter.new(real_io, ).accept self return real_io.string unless io io end |