Sha256: c4b53ceafb66e10f881ebbdd2ad79a199a24acc68fde514b67d199e92490304c

Contents?: true

Size: 693 Bytes

Versions: 4

Compression:

Stored size: 693 Bytes

Contents

module Trickster
  class SlideParser
    attr_reader :title
    def initialize(lines,renderer)
      @lines = lines
      @renderer = renderer
      @title = @lines.shift
    end

    def body
      each_slide do |slide_type,content|
        @renderer.render_slide(slide_type,content)
      end
      @renderer.content
    end

  private

    def each_slide(&block)
      content = []
      slide_type = nil
      @lines.each do |line|
        if line =~/^!(.*)$/
          block.call(slide_type,content) unless slide_type.nil?
          slide_type = $1
          content = []
        else
          content << line
        end
      end
      block.call(slide_type,content)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
trickster-1.0.0 lib/trickster/slide_parser.rb
trickster-0.0.6 lib/trickster/slide_parser.rb
trickster-0.0.5 lib/trickster/slide_parser.rb
trickster-0.0.4 lib/trickster/slide_parser.rb