def run(&block)
result = []
super {
block.call if block
buffer = ''
lines = {}
@entries.each do |time, record|
meta = @instance.metadata(@tag, time, record)
line = @instance.format(@tag, time, record)
buffer << line
lines[meta] ||= []
lines[meta] << line
end
if @expected_buffer
assert_equal(@expected_buffer, buffer)
end
lines.keys.each do |meta|
chunk = @instance.buffer.generate_chunk(meta).staged!
chunk.append(lines[meta])
begin
result.push(@instance.write(chunk))
ensure
chunk.purge
end
end
}
result
end