Class: Doomfire::WindowSize

Inherits:
Object
  • Object
show all
Defined in:
lib/doomfire/window_size.rb

Instance Method Summary collapse

Instance Method Details

#dynamic_width_sttyObject



41
42
43
# File 'lib/doomfire/window_size.rb', line 41

def dynamic_width_stty
  `stty size 2>/dev/null`.split[1].to_i
end

#dynamic_width_tputObject



45
46
47
# File 'lib/doomfire/window_size.rb', line 45

def dynamic_width_tput
  `tput cols 2>/dev/null`.to_i
end

#dynamic_width_via_io_objectObject

rubocop:enable Lint/DuplicateMethods



32
33
34
35
# File 'lib/doomfire/window_size.rb', line 32

def dynamic_width_via_io_object
  _rows, columns = IO.console.winsize
  columns
end

#dynamic_width_via_system_callsObject



37
38
39
# File 'lib/doomfire/window_size.rb', line 37

def dynamic_width_via_system_calls
  dynamic_width_stty.nonzero? || dynamic_width_tput
end

#terminal_widthObject



5
6
7
8
9
10
11
12
# File 'lib/doomfire/window_size.rb', line 5

def terminal_width
  return 80 unless unix?

  result = dynamic_width
  result < 20 ? 80 : result
rescue StandardError
  80
end

#unix?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/doomfire/window_size.rb', line 49

def unix?
  RUBY_PLATFORM =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i
end