diff options
Diffstat (limited to 'ext/psych/lib/psych/nodes')
-rw-r--r-- | ext/psych/lib/psych/nodes/node.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ext/psych/lib/psych/nodes/node.rb b/ext/psych/lib/psych/nodes/node.rb index bfd91f99ec..7c040ec463 100644 --- a/ext/psych/lib/psych/nodes/node.rb +++ b/ext/psych/lib/psych/nodes/node.rb @@ -6,6 +6,8 @@ module Psych # The base class for any Node in a YAML parse tree. This class should # never be instantiated. class Node + include Enumerable + # The children of this node attr_reader :children @@ -18,6 +20,14 @@ module Psych end ### + # Iterate over each node in the tree. Yields each node to +block+ depth + # first. + def each &block + return enum_for :each unless block_given? + Visitors::DepthFirst.new(block).accept self + end + + ### # Convert this node to Ruby. # # See also Psych::Visitors::ToRuby |