Module: Meshchat::Ui::CLI::ReadlineInput::Handler

Defined in:
lib/meshchat/ui/cli/readline_input.rb

Instance Method Summary collapse

Instance Method Details

#callback_on_next_tick=(callback) ⇒ Object



45
46
47
# File 'lib/meshchat/ui/cli/readline_input.rb', line 45

def callback_on_next_tick=(callback)
  @callback = callback
end

#handle_input(line) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# 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

#initializeObject



16
17
18
19
20
# 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

#input_receiver=(receiver) ⇒ Object



41
42
43
# File 'lib/meshchat/ui/cli/readline_input.rb', line 41

def input_receiver=(receiver)
  @input_receiver = receiver
end

#notify_readableObject



33
34
35
# File 'lib/meshchat/ui/cli/readline_input.rb', line 33

def notify_readable
  Readline.callback_read_char
end

#unbindObject



37
38
39
# File 'lib/meshchat/ui/cli/readline_input.rb', line 37

def unbind
  Readline.callback_handler_remove
end