Class: Terminalwire::Adapter::Socket

Inherits:
Object
  • Object
show all
Includes:
Logging
Defined in:
lib/terminalwire/adapter.rb

Overview

Works with Test, TCP, Unix, WebSocket, and other socket-like abstractions.

Constant Summary

Constants included from Logging

Logging::DEVICE

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Logging

#logger

Constructor Details

#initialize(transport) ⇒ Socket



10
11
12
# File 'lib/terminalwire/adapter.rb', line 10

def initialize(transport)
  @transport = transport
end

Instance Attribute Details

#transportObject (readonly)

Returns the value of attribute transport.



8
9
10
# File 'lib/terminalwire/adapter.rb', line 8

def transport
  @transport
end

Instance Method Details

#closeObject



29
30
31
# File 'lib/terminalwire/adapter.rb', line 29

def close
  @transport.close
end

#readObject



20
21
22
23
24
25
26
27
# File 'lib/terminalwire/adapter.rb', line 20

def read
  logger.debug "Adapter: Reading"
  packed_data = @transport.read
  return nil if packed_data.nil?
  data = MessagePack.unpack(packed_data, symbolize_keys: true)
  logger.debug "Adapter: Received #{data.inspect}"
  data
end

#write(data) ⇒ Object



14
15
16
17
18
# File 'lib/terminalwire/adapter.rb', line 14

def write(data)
  logger.debug "Adapter: Sending #{data.inspect}"
  packed_data = MessagePack.pack(data, symbolize_keys: true)
  @transport.write(packed_data)
end