class Lecture::Runner

Attributes

current_slide[RW]
deck[RW]
slides[RW]

Public Class Methods

new(deck) click to toggle source
# File lib/lecture/runner.rb, line 18
def initialize(deck)
  @current_slide = 0
  @slides        = []
  @deck          = deck
end

Public Instance Methods

configure() { |config| ... } click to toggle source
# File lib/lecture/runner.rb, line 33
def configure
  yield(Config.new)
end
execute() click to toggle source
# File lib/lecture/runner.rb, line 24
def execute
  instance_eval(File.read(deck))
  first_slide

  loop do
    command_handler
  end
end

Private Instance Methods

command_handler() click to toggle source
# File lib/lecture/runner.rb, line 39
def command_handler
  case getch
  when " ", "\e[C" then next_slide
  when "\e[D"      then prev_slide
  when "a"         then first_slide
  when "d"         then last_slide
  when "j"         then jump_to
  when "w"         then wipe
  when "q", "\e"   then clear_and_exit
  end
end
display(slide_number) click to toggle source
# File lib/lecture/runner.rb, line 51
def display(slide_number)
  clear
  self.current_slide = slide_number

  clear_and_exit if slides.length - 1 < current_slide

  slides.at(current_slide).display

  move_to(0, lines)
end
first_slide() click to toggle source
# File lib/lecture/runner.rb, line 77
def first_slide
  display(0)
end
jump_to() click to toggle source
# File lib/lecture/runner.rb, line 62
def jump_to
  move_to(0, lines)
  print "Jump to: "

  display(STDIN.gets.strip.to_i)
end
last_slide() click to toggle source
# File lib/lecture/runner.rb, line 81
def last_slide
  display(slides.size - 1)
end
next_slide() click to toggle source
# File lib/lecture/runner.rb, line 69
def next_slide
  display(current_slide + 1)
end
prev_slide() click to toggle source
# File lib/lecture/runner.rb, line 73
def prev_slide
  display(current_slide - 1)
end
wipe() click to toggle source
# File lib/lecture/runner.rb, line 85
def wipe
  display(current_slide)
end