Class: BufferingLogger::Buffer
- Inherits:
-
Object
- Object
- BufferingLogger::Buffer
- Defined in:
- lib/buffering_logger/buffer.rb
Overview
Buffer is used to wrap the logger’s logdev to accomplish buffering. For the purposes of the Logger class a LogDevice only needs to implement #write and #close. We add #buffered as well.
Instance Method Summary collapse
-
#buffered(transform: nil) ⇒ Object
buffers during the block and then flushes.
- #close ⇒ Object
-
#initialize(logdev) ⇒ Buffer
constructor
A new instance of Buffer.
- #write(msg) ⇒ Object
Constructor Details
#initialize(logdev) ⇒ Buffer
Returns a new instance of Buffer.
6 7 8 9 |
# File 'lib/buffering_logger/buffer.rb', line 6 def initialize(logdev) @logdev = logdev @mutex = Mutex.new end |
Instance Method Details
#buffered(transform: nil) ⇒ Object
buffers during the block and then flushes. returns the value of the block.
13 14 15 16 17 18 19 |
# File 'lib/buffering_logger/buffer.rb', line 13 def buffered(transform: nil) self.buffering = true yield ensure self.buffering = false flush(transform: transform) end |
#close ⇒ Object
29 30 31 |
# File 'lib/buffering_logger/buffer.rb', line 29 def close logdev_close end |
#write(msg) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/buffering_logger/buffer.rb', line 21 def write(msg) if buffering buffer.write(msg) else logdev_write(msg) end end |