Module: Cucumber::Gherkin::Formatter::AnsiEscapes

Included in:
Rake::Task
Defined in:
lib/cucumber/gherkin/formatter/ansi_escapes.rb

Overview

Defines aliases for ANSI coloured output. Default colours can be overridden by defining a GHERKIN_COLORS variable in your shell, very much like how you can tweak the familiar POSIX command ls with $LSCOLORS: linux-sxs.org/housekeeping/lscolors.html

The colours that you can change are:

undefined

defaults to yellow

pending

defaults to yellow

pending_arg

defaults to yellow,bold

executing

defaults to grey

executing_arg

defaults to grey,bold

failed

defaults to red

failed_arg

defaults to red,bold

passed

defaults to green

passed_arg

defaults to green,bold

outline

defaults to cyan

outline_arg

defaults to cyan,bold

skipped

defaults to cyan

skipped_arg

defaults to cyan,bold

comment

defaults to grey

tag

defaults to cyan

For instance, if your shell has a black background and a green font (like the “Homebrew” settings for OS X’ Terminal.app), you may want to override passed steps to be white instead of green. Examples:

export GHERKIN_COLORS="passed=white"
export GHERKIN_COLORS="passed=white,bold:passed_arg=white,bold,underline"

(If you’re on Windows, use SET instead of export). To see what colours and effects are available, just run this in your shell:

ruby -e "require 'rubygems'; require 'term/ansicolor'; puts Term::ANSIColor.attributes"

Although not listed, you can also use grey

Constant Summary collapse

COLORS =
{
  'black' => "\e[30m",
  'red' => "\e[31m",
  'green' => "\e[32m",
  'yellow' => "\e[33m",
  'blue' => "\e[34m",
  'magenta' => "\e[35m",
  'cyan' => "\e[36m",
  'white' => "\e[37m",
  'grey' => "\e[90m",
  'bold' => "\e[1m"
}.freeze
ALIASES =
Hash.new do |h, k|
  "#{h[Regexp.last_match(1)]},bold" if k.to_s =~ /(.*)_arg/
end.merge(
  'undefined' => 'yellow',
  'pending' => 'yellow',
  'executing' => 'grey',
  'failed' => 'red',
  'passed' => 'green',
  'outline' => 'cyan',
  'skipped' => 'cyan',
  'comments' => 'grey',
  'tag' => 'cyan'
)

Instance Method Summary collapse

Instance Method Details

#resetObject



85
86
87
# File 'lib/cucumber/gherkin/formatter/ansi_escapes.rb', line 85

def reset
  "\e[0m"
end

#up(amount) ⇒ Object



89
90
91
# File 'lib/cucumber/gherkin/formatter/ansi_escapes.rb', line 89

def up(amount)
  "\e[#{amount}A"
end