class RhetButler::SlideTraverser
Attributes
iter_stack[R]
target_stack[R]
Public Class Methods
new()
click to toggle source
# File lib/rhet-butler/slide-traverser.rb, line 5 def initialize @iter_stack = [] @target_stack = [] end
Public Instance Methods
ascend()
click to toggle source
# File lib/rhet-butler/slide-traverser.rb, line 16 def ascend target_stack.pop iter_stack.pop end
descend(source, dest)
click to toggle source
# File lib/rhet-butler/slide-traverser.rb, line 21 def descend(source, dest) iter_stack.push source.each target_stack.push dest end
on_group(group)
click to toggle source
# File lib/rhet-butler/slide-traverser.rb, line 12 def on_group(group) descend(group, group) end
traverse()
click to toggle source
# File lib/rhet-butler/slide-traverser.rb, line 26 def traverse setup until iter_stack.empty? begin item = iter_stack.last.next case item when Slide on_slide(item) when Includer on_include(item) else on_group(item) end rescue StopIteration ascend end end end