module Keypress
Reads keypresses from the user including 2 and 3 escape character sequences.
Public Class Methods
read_char()
click to toggle source
# File lib/rpg-prompt/keypress.rb, line 7 def Keypress.read_char STDIN.echo = false STDIN.raw! input = STDIN.getc.chr if input == "\e" then input << STDIN.read_nonblock(3) rescue nil input << STDIN.read_nonblock(2) rescue nil end ensure STDIN.echo = true STDIN.cooked! return input end
show_single_key()
click to toggle source
oringal case statement from: www.alecjacobson.com/weblog/?p=75
# File lib/rpg-prompt/keypress.rb, line 25 def Keypress.show_single_key c = read_char case c when " " puts "SPACE" when "\t" puts "TAB" when "\r" puts "RETURN" when "\n" puts "LINE FEED" when "\e" puts "ESCAPE" when "\e[A" puts "UP ARROW" when "\e[B" puts "DOWN ARROW" when "\e[C" puts "RIGHT ARROW" when "\e[D" puts "LEFT ARROW" when "\177" puts "BACKSPACE" when "\004" puts "DELETE" when "\e[3~" puts "ALTERNATE DELETE" when "\u0003" puts "CONTROL-C" exit 0 when /^.$/ puts "SINGLE CHAR HIT: #{c.inspect}" else puts "SOMETHING ELSE: #{c.inspect}" end end
test()
click to toggle source
# File lib/rpg-prompt/keypress.rb, line 63 def Keypress.test show_single_key while(true) end