Module: Ansi256

Defined in:
lib/ansi256.rb,
lib/ansi256/code.rb,
lib/ansi256/mixin.rb,
lib/ansi256/version.rb

Defined Under Namespace

Modules: Mixin

Constant Summary collapse

CODE =
{
  :reset      => 0,
  :bold       => 1,
  :underline  => 4,

  :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
NAMED_COLORS =
Set[
 :black,
 :red,
 :green,
 :yellow,
 :blue,
 :magenta,
 :cyan,
 :white,
].freeze
VERSION =
"0.2.1"

Class Method Summary collapse

Class Method Details

.bg(code, str = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ansi256.rb', line 20

def bg code, str = nil
  if str
    wrap str, Ansi256.bg(code)
  elsif NAMED_COLORS.include?(code)
    "\e[#{CODE[code] + 10}m"
  elsif code.is_a?(Fixnum) && (0..255).include?(code)
    "\e[48;5;#{code}m"
  else
    raise ArgumentError, "Invalid color code: #{code}"
  end
end

.fg(code, str = nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/ansi256.rb', line 8

def fg code, str = nil
  if str
    wrap str, Ansi256.fg(code)
  elsif NAMED_COLORS.include?(code)
    "\e[#{CODE[code]}m"
  elsif code.is_a?(Fixnum) && (0..255).include?(code)
    "\e[38;5;#{code}m"
  else
    raise ArgumentError, "Invalid color code: #{code}"
  end
end

.plain(str) ⇒ Object



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

def plain str
  str.gsub(PATTERN, '')
end