Module: Ansi
- Defined in:
- lib/ansi.rb
Overview
Helpers for wrapping text in ANSI escape codes and expanding inline DSL tokens.
Constant Summary collapse
- NAME =
"ruby-ansi-formatter"- VERSION =
"0.1.0"- FORMATS =
Maps public formatter names to their DSL prefixes and ANSI escape codes.
{ reset: { prefix: "R", code: "\e[0m", }, bold: { prefix: "B", code: "\e[1m", }, dim: { prefix: "D", code: "\e[2m", }, italic: { prefix: "I", code: "\e[3m", }, underline: { prefix: "U", code: "\e[4m", }, invert: { prefix: "X", code: "\e[7m", }, hidden: { prefix: "H", code: "\e[8m", }, strikethrough: { prefix: "S", code: "\e[9m", }, double_underline: { prefix: "DU", code: "\e[21m", }, overline: { prefix: "OV", code: "\e[53m", }, red: { prefix: "r", code: "\e[31m", }, green: { prefix: "g", code: "\e[32m", }, yellow: { prefix: "y", code: "\e[33m", }, blue: { prefix: "b", code: "\e[34m", }, magenta: { prefix: "m", code: "\e[35m", }, cyan: { prefix: "c", code: "\e[36m", }, white: { prefix: "w", code: "\e[37m", }, bright_red: { prefix: "br", code: "\e[91m", }, bright_green: { prefix: "bg", code: "\e[92m", }, bright_yellow: { prefix: "by", code: "\e[93m", }, bright_blue: { prefix: "bb", code: "\e[94m", }, bright_magenta: { prefix: "bm", code: "\e[95m", }, bright_cyan: { prefix: "bc", code: "\e[96m", }, bright_white: { prefix: "bw", code: "\e[97m", }, }.freeze
Class Method Summary collapse
-
.codes ⇒ Array<String>
Returns ANSI escape codes for all registered formatters.
-
.format(string) ⇒ String
Expands
%<prefix>(text)and%<format_name>(text)DSL tokens in string. -
.formats ⇒ Array<Symbol>
Returns registered formatter names.
-
.prefixes ⇒ Array<String>
Returns DSL prefixes for all registered formatters.
Class Method Details
.codes ⇒ Array<String>
Returns ANSI escape codes for all registered formatters.
143 144 145 146 147 |
# File 'lib/ansi.rb', line 143 def codes @codes ||= FORMATS.map do |_format, data| data[:code] end end |
.format(string) ⇒ String
Expands %<prefix>(text) and %<format_name>(text) DSL tokens in string.
Supports multiline content, nested tokens, and restoration of outer active formatting after nested token resets.
156 157 158 |
# File 'lib/ansi.rb', line 156 def format(string) parse_text(string) end |
.formats ⇒ Array<Symbol>
Returns registered formatter names.
127 128 129 |
# File 'lib/ansi.rb', line 127 def formats @formats ||= FORMATS.keys end |
.prefixes ⇒ Array<String>
Returns DSL prefixes for all registered formatters.
134 135 136 137 138 |
# File 'lib/ansi.rb', line 134 def prefixes @prefixes ||= FORMATS.map do |_format, data| data[:prefix] end end |