Module: ProxyRb::AnsiColor

Included in:
Colorizer
Defined in:
lib/proxy_rb/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:

ProxyRb::Colorizer.coloring = STDOUT.isatty


51
52
53
# File 'lib/proxy_rb/colorizer.rb', line 51

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)


44
45
46
# File 'lib/proxy_rb/colorizer.rb', line 44

def self.coloring?
  @coloring
end

.included(klass) ⇒ Object



79
80
81
82
83
84
# File 'lib/proxy_rb/colorizer.rb', line 79

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

Instance Method Details

#attributesObject

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



101
102
103
# File 'lib/proxy_rb/colorizer.rb', line 101

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.



88
89
90
91
92
93
94
95
96
97
98
# File 'lib/proxy_rb/colorizer.rb', line 88

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