Module: Cucumber::Term::ANSIColor
- Included in:
- Formatter::ANSIColor, Banner::BannerMaker
- Defined in:
- lib/cucumber/term/ansicolor.rb
Overview
This module allows to colorize text using ANSI escape sequences.
Include the module in your class and use its methods to colorize text.
Example:
require 'cucumber/term/ansicolor'
class MyFormatter
include Cucumber::Term::ANSIColor
def initialize(config)
$stdout.puts yellow("Initializing formatter")
$stdout.puts green("Coloring is active \o/") if Cucumber::Term::ANSIColor.coloring?
$stdout.puts grey("Feature path:") + blue(bold(config.feature_dirs))
end
end
To see what colours and effects are available, just run this in your shell:
ruby -e "require 'rubygems'; require 'cucumber/term/ansicolor'; puts Cucumber::Term::ANSIColor.attributes"
Constant Summary collapse
- ATTRIBUTES =
:stopdoc:
[ [:clear, 0], [:reset, 0], # synonym for :clear [:bold, 1], [:dark, 2], [:italic, 3], # not widely implemented [:underline, 4], [:underscore, 4], # synonym for :underline [:blink, 5], [:rapid_blink, 6], # not widely implemented [:negative, 7], # no reverse because of String#reverse [:concealed, 8], [:strikethrough, 9], # not widely implemented [:black, 30], [:red, 31], [:green, 32], [:yellow, 33], [:blue, 34], [:magenta, 35], [:cyan, 36], [:white, 37], [:grey, 90], [:on_black, 40], [:on_red, 41], [:on_green, 42], [:on_yellow, 43], [:on_blue, 44], [:on_magenta, 45], [:on_cyan, 46], [:on_white, 47] ].freeze
- ATTRIBUTE_NAMES =
ATTRIBUTES.transpose.first
- COLORED_REGEXP =
Regular expression that is used to scan for ANSI-sequences while uncoloring strings.
/\e\[(?:[34][0-7]|[0-9])?m/.freeze
Class Attribute Summary collapse
-
.coloring ⇒ Object
(also: coloring?)
Turns the coloring on or off globally, so you can easily do this for example: Cucumber::Term::ANSIColor::coloring = $stdout.isatty.
Class Method Summary collapse
Instance Method Summary collapse
-
#attributes ⇒ Object
Returns an array of all Cucumber::Term::ANSIColor attributes as symbols.
-
#uncolored(text = nil) ⇒ Object
Returns an uncolored version of the string ANSI-sequences are stripped from the string.
Class Attribute Details
Class Method Details
.included(klass) ⇒ Object
80 81 82 83 84 85 |
# File 'lib/cucumber/term/ansicolor.rb', line 80 def included(klass) return unless klass == String ATTRIBUTES.delete(:clear) ATTRIBUTE_NAMES.delete(:clear) end |
Instance Method Details
#attributes ⇒ Object
Returns an array of all Cucumber::Term::ANSIColor attributes as symbols.
117 118 119 |
# File 'lib/cucumber/term/ansicolor.rb', line 117 def attributes ATTRIBUTE_NAMES end |
#uncolored(text = nil) ⇒ Object
Returns an uncolored version of the string ANSI-sequences are stripped from the string.
104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/cucumber/term/ansicolor.rb', line 104 def uncolored(text = nil) if block_given? uncolorize(yield) elsif text uncolorize(text) elsif respond_to?(:to_str) uncolorize(to_str) else '' end end |