class Reline::KeyActor::Base

Public Class Methods

new(mappings = nil) click to toggle source
# File reline/key_actor/base.rb, line 2
def initialize(mappings = nil)
  @matching_bytes = {}
  @key_bindings = {}
  add_mappings(mappings) if mappings
end

Public Instance Methods

add(key, func) click to toggle source
# File reline/key_actor/base.rb, line 18
def add(key, func)
  (1...key.size).each do |size|
    @matching_bytes[key.take(size)] = true
  end
  @key_bindings[key] = func
end
add_mappings(mappings) click to toggle source
# File reline/key_actor/base.rb, line 8
def add_mappings(mappings)
  add([27], :ed_ignore)
  128.times do |key|
    func = mappings[key]
    meta_func = mappings[key | 0b10000000]
    add([key], func) if func
    add([27, key], meta_func) if meta_func
  end
end
clear() click to toggle source
# File reline/key_actor/base.rb, line 33
def clear
  @matching_bytes.clear
  @key_bindings.clear
end
get(key) click to toggle source
# File reline/key_actor/base.rb, line 29
def get(key)
  @key_bindings[key]
end
matching?(key) click to toggle source
# File reline/key_actor/base.rb, line 25
def matching?(key)
  @matching_bytes[key]
end