Class: Gallus::Output::Stream

Inherits:
Object
  • Object
show all
Defined in:
lib/gallus/output/stream.rb

Overview

Public: Simple, thread-safe IO stream output handler. Takes stream and format on input.

Direct Known Subclasses

File, Stderr, Stdout

Instance Method Summary collapse

Constructor Details

#initialize(stream, format) ⇒ Stream

Returns a new instance of Stream.



5
6
7
8
# File 'lib/gallus/output/stream.rb', line 5

def initialize(stream, format)
  @mutex = Mutex.new
  @stream, @format = stream, format
end

Instance Method Details

#call(event) ⇒ Object



10
11
12
# File 'lib/gallus/output/stream.rb', line 10

def call(event)
  @mutex.synchronize { call!(event) }
end

#call!(event) ⇒ Object



14
15
16
# File 'lib/gallus/output/stream.rb', line 14

def call!(event)
  @stream.write(@format.call(event) + "\n")
end