Method: TTY::Reader::KeyEvent.from

Defined in:
lib/tty/reader/key_event.rb

.from(keys, char, line = "") ⇒ KeyEvent

Create key event from read input codes

Parameters:

  • keys (Hash[Symbol])

    the keys and codes mapping

  • codes (Array[Integer])

Returns:



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tty/reader/key_event.rb', line 29

def self.from(keys, char, line = "")
  key = Key.new
  key.name = (name = keys[char]) ? name : :ignore

  case char
  when proc { |c| c =~ /^[a-z]{1}$/ }
    key.name = :alpha
  when proc { |c| c =~ /^[A-Z]{1}$/ }
    key.name = :alpha
    key.shift = true
  when proc { |c| c =~ /^\d+$/ }
    key.name = :num
  when proc { |cs| !Keys.ctrl_keys[cs].nil? }
    key.ctrl = true
  end

  new(key, char, line)
end