Class: Taketo::ConfigTraverser
- Inherits:
-
Object
- Object
- Taketo::ConfigTraverser
- Defined in:
- lib/taketo/config_traverser.rb
Instance Method Summary collapse
-
#initialize(root) ⇒ ConfigTraverser
constructor
A new instance of ConfigTraverser.
- #visit_depth_first(visitor) ⇒ Object
Constructor Details
#initialize(root) ⇒ ConfigTraverser
Returns a new instance of ConfigTraverser.
7 8 9 |
# File 'lib/taketo/config_traverser.rb', line 7 def initialize(root) @root = root end |
Instance Method Details
#visit_depth_first(visitor) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# 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 |