class CW::KeyInput
Public Class Methods
new()
click to toggle source
# File lib/cw/key_input.rb, line 6 def initialize @quit_count = 0 end
Public Instance Methods
char()
click to toggle source
# File lib/cw/key_input.rb, line 10 def char @chr end
is_letter?(char = nil)
click to toggle source
# File lib/cw/key_input.rb, line 27 def is_letter? char = nil char = char ? char : @chr char >= 'a' && char <= 'z' end
is_number?(char = nil)
click to toggle source
# File lib/cw/key_input.rb, line 32 def is_number? char = nil char = char ? char : @chr char >= '0' && char <= '9' end
is_punctuation?(char = nil)
click to toggle source
# File lib/cw/key_input.rb, line 37 def is_punctuation? char = nil char = char ? char : @chr [' ', ',', '.', '=', '?','/','+'].detect{|letr| letr == char} end
is_quit?()
click to toggle source
# File lib/cw/key_input.rb, line 60 def is_quit? @quit_count >= 4 end
is_relevant_char?(char = nil)
click to toggle source
# File lib/cw/key_input.rb, line 42 def is_relevant_char? char = nil char = char ? char : @chr is_letter?(char) || is_number?(char) || is_punctuation?(char) ? true : false end
push_to_quit_maybe()
click to toggle source
# File lib/cw/key_input.rb, line 52 def push_to_quit_maybe if @chr == 'q' @quit_count += 1 else @quit_count = 0 end end
quit()
click to toggle source
# File lib/cw/key_input.rb, line 64 def quit Cfg.config.params["exit"] = true reset_stdin return true end
quit_input?()
click to toggle source
# File lib/cw/key_input.rb, line 70 def quit_input? push_to_quit_maybe return quit if is_quit? end
read()
click to toggle source
# File lib/cw/key_input.rb, line 14 def read @chr = nil begin system("stty raw -echo") @chr = STDIN.getc # @chr = @chr.downcase unless(@chr.include? 'Q') # puts "@chr = #{@chr}" @chr ensure system("stty raw -echo") end end
reset_stdin()
click to toggle source
# File lib/cw/key_input.rb, line 47 def reset_stdin system("stty -raw echo") end