Module: Meshchat::Ui::CLI::ReadlineInput::Handler
- Defined in:
- lib/meshchat/ui/cli/readline_input.rb
Instance Method Summary collapse
- #callback_on_next_tick=(callback) ⇒ Object
- #handle_input(line) ⇒ Object
- #initialize ⇒ Object
- #input_receiver=(receiver) ⇒ Object
- #notify_readable ⇒ Object
- #unbind ⇒ Object
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 |
#initialize ⇒ Object
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_readable ⇒ Object
33 34 35 |
# File 'lib/meshchat/ui/cli/readline_input.rb', line 33 def notify_readable Readline.callback_read_char end |
#unbind ⇒ Object
37 38 39 |
# File 'lib/meshchat/ui/cli/readline_input.rb', line 37 def unbind Readline.callback_handler_remove end |