class MiddleSquid::Backends::Keyboard
Receives data from the standard input.
Public Class Methods
new(handler)
click to toggle source
@param handler [#call] called when a full line has been received
# File lib/middle_squid/backends/keyboard.rb, line 5 def initialize(handler) @buffer = [] @handler = handler end
Public Instance Methods
receive_data(char)
click to toggle source
@param char [String] single character
# File lib/middle_squid/backends/keyboard.rb, line 11 def receive_data(char) case char when "\x00" EM.stop when "\n" line = @buffer.join @buffer.clear receive_line line else @buffer << char end end
receive_line(line)
click to toggle source
@param line [String] full line without the trailing linebreak
# File lib/middle_squid/backends/keyboard.rb, line 26 def receive_line(line) # EventMachine sends ASCII-8BIT strings, somehow preventing the databases queries to match @handler.call line.force_encoding(Encoding::UTF_8) end