class RSpecLive::KeyHandler

Public Class Methods

new() click to toggle source
# File lib/rspec-live/key_handler.rb, line 3
def initialize
  @event = {}
end

Public Instance Methods

on(*keys, &block) click to toggle source
# File lib/rspec-live/key_handler.rb, line 7
def on(*keys, &block)
  keys.each { |key| @event[key] = block }
end
process_updates() click to toggle source
# File lib/rspec-live/key_handler.rb, line 11
def process_updates
  any_processed = false
  while key = get_character_if_available
    handle key
    any_processed = true
  end
  any_processed
end

Private Instance Methods

get_character_if_available() click to toggle source
# File lib/rspec-live/key_handler.rb, line 22
def get_character_if_available
  STDIN.read_nonblock 1
  rescue Errno::EINTR
  rescue Errno::EAGAIN
  rescue EOFError
end
handle(key) click to toggle source
# File lib/rspec-live/key_handler.rb, line 29
def handle(key)
  if @event[key]
    @event[key].call
    @update_listener.call if @update_listener
  end
end