Class: TuiTui::TerminalSize

Inherits:
Object
  • Object
show all
Defined in:
lib/tui_tui/terminal_size.rb

Overview

Reads winsize with a fallback that keeps layout deterministic in tests and PTYs.

Constant Summary collapse

DEFAULT =
Size.new(rows: 24, cols: 80)

Instance Method Summary collapse

Constructor Details

#initialize(console, default: DEFAULT) ⇒ TerminalSize

Returns a new instance of TerminalSize.



10
11
12
13
# File 'lib/tui_tui/terminal_size.rb', line 10

def initialize(console, default: DEFAULT)
  @console = console
  @default = default
end

Instance Method Details

#sizeObject



15
16
17
18
19
20
21
22
# File 'lib/tui_tui/terminal_size.rb', line 15

def size
  rows, cols = @console.winsize
  return @default if rows.to_i.zero? || cols.to_i.zero?

  Size.new(rows: rows, cols: cols)
rescue StandardError
  @default
end