Module: Cucumber::Formatter::ANSIColor
Overview
Defines aliases for coloured output. You don’t invoke any methods from this module directly, but you can change the output colours by defining a CUCUMBER_COLORS variable in your shell, very much like how you can tweak the familiar POSIX command ls with <a href=“mipsisrisc.com/rambling/2008/06/27/lscolorsls_colors-now-with-linux-support/”>$LSCOLORS/$LS_COLORS</a>
The colours that you can change are:
-
undefined- defaults toyellow -
pending- defaults toyellow -
pending_param- defaults toyellow,bold -
failed- defaults tored -
failed_param- defaults tored,bold -
passed- defaults togreen -
passed_param- defaults togreen,bold -
outline- defaults tocyan -
outline_param- defaults tocyan,bold -
skipped- defaults tocyan -
skipped_param- defaults tocyan,bold -
comment- defaults togrey -
tag- defaults tocyan
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.
Although not listed, you can also use grey.
Examples: (On Windows, use SET instead of export.)
export CUCUMBER_COLORS="passed=white"
export CUCUMBER_COLORS="passed=white,bold:passed_param=white,bold,underline"
To see what colours and effects are available, just run this in your shell:
ruby -e "require 'rubygems'; require 'term/ansicolor'; puts Cucumber::Term::ANSIColor.attributes"
Constant Summary collapse
- ALIASES =
Hash.new do |h, k| h[Regexp.last_match(1)] + ',bold' if k.to_s =~ /(.*)_param/ end.merge( 'undefined' => 'yellow', 'pending' => 'yellow', 'flaky' => 'yellow', 'failed' => 'red', 'passed' => 'green', 'outline' => 'cyan', 'skipped' => 'cyan', 'comment' => 'grey', 'tag' => 'cyan' )
Constants included from Term::ANSIColor
Term::ANSIColor::ATTRIBUTES, Term::ANSIColor::ATTRIBUTE_NAMES, Term::ANSIColor::COLORED_REGEXP
Class Method Summary collapse
-
.define_grey ⇒ Object
:nodoc:.
-
.define_real_grey ⇒ Object
:nodoc:.
Instance Method Summary collapse
Methods included from Term::ANSIColor
attributes, coloring=, coloring?, included, #uncolored
Class Method Details
.define_grey ⇒ Object
:nodoc:
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/cucumber/formatter/ansicolor.rb', line 103 def self.define_grey #:nodoc: gem 'genki-ruby-terminfo' require 'terminfo' case TermInfo.default_object.tigetnum('colors') when 0 raise "Your terminal doesn't support colours." when 1 ::Cucumber::Term::ANSIColor.coloring = false alias_method :grey, :white when 2..8 alias_method :grey, :white # rubocop:disable Lint/DuplicateMethods else define_real_grey end rescue Exception => e # rubocop:disable Lint/RescueException if e.class.name == 'TermInfo::TermInfoError' STDERR.puts '*** WARNING ***' STDERR.puts "You have the genki-ruby-terminfo gem installed, but you haven't set your TERM variable." STDERR.puts 'Try setting it to TERM=xterm-256color to get grey colour in output.' STDERR.puts "\n" alias_method :grey, :white else define_real_grey end end |
Instance Method Details
#cukes(n) ⇒ Object
137 138 139 |
# File 'lib/cucumber/formatter/ansicolor.rb', line 137 def cukes(n) ('(::) ' * n).strip end |
#green_cukes(n) ⇒ Object
141 142 143 |
# File 'lib/cucumber/formatter/ansicolor.rb', line 141 def green_cukes(n) blink(green(cukes(n))) end |
#red_cukes(n) ⇒ Object
145 146 147 |
# File 'lib/cucumber/formatter/ansicolor.rb', line 145 def red_cukes(n) blink(red(cukes(n))) end |
#yellow_cukes(n) ⇒ Object
149 150 151 |
# File 'lib/cucumber/formatter/ansicolor.rb', line 149 def yellow_cukes(n) blink(yellow(cukes(n))) end |