Class: Darlingtonia::FormattedMessageStream
- Inherits:
-
Object
- Object
- Darlingtonia::FormattedMessageStream
- Defined in:
- lib/darlingtonia/streams/formatted_message_stream.rb
Overview
A message stream that formats a message before forwarding it to an underlying #stream (STDOUT by default). Messages are formatted using the ‘#%` method; the formatter can be a string format specification like “Message received: %s”.
Instance Attribute Summary collapse
-
#formatter ⇒ #%
A format specification.
-
#stream ⇒ #<<
An underlying stream to forward messages to after formatting.
Instance Method Summary collapse
- #<<(msg) ⇒ Object
-
#format_message(msg) ⇒ String
The input, cast to a string and formatted using.
-
#initialize(stream: STDOUT, formatter: "%s\n") ⇒ FormattedMessageStream
constructor
A new instance of FormattedMessageStream.
Constructor Details
#initialize(stream: STDOUT, formatter: "%s\n") ⇒ FormattedMessageStream
Returns a new instance of FormattedMessageStream.
52 53 54 55 |
# File 'lib/darlingtonia/streams/formatted_message_stream.rb', line 52 def initialize(stream: STDOUT, formatter: "%s\n") self.formatter = formatter self.stream = stream end |
Instance Attribute Details
#formatter ⇒ #%
Returns A format specification.
44 45 46 |
# File 'lib/darlingtonia/streams/formatted_message_stream.rb', line 44 def formatter @formatter end |
#stream ⇒ #<<
Returns an underlying stream to forward messages to after formatting.
44 |
# File 'lib/darlingtonia/streams/formatted_message_stream.rb', line 44 attr_accessor :formatter, :stream |
Instance Method Details
#<<(msg) ⇒ Object
58 59 60 |
# File 'lib/darlingtonia/streams/formatted_message_stream.rb', line 58 def <<(msg) stream << (msg) end |
#format_message(msg) ⇒ String
Returns the input, cast to a string and formatted using.
66 67 68 |
# File 'lib/darlingtonia/streams/formatted_message_stream.rb', line 66 def (msg) formatter % msg end |