lib/ruco/keyboard.rb in ruco-0.0.29 vs lib/ruco/keyboard.rb in ruco-0.0.30

- old
+ new

@@ -1,10 +1,11 @@ require 'curses' class Keyboard MAX_CHAR = 255 ENTER = 13 + ESCAPE = 27 IS_18 = RUBY_VERSION =~ /^1\.8/ SEQUENCE_TIMEOUT = 0.01 NOTHING = (2**32 - 1) # getch returns this as 'nothing' on 1.8 but nil on 1.9.2 A_TO_Z = ('a'..'z').to_a @@ -62,11 +63,11 @@ when Curses::KEY_DC then :delete # misc when 0 then :"Ctrl+space" when 1..26 then :"Ctrl+#{A_TO_Z[key-1]}" - when 27 then :escape + when ESCAPE then :escape when Curses::KEY_RESIZE then :resize else key > MAX_CHAR ? key : key.chr end end @@ -138,16 +139,16 @@ end end end def self.escape_sequence?(sequence) - sequence[0] == 27 # Esc + sequence[0] == ESCAPE and sequence.size.between?(2,6) # Esc end def self.escape_sequence_to_key(sequence) case sequence - when [27, 91, 49, 59, 50, 65] then :"Shift+up" - when [27, 91, 49, 59, 50, 66] then :"Shift+down" + when [ESCAPE, 91, 49, 59, 50, 65] then :"Shift+up" + when [ESCAPE, 91, 49, 59, 50, 66] then :"Shift+down" else if sequence.size == 2 :"Alt+#{sequence[1].chr}" else bytes_to_string(sequence) \ No newline at end of file