class Taketo::ConfigTraverser
Public Class Methods
new(root)
click to toggle source
# File lib/taketo/config_traverser.rb, line 7 def initialize(root) @root = root end
Public Instance Methods
visit_depth_first(visitor)
click to toggle source
# File lib/taketo/config_traverser.rb, line 11 def visit_depth_first(visitor) path_stack = [@root] while path_stack.any? node = path_stack.pop visitor.visit(node) node.class.node_types.each do |node_type| node.nodes(node_type).reverse_each do |n| path_stack.push(n) end end end end