bytesize()
click to toggle source
def bytesize
@chunk_bytes + @adding_bytes
end
commit()
click to toggle source
def commit
@size += @adding_size
@chunk_bytes += @adding_bytes
@adding_bytes = @adding_size = 0
@modified_at = Time.now
true
end
concat(bulk, bulk_size)
click to toggle source
def concat(bulk, bulk_size)
raise "BUG: concatenating to unwritable chunk, now '#{self.state}'" unless self.writable?
bulk.force_encoding(Encoding::ASCII_8BIT)
@chunk << bulk
@adding_bytes += bulk.bytesize
@adding_size += bulk_size
true
end
empty?()
click to toggle source
def empty?
@chunk.empty?
end
open(**kwargs, &block)
click to toggle source
def open(**kwargs, &block)
StringIO.open(@chunk, &block)
end
purge()
click to toggle source
def purge
super
@chunk = ''.force_encoding("ASCII-8BIT")
@chunk_bytes = @size = @adding_bytes = @adding_size = 0
true
end
read(**kwargs)
click to toggle source
def read(**kwargs)
@chunk
end
rollback()
click to toggle source
def rollback
@chunk.slice!(@chunk_bytes, @adding_bytes)
@adding_bytes = @adding_size = 0
true
end
size()
click to toggle source
def size
@size + @adding_size
end
write_to(io, **kwargs)
click to toggle source
def write_to(io, **kwargs)
io.write @chunk
end