Module: Aruba::AnsiColor

Included in:
Colorizer
Defined in:
lib/aruba/colorizer.rb

Overview

The ANSIColor module can be used for namespacing and mixed into your own classes.

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],
  [: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/

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.coloring=(val) ⇒ Object

Turns the coloring on or off globally, so you can easily do this for example:

Cucumber::Term::ANSIColor::coloring = STDOUT.isatty

49
50
51
# File 'lib/aruba/colorizer.rb', line 49

def self.coloring=(val)
  @coloring = val
end

.coloring?Boolean

Returns true, if the coloring function of this module is switched on, false otherwise.

Returns:

  • (Boolean)

42
43
44
# File 'lib/aruba/colorizer.rb', line 42

def self.coloring?
  @coloring
end

.included(klass) ⇒ Object


76
77
78
79
80
81
# File 'lib/aruba/colorizer.rb', line 76

def self.included(klass)
  return unless klass == String

  ATTRIBUTES.delete(:clear)
  ATTRIBUTE_NAMES.delete(:clear)
end

Instance Method Details

#attributesObject

Returns an array of all Aruba::Platforms::AnsiColor attributes as symbols.


98
99
100
# File 'lib/aruba/colorizer.rb', line 98

def attributes
  ATTRIBUTE_NAMES
end

#uncolored(string = nil) ⇒ Object

Returns an uncolored version of the string, that is all ANSI-sequences are stripped from the string.


85
86
87
88
89
90
91
92
93
94
95
# File 'lib/aruba/colorizer.rb', line 85

def uncolored(string = nil) # :yields:
  if block_given?
    yield.gsub(COLORED_REGEXP, '')
  elsif string
    string.gsub(COLORED_REGEXP, '')
  elsif respond_to?(:to_str)
    to_str.gsub(COLORED_REGEXP, '')
  else
    ''
  end
end