class LanguageServer::Protocol::Transport::Io::Writer

Attributes

io[R]

Public Class Methods

new(io) click to toggle source
# File lib/language_server/protocol/transport/io/writer.rb, line 8
def initialize(io)
  @io = io
  io.binmode
end

Public Instance Methods

write(response) click to toggle source
# File lib/language_server/protocol/transport/io/writer.rb, line 13
def write(response)
  response_str = response.merge(
    jsonrpc: "2.0"
  ).to_json

  headers = {
    "Content-Length" => response_str.bytesize
  }

  headers.each do |k, v|
    io.print "#{k}: #{v}\r\n"
  end

  io.print "\r\n"

  io.print response_str
  io.flush
end