Sha256: c814503bb005ad75ec4f2ba1aa6d7473f326d192ec9df71ac7a03d71fdf05954
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
require "json" module LanguageServer module Protocol module Transport module Io class Reader def initialize(io) @io = io io.binmode end def read(&block) buffer = +"" header_parsed = false content_length = nil while char = io.getc buffer << char unless header_parsed if buffer[-4..-1] == "\r\n" * 2 content_length = buffer.match(/Content-Length: (\d+)/i)[1].to_i header_parsed = true buffer.clear end else if buffer.bytesize == content_length request = JSON.parse(buffer, symbolize_names: true) block.call(request) header_parsed = false buffer.clear end end end end private attr_reader :io end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
language_server-protocol-3.16.0.2 | lib/language_server/protocol/transport/io/reader.rb |