class Belajar::Views::CoursesMenu

Private Instance Methods

header_text() click to toggle source
# File lib/belajar/views/courses_menu.rb, line 8
def header_text
  'Available belajar courses:'
end
interact_with(window) click to toggle source
# File lib/belajar/views/courses_menu.rb, line 12
def interact_with(window)
  while char = window.getch
    case char
    when KEY_UP
      @position -= 1
      broadcast(:reset_menu_position)
    when KEY_DOWN
      @position += 1
      broadcast(:reset_menu_position)
    when 10 # Enter
      broadcast(:enter, models[@position])
      return
    when 27 # ESC
      exit
    end

    @position = items.length - 1 if @position < 0
    @position = 0 if @position >= items.length
    draw(window, @position)
  end
end
items() click to toggle source
# File lib/belajar/views/courses_menu.rb, line 38
def items
  non_empty_courses = models.select { |course| !course.chapters.empty? }

  non_empty_courses.map do |course|
    line = course.title
    self.items_info <<= [(course.author ? "(by #{course.author})" : '')]
    line
  end
end
models() click to toggle source
# File lib/belajar/views/courses_menu.rb, line 34
def models
  Loading::Courses.load(Belajar.config.courses_path)
end