Sha256: 24da83bc9db17fde020baead5aeac01191a64854d99c1bf64d0815146abd1177

Contents?: true

Size: 766 Bytes

Versions: 4

Compression:

Stored size: 766 Bytes

Contents

require 'rhet-butler/slide-traverser'
module RhetButler
  class SlideArranger < SlideTraverser
    attr_reader :slides, :current_slide
    attr_accessor :root_arrangement

    def setup
      @slides = []
      on_group(@root_arrangement)
    end

    def null_slide
      @null_slide ||= Slide.new
    end

    def previous_slide
      case @previous_slide
      when Slide
        @previous_slide
      when nil
        null_slide
      else
        @previous_slide.previous_slide
      end
    end

    def on_slide(slide)
      @current_slide = slide.dup
      target_stack.last.arrange(self)
      @slides.push @current_slide
      @previous_slide = @current_slide
    end

    def ascend
      @previous_slide = target_stack.last
      super
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rhet-butler-0.11.1 lib/rhet-butler/slide-arranger.rb
rhet-butler-0.11.0 lib/rhet-butler/slide-arranger.rb
rhet-butler-0.10.0 lib/rhet-butler/slide-arranger.rb
rhet-butler-0.9.0 lib/rhet-butler/slide-arranger.rb