Class: CLI::UI::Color

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/cli/ui/color.rb

Defined Under Namespace

Classes: InvalidColorName

Constant Summary collapse

RED =
new('31', :red)
GREEN =
new('32', :green)
YELLOW =
new('33', :yellow)
BLUE =

default blue is low-contrast against black in some default terminal color scheme

new('94', :blue)
MAGENTA =
new('35', :magenta)
CYAN =
new('36', :cyan)
RESET =
new('0',  :reset)
BOLD =
new('1',  :bold)
WHITE =
new('97', :white)
GRAY =

240 is very dark gray; 255 is very light gray. 244 is somewhat dark.

new('38;5;244', :grey)
MAP =
{
  red: RED,
  green: GREEN,
  yellow: YELLOW,
  blue: BLUE,
  magenta: MAGENTA,
  cyan: CYAN,
  reset: RESET,
  bold: BOLD,
  gray: GRAY,
}.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from T::Sig

sig

Constructor Details

#initialize(sgr, name) ⇒ Color

Returns a new instance of Color.


25
26
27
28
29
# File 'lib/cli/ui/color.rb', line 25

def initialize(sgr, name)
  @sgr  = sgr
  @code = CLI::UI::ANSI.sgr(sgr)
  @name = name
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.


10
11
12
# File 'lib/cli/ui/color.rb', line 10

def code
  @code
end

#nameObject (readonly)

Returns the value of attribute name.


13
14
15
# File 'lib/cli/ui/color.rb', line 13

def name
  @name
end

#sgrObject (readonly)

Returns the value of attribute sgr.


10
11
12
# File 'lib/cli/ui/color.rb', line 10

def sgr
  @sgr
end

Class Method Details

.availableObject


93
94
95
# File 'lib/cli/ui/color.rb', line 93

def self.available
  MAP.keys
end

.lookup(name) ⇒ Object


84
85
86
87
88
# File 'lib/cli/ui/color.rb', line 84

def self.lookup(name)
  MAP.fetch(name.to_sym)
rescue KeyError
  raise InvalidColorName, name
end