Sha256: d1d077c9f14a21ca5b78c5ecbfadab10f184406798db1fbc7566c248d5a93489
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
module Terminalwire module Transport class Base def initialize raise NotImplementedError, "This is an abstract base class" end def read raise NotImplementedError, "Subclass must implement #read" end def write(data) raise NotImplementedError, "Subclass must implement #write" end def close raise NotImplementedError, "Subclass must implement #close" end end class WebSocket def initialize(websocket) @websocket = websocket end def read @websocket.read&.buffer end def write(data) @websocket.write(data) end def close @websocket.close end end class Socket < Base def initialize(socket) @socket = socket end def read length = @socket.read(4) return nil if length.nil? length = length.unpack('L>')[0] @socket.read(length) end def write(data) length = [data.bytesize].pack('L>') @socket.write(length + data) end def close @socket.close end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
terminalwire-0.1.1 | lib/terminalwire/transport.rb |