class Reline::KeyActor::Base def initialize(mapping = []) @mapping = mapping @matching_bytes = {} @key_bindings = {} end def get_method(key) @mapping[key] end def add(key, func) (1...key.size).each do |size| @matching_bytes[key.take(size)] = true end @key_bindings[key] = func end def matching?(key) @matching_bytes[key] end def get(key) @key_bindings[key] end def clear @matching_bytes.clear @key_bindings.clear end end