module Meshchat::Ui::CLI::ReadlineInput::Handler

Public Class Methods

new() click to toggle source
# File lib/meshchat/ui/cli/readline_input.rb, line 16
def initialize
  Readline.callback_handler_install('> ') do |line|
    EventMachine.next_tick { handle_input(line) }
  end
end

Public Instance Methods

callback_on_next_tick=(callback) click to toggle source
# File lib/meshchat/ui/cli/readline_input.rb, line 45
def callback_on_next_tick=(callback)
  @callback = callback
end
handle_input(line) click to toggle source
# File lib/meshchat/ui/cli/readline_input.rb, line 22
def handle_input(line)
  if @callback
    # call and clear, so we can resume normal
    # input handling
    @callback.call(line)
    @callback = nil
  else
    @input_receiver.create_input(line)
  end
end
input_receiver=(receiver) click to toggle source
# File lib/meshchat/ui/cli/readline_input.rb, line 41
def input_receiver=(receiver)
  @input_receiver = receiver
end
notify_readable() click to toggle source
# File lib/meshchat/ui/cli/readline_input.rb, line 33
def notify_readable
  Readline.callback_read_char
end
unbind() click to toggle source
# File lib/meshchat/ui/cli/readline_input.rb, line 37
def unbind
  Readline.callback_handler_remove
end