1
0
mirror of https://github.com/meineerde/rackstash.git synced 2026-01-31 17:27:13 +00:00

Add Rackstash::Buffer#clear to clear all data in a buffer

This commit is contained in:
Holger Just 2017-02-03 14:21:22 +01:00
parent 4db9fd7166
commit 5e37df77e5
2 changed files with 49 additions and 0 deletions

View File

@ -60,6 +60,19 @@ module Rackstash
@allow_empty
end
# Clear the current buffer from all stored data, just as it was right after
# inititialization.
#
# @return [self]
def clear
@messages.clear
@fields.clear
@tags.clear
@timestamp = nil
self
end
# Return all logged messages on the current buffer.
#
# @return [Array<Message>] the list of messages of the curent buffer

View File

@ -34,6 +34,42 @@ describe Rackstash::Buffer do
end
end
describe '#clear' do
it 'removes all fields and tags' do
buffer.fields['foo'] = 'bar'
buffer.tag 'super_important'
buffer.clear
expect(buffer.tags).to be_empty
expect(buffer.fields).to be_empty
end
it 'clears the message buffer' do
buffer.add_message double(message: 'Hello World!', time: Time.now)
buffer.clear
expect(buffer.messages).to eql []
end
it 'removes the pending flag' do
buffer.add_message double(message: 'raw', time: Time.now)
expect(buffer.pending?).to be true
buffer.clear
expect(buffer.pending?).to be false
end
it 'resets the timestamp' do
buffer.timestamp(Time.parse('2016-10-17 15:37:00 +02:00'))
expect(buffer.timestamp).to eql '2016-10-17T13:37:00.000Z'
buffer.clear
expect(Time).to receive(:now).and_call_original
expect(buffer.timestamp).not_to eql '2016-10-17T13:37:00.000Z'
end
end
describe '#fields' do
it 'returns a Rackstash::Fields::Hash' do
expect(buffer.fields).to be_a Rackstash::Fields::Hash