123456789_123456789_123456789_123456789_123456789_

Class: Reline::KeyActor::Base

Relationships & Source Files
Inherits: Object
Defined in: lib/reline/key_actor/base.rb

Class Method Summary

Instance Method Summary

Constructor Details

.new(mappings = nil) ⇒ Base

[ GitHub ]

  
# File 'lib/reline/key_actor/base.rb', line 2

def initialize(mappings = nil)
  @matching_bytes = {}
  @key_bindings = {}
  add_mappings(mappings) if mappings
end

Instance Method Details

#add(key, func)

[ GitHub ]

  
# File 'lib/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)

[ GitHub ]

  
# File 'lib/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

[ GitHub ]

  
# File 'lib/reline/key_actor/base.rb', line 33

def clear
  @matching_bytes.clear
  @key_bindings.clear
end

#get(key)

[ GitHub ]

  
# File 'lib/reline/key_actor/base.rb', line 29

def get(key)
  @key_bindings[key]
end

#matching?(key) ⇒ Boolean

[ GitHub ]

  
# File 'lib/reline/key_actor/base.rb', line 25

def matching?(key)
  @matching_bytes[key]
end