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