Class: Reviewer::Output::Printer
- Inherits:
-
Object
- Object
- Reviewer::Output::Printer
- Includes:
- AnsiStyles
- Defined in:
- lib/reviewer/output/printer.rb
Overview
Wrapper to encapsulate some lower-level details of printing to $stdout. Handles ANSI styling via the pre-computed AnsiStyles::STYLES constant.
Constant Summary
Constants included from AnsiStyles
AnsiStyles::COLORS, AnsiStyles::ESC, AnsiStyles::RESET, AnsiStyles::STYLES, AnsiStyles::STYLE_DEFS, AnsiStyles::WEIGHTS
Instance Attribute Summary collapse
-
#stream ⇒ Object
readonly
Returns the value of attribute stream.
Instance Method Summary collapse
-
#initialize(stream = $stdout) ⇒ Printer
constructor
Creates a printer for styled console output.
-
#print(style, content) ⇒ void
Prints styled content without a newline.
-
#puts(style, content) ⇒ void
Prints styled content followed by a newline.
-
#tty? ⇒ Boolean
(also: #style_enabled?)
Whether the output stream is a TTY (interactive terminal).
-
#write_raw(content) ⇒ void
Writes content directly to the stream without styling.
Constructor Details
#initialize(stream = $stdout) ⇒ Printer
Creates a printer for styled console output
54 55 56 57 |
# File 'lib/reviewer/output/printer.rb', line 54 def initialize(stream = $stdout) @stream = stream @stream.sync = true if @stream.respond_to?(:sync=) end |
Instance Attribute Details
#stream ⇒ Object (readonly)
Returns the value of attribute stream.
48 49 50 |
# File 'lib/reviewer/output/printer.rb', line 48 def stream @stream end |
Instance Method Details
#print(style, content) ⇒ void
This method returns an undefined value.
Prints styled content without a newline
64 65 66 |
# File 'lib/reviewer/output/printer.rb', line 64 def print(style, content) text(style, content) end |
#puts(style, content) ⇒ void
This method returns an undefined value.
Prints styled content followed by a newline
73 74 75 76 |
# File 'lib/reviewer/output/printer.rb', line 73 def puts(style, content) text(style, content) stream.puts end |
#tty? ⇒ Boolean Also known as: style_enabled?
Whether the output stream is a TTY (interactive terminal)
91 |
# File 'lib/reviewer/output/printer.rb', line 91 def tty? = stream.tty? |
#write_raw(content) ⇒ void
This method returns an undefined value.
Writes content directly to the stream without styling. Skips if content is nil or blank.
83 84 85 86 87 |
# File 'lib/reviewer/output/printer.rb', line 83 def write_raw(content) return if content.to_s.strip.empty? stream << content end |