class Doomfire::WindowSize

Public Instance Methods

dynamic_width() click to toggle source
# File lib/doomfire/window_size.rb, line 18
def dynamic_width
  if IO.console
    dynamic_width_via_io_object
  else
    dynamic_width_via_system_calls
  end
end
dynamic_width_stty() click to toggle source
# File lib/doomfire/window_size.rb, line 41
def dynamic_width_stty
  `stty size 2>/dev/null`.split[1].to_i
end
dynamic_width_tput() click to toggle source
# File lib/doomfire/window_size.rb, line 45
def dynamic_width_tput
  `tput cols 2>/dev/null`.to_i
end
dynamic_width_via_io_object() click to toggle source

rubocop:enable Lint/DuplicateMethods

# 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_calls() click to toggle source
# File lib/doomfire/window_size.rb, line 37
def dynamic_width_via_system_calls
  dynamic_width_stty.nonzero? || dynamic_width_tput
end
terminal_width() click to toggle source
# 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?() click to toggle source
# 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