Class: Twterm::KeyMapper

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/twterm/key_mapper.rb,
lib/twterm/key_mapper/no_such_key.rb,
lib/twterm/key_mapper/tab_key_mapper.rb,
lib/twterm/key_mapper/no_such_command.rb,
lib/twterm/key_mapper/abstract_key_mapper.rb

Defined Under Namespace

Classes: AbstractKeyMapper, AppKeyMapper, CursorKeyMapper, GeneralKeyMapper, NoSuchCommand, NoSuchKey, StatusKeyMapper, TabKeyMapper

Constant Summary collapse

MAPPERS =
{
  app: AppKeyMapper,
  cursor: CursorKeyMapper,
  general: GeneralKeyMapper,
  status: StatusKeyMapper,
  tab: TabKeyMapper,
}.freeze

Instance Method Summary collapse

Constructor Details

#initializeKeyMapper

Returns a new instance of KeyMapper.



26
27
28
29
# File 'lib/twterm/key_mapper.rb', line 26

def initialize
  create_default_dict_file! unless dict_file_exists?
  load_dict_file!
end

Instance Method Details

#[](category, kind) ⇒ Object



31
32
33
# File 'lib/twterm/key_mapper.rb', line 31

def [](category, kind)
  (@mappings[category] || {})[kind]
end

#as_string(category, kind) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/twterm/key_mapper.rb', line 35

def as_string(category, kind)
  key = self[category, kind]

  case key
  when '!'..'}' then key
  when Curses::Key::F1 then 'F1'
  when Curses::Key::F2 then 'F2'
  when Curses::Key::F3 then 'F3'
  when Curses::Key::F4 then 'F4'
  when Curses::Key::F5 then 'F5'
  when Curses::Key::F6 then 'F6'
  when Curses::Key::F7 then 'F7'
  when Curses::Key::F8 then 'F8'
  when Curses::Key::F9 then 'F9'
  when Curses::Key::F10 then 'F10'
  when Curses::Key::F11 then 'F11'
  when Curses::Key::F12 then 'F12'
  when 1..26 then "^#{(key + 'A'.ord - 1).chr}"
  else ''
  end
end