Class: Changelogger::TUI

Inherits:
Object
  • Object
show all
Defined in:
lib/changelogger/tui.rb

Overview

Changelogger::TUI wraps curses lifecycle and runs the side-by-side UI.

Class Method Summary collapse

Class Method Details

.runArray<String>?

Changelogger::TUI.run -> Array<String>, nil

Starts curses, draws the header and graph/preview panes, and returns the selected anchor SHAs when the user presses Enter.

Returns:

  • (Array<String>, nil)

    array of SHAs (2+) or nil if cancelled (q/ESC)



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/changelogger/tui.rb', line 16

def self.run
  Curses.init_screen
  Curses.cbreak
  Curses.noecho
  Curses.curs_set(0)
  begin
    begin
      Curses.start_color
      Curses.use_default_colors if Curses.respond_to?(:use_default_colors)
    rescue StandardError
    end
    Changelogger::Header.new
    win = Changelogger::BranchWindow.new
    win.select_commits
  ensure
    begin
      Curses.close_screen
    rescue StandardError
      nil
    end
  end
end