lib/grpc_kit/session/buffer.rb in grpc_kit-0.1.2 vs lib/grpc_kit/session/buffer.rb in grpc_kit-0.1.3

- old
+ new

@@ -8,30 +8,33 @@ def initialize(buffer: nil) @buffer = buffer @end_read = false @end_write = false @finish = false - @write_byte_size = 0 end def write(data, last: false) + return 0 if data.empty? + end_write if last - @write_byte_size += data.size if @buffer @buffer << data else - @buffer = data + @buffer = data.dup end + + data.bytesize end def read(len = nil, last: false) - end_read if last - - if @buffer.nil? + if @buffer.nil? || @buffer.empty? return '' end + end_read if last + + # TODO: more efficient code if len @buffer.slice!(0...len) else @buffer.slice!(0..-1) end