HighLine::SystemExtensions

Constants

CHARACTER_MODE

WARNING: This requires the external "stty" program!

JRUBY

Public Instance Methods

get_character( input = STDIN ) click to toggle source

Windows savvy getc().

WARNING: This method ignores input and reads one character from STDIN!

# File lib/highline/system_extensions.rb, line 99
def get_character( input = STDIN )
  WinAPI._getch
end
initialize_system_extensions() click to toggle source
# File lib/highline/system_extensions.rb, line 15
def initialize_system_extensions
  require 'java'
  if JRUBY_VERSION =~ /^1.7/
    java_import 'jline.console.ConsoleReader'

    @java_console = ConsoleReader.new(@input.to_inputstream, @output.to_outputstream)
    @java_console.set_history_enabled(false)
    @java_console.set_bell_enabled(true)
    @java_console.set_pagination_enabled(false)
    @java_terminal = @java_console.getTerminal
  elsif JRUBY_VERSION =~ /^1.6/
    java_import 'java.io.OutputStreamWriter'
    java_import 'java.nio.channels.Channels'
    java_import 'jline.ConsoleReader'
    java_import 'jline.Terminal'

    @java_input = Channels.newInputStream(@input.to_channel)
    @java_output = OutputStreamWriter.new(Channels.newOutputStream(@output.to_channel))
    @java_terminal = Terminal.getTerminal
    @java_console = ConsoleReader.new(@java_input, @java_output)
    @java_console.setUseHistory(false)
    @java_console.setBellEnabled(true)
    @java_console.setUsePagination(false)
  end
end
raw_no_echo_mode() click to toggle source

We do not define a raw_no_echo_mode for Windows as _getch turns off echo

# File lib/highline/system_extensions.rb, line 104
def raw_no_echo_mode
end
restore_mode() click to toggle source
# File lib/highline/system_extensions.rb, line 107
def restore_mode
end
terminal_size() click to toggle source

A Windows savvy method to fetch the console columns, and rows.

# File lib/highline/system_extensions.rb, line 111
def terminal_size
  format        = 'SSSSSssssSS'
  buf           = ([0] * format.size).pack(format)
  stdout_handle = WinAPI.GetStdHandle(0xFFFFFFF5)

  WinAPI.GetConsoleScreenBufferInfo(stdout_handle, buf)
  _, _, _, _, _,
  left, top, right, bottom, _, _ = buf.unpack(format)
  return right - left + 1, bottom - top + 1
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.