Module: Lucid::Term::ANSIColor

Extended by:
ANSIColor
Included in:
Formatter::ANSIColor, ANSIColor
Defined in:
lib/lucid/ansicolor.rb

Constant Summary collapse

ATTRIBUTES =
[
  [: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],
]
ATTRIBUTE_NAMES =
ATTRIBUTES.transpose.first
COLORED_REGEXP =

Regular expression that is used to scan for ANSI-sequences while there are uncolored strings.

/\e\[(?:[34][0-7]|[0-9])?m/

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.attributesObject

Returns an array of all Lucid::Term::ANSIColor attributes as symbols.



96
97
98
# File 'lib/lucid/ansicolor.rb', line 96

def attributes
  ATTRIBUTE_NAMES
end

.coloring=(val) ⇒ Object

Example Usage:

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


43
44
45
# File 'lib/lucid/ansicolor.rb', line 43

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

.coloring?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/lucid/ansicolor.rb', line 37

def self.coloring?
  @coloring
end

.included(klass) ⇒ Object



72
73
74
75
76
77
# File 'lib/lucid/ansicolor.rb', line 72

def self.included(klass)
  if klass == String
    ATTRIBUTES.delete(:clear)
    ATTRIBUTE_NAMES.delete(:clear)
  end
end

Instance Method Details

#uncolored(string = nil) ⇒ Object

Returns an uncolored version of the string. This means all ANSI-sequences will be stripped from the string.



81
82
83
84
85
86
87
88
89
90
91
# File 'lib/lucid/ansicolor.rb', line 81

def uncolored(string = nil)
  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