Method: Textbringer::Keymap#define_key

Defined in:
lib/textbringer/keymap.rb

#define_key(key, command) ⇒ Object Also known as: []



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/textbringer/keymap.rb', line 17

def define_key(key, command)
  key_sequence = kbd(key)

  case key_sequence.size
  when 0
    raise ArgumentError, "Empty key"
  when 1
    @map[key_sequence.first] = command
  else
    k, *ks = key_sequence
    (@map[k] ||= Keymap.new).define_key(ks, command)
  end
end