Sha256: e9fb26d92aedbef8610c7b36526ef256b526f618fdf936063a2e767368b740f7
Contents?: true
Size: 801 Bytes
Versions: 1
Compression:
Stored size: 801 Bytes
Contents
class Nodectl::Stream::Buffer def initialize @buffer = "" @valid = "" end def <<(string) string = @buffer + string @buffer = "" @buffer.force_encoding(Encoding::ASCII_8BIT) string.force_encoding(Encoding::UTF_8) 16.times do if string.valid_encoding? break end string, byte = byte_rotate(string) @buffer << byte end if string.valid_encoding? @valid << string else Nodectl.logger.error("buffer: cannot convert string to valid UTF-8, ignore it") end end def read ret = @valid @valid = "" ret end private def byte_rotate(string) byte = string.byteslice(-1) string = string.byteslice(0...-1) byte.force_encoding(Encoding::ASCII_8BIT) [string, byte] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nodectl-0.2.4 | lib/nodectl/stream/buffer.rb |