Class: Metamorpher::Rewriter::Traverser

Inherits:
Object
  • Object
show all
Defined in:
lib/metamorpher/rewriter/traverser.rb

Instance Method Summary collapse

Instance Method Details

#traverse(tree) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/metamorpher/rewriter/traverser.rb', line 4

def traverse(tree)
  Enumerator.new(count(tree)) do |yielder|
    waiting = [tree]
    until waiting.empty?
      current = waiting.shift
      yielder << current
      waiting.concat(children(current))
    end
  end
end