class TP::Presenter

Attributes

markdown[R]

Public Class Methods

new(markdown) click to toggle source
# File lib/tp/presenter.rb, line 5
def initialize(markdown)
  @markdown = markdown
end

Public Instance Methods

clear_screen() click to toggle source
# File lib/tp/presenter.rb, line 37
def clear_screen
  Screen.clear!
end
present() click to toggle source
# File lib/tp/presenter.rb, line 9
def present
  suggest_sizing
  render_slides
  clear_screen
end
render_slides() click to toggle source
# File lib/tp/presenter.rb, line 20
def render_slides
  loop do
    Renderer.new(slide_deck.current_frame).render

    case Keyboard.read
    when :right, :down, :space, :return, 'l', 'j', 'd', 's'
      slide_deck.next
    when :left, :up, :backspace, 'h', 'k', 'a', 'w'
      slide_deck.previous
    when 'q'
      break
    end

    break if slide_deck.ended?
  end
end
slide_deck() click to toggle source
# File lib/tp/presenter.rb, line 49
def slide_deck
  @slide_deck ||= SlideDeck.new slides
end
slides() click to toggle source
# File lib/tp/presenter.rb, line 41
def slides
  result = markdown.split /^#/
  result.reject! &:empty?
  result.map! { |string| "##{string}" }

  result.map { |string| SlideFactory.from_markdown string }
end
suggest_sizing() click to toggle source
# File lib/tp/presenter.rb, line 15
def suggest_sizing
  Screen.suggest slide_deck.width, slide_deck.height
  Keyboard.wait_for_return
end