class TTY::Reader::KeyEvent

Represents key event emitted during keyboard press

@api public

Public Class Methods

from(keys, char, line = "") click to toggle source

@param [Hash] keys

the keys and codes mapping

@param [Array] codes

@return [KeyEvent]

@api public

# 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

Public Instance Methods

trigger?() click to toggle source

Check if key event can be triggered

@return [Boolean]

@api public

# File lib/tty/reader/key_event.rb, line 53
def trigger?
  !key.nil? && !key.name.nil?
end