Class: Sus::Output::XTerm
Overview
Represents an XTerm-compatible output handler with color and style support.
Constant Summary collapse
- COLORS =
Color codes for ANSI terminal colors.
{ black: 0, red: 1, green: 2, yellow: 3, blue: 4, magenta: 5, cyan: 6, white: 7, default: 9, }
- ATTRIBUTES =
Style attribute codes for ANSI terminal attributes.
{ normal: 0, bold: 1, bright: 1, faint: 2, italic: 3, underline: 4, blink: 5, reverse: 7, hidden: 8, }
Constants inherited from Text
Constants included from Messages
Messages::FAILED_PREFIX, Messages::PASSED_PREFIX
Instance Attribute Summary
Attributes inherited from Text
Instance Method Summary collapse
- #colors? ⇒ Boolean
- #reset ⇒ Object
- #size ⇒ Object
-
#style(foreground, background = nil, *attributes) ⇒ Object
Create an ANSI escape sequence for styling.
Methods inherited from Text
#The IO object to write to.=, #The style definitions.=, #[], #[]=, #append, #buffered, #indent, #indented, #initialize, #interactive?, #outdent, #puts, #width, #write
Methods included from Messages
#assert, #error, #error_prefix, #fail_prefix, #inform, #inform_prefix, #pass_prefix, #skip, #skip_prefix
Constructor Details
This class inherits a constructor from Sus::Output::Text
Instance Method Details
#colors? ⇒ Boolean
41 42 43 |
# File 'lib/sus/output/xterm.rb', line 41 def colors? true end |
#reset ⇒ Object
74 75 76 |
# File 'lib/sus/output/xterm.rb', line 74 def reset "\e[0m" end |
#size ⇒ Object
46 47 48 |
# File 'lib/sus/output/xterm.rb', line 46 def size @io.winsize end |
#style(foreground, background = nil, *attributes) ⇒ Object
Create an ANSI escape sequence for styling.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/sus/output/xterm.rb', line 55 def style(foreground, background = nil, *attributes) tokens = [] if foreground tokens << 30 + COLORS.fetch(foreground) end if background tokens << 40 + COLORS.fetch(background) end attributes.each do |attribute| tokens << ATTRIBUTES.fetch(attribute){attribute.to_i} end return "\e[#{tokens.join(';')}m" end |