Module: Keypress
- Defined in:
- lib/metronome-odd/keypress.rb
Overview
Reads keypresses from the user including 2 and 3 escape character sequences.
Class Method Summary collapse
- .read_char ⇒ Object
-
.show_single_key ⇒ Object
oringal case statement from: www.alecjacobson.com/weblog/?p=75.
- .test ⇒ Object
Class Method Details
.read_char ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/metronome-odd/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 ⇒ Object
oringal case statement from: www.alecjacobson.com/weblog/?p=75
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/metronome-odd/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 ⇒ Object
63 64 65 |
# File 'lib/metronome-odd/keypress.rb', line 63 def Keypress.test show_single_key while(true) end |