Module: Assert::ViewHelpers::Ansi

Included in:
DefaultView
Defined in:
lib/assert/view_helpers.rb

Constant Summary collapse

CODES =

Table of supported styles/codes (en.wikipedia.org/wiki/ANSI_escape_code).

{
  clear: 0,
  reset: 0,
  bright: 1,
  bold: 1,
  faint: 2,
  dark: 2,
  italic: 3,
  underline: 4,
  underscore: 4,
  blink: 5,
  slow_blink: 5,
  rapid: 6,
  rapid_blink: 6,
  invert: 7,
  inverse: 7,
  reverse: 7,
  negative: 7,
  swap: 7,
  conceal: 8,
  concealed: 8,
  hide: 9,
  strike: 9,

  default_font: 10,
  font_default: 10,
  font0: 10,
  font1: 11,
  font2: 12,
  font3: 13,
  font4: 14,
  font5: 15,
  font6: 16,
  font7: 17,
  font8: 18,
  font9: 19,
  fraktur: 20,
  bright_off: 21,
  bold_off: 21,
  double_underline: 21,
  clean: 22,
  italic_off: 23,
  fraktur_off: 23,
  underline_off: 24,
  blink_off: 25,
  inverse_off: 26,
  positive: 26,
  conceal_off: 27,
  show: 27,
  reveal: 27,
  crossed_off: 29,
  crossed_out_off: 29,

  black: 30,
  red: 31,
  green: 32,
  yellow: 33,
  blue: 34,
  magenta: 35,
  cyan: 36,
  white: 37,

  on_black: 40,
  on_red: 41,
  on_green: 42,
  on_yellow: 43,
  on_blue: 44,
  on_magenta: 45,
  on_cyan: 46,
  on_white: 47,

  frame: 51,
  encircle: 52,
  overline: 53,
  frame_off: 54,
  encircle_off: 54,
  overline_off: 55,
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.code_for(*style_names) ⇒ Object


172
173
174
175
176
177
# File 'lib/assert/view_helpers.rb', line 172

def self.code_for(*style_names)
  style_names
    .map{ |n| "\e[#{CODES[n]}m" if CODES.key?(n) }
    .compact
    .join("")
end

Instance Method Details

#ansi_styled_msg(msg, result_type) ⇒ Object


179
180
181
182
183
184
185
186
187
# File 'lib/assert/view_helpers.rb', line 179

def ansi_styled_msg(msg, result_type)
  return msg if !is_tty? || !styled
  code =
    Assert::ViewHelpers::Ansi.code_for(
      *send("#{result_type}_styles"),
    )
  return msg if code.empty?
  code + msg + Assert::ViewHelpers::Ansi.code_for(:reset)
end