Method: Fasten::UI::Curses#ui_keyboard

Defined in:
lib/fasten/ui/curses.rb

#ui_keyboardObject



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/fasten/ui/curses.rb', line 95

def ui_keyboard
  return unless (key = stdscr.getch)

  self.message = nil

  if key == Curses::Key::LEFT
    if jobs <= 1
      self.message = "Can't remove 1 worker left, press [P] to pause"
    else
      self.jobs -= 1
      self.message = "Decreasing jobs to #{jobs}"
    end
  elsif key == Curses::Key::RIGHT
    self.jobs += 1
    self.message = "Increasing jobs to #{jobs}"
  elsif key == Curses::Key::DOWN
    self.sel_index = sel_index ? [sel_index + 1, tasks.count - 1].min : 0
    self.selected = tasks[sel_index]
  elsif key == Curses::Key::UP
    self.sel_index = sel_index ? [sel_index - 1, 0].max : tasks.count - 1
    self.selected = tasks[sel_index]
  elsif key == 'q'
    self.message = 'Will quit when running tasks end'
    self.state = :QUITTING
  elsif key == 'p'
    self.message = 'Will pause when running tasks end'
    self.state = :PAUSING
  elsif key == 'r'
    self.state = :RUNNING
  end

  force_clear
end