module Einhorn::Client::Transport

Keep this in this file so client can be loaded entirely standalone by user code.

Constants

ParseError

Public Class Methods

deserialize_message(line) click to toggle source
# File lib/einhorn/client.rb, line 28
def self.deserialize_message(line)
  serialized = line.gsub(/%(25|0A)/, '%25' => '%', '%0A' => "\n")
  YAML.load(serialized)
end
receive_message(socket) click to toggle source
# File lib/einhorn/client.rb, line 17
def self.receive_message(socket)
  line = socket.readline
  deserialize_message(line)
end
send_message(socket, message) click to toggle source
# File lib/einhorn/client.rb, line 12
def self.send_message(socket, message)
  line = serialize_message(message)
  socket.write(line)
end
serialize_message(message) click to toggle source
# File lib/einhorn/client.rb, line 22
def self.serialize_message(message)
  serialized = YAML.dump(message)
  escaped = serialized.gsub(/%|\n/, '%' => '%25', "\n" => '%0A')
  escaped + "\n"
end