Class: Highlighters::Ansi

Inherits:
Object show all
Defined in:
lib/highlighters/ansi.rb

Constant Summary collapse

COLORS =
{ :red =>";31", :yellow => ";33", :green => ";32" }
STYLES =
{ :bold => ";1", :underline => ";4" }

Instance Method Summary collapse

Constructor Details

#initialize(*formats) ⇒ Ansi

Returns a new instance of Ansi.



6
7
8
# File 'lib/highlighters/ansi.rb', line 6

def initialize(*formats)
  @formats = formats
end

Instance Method Details

#ansi_format(text, formats) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/highlighters/ansi.rb', line 14

def ansi_format(text, formats)
  res = "\e[0"
  if formats.is_a?(Array) || formats.is_a?(Hash)
    COLORS.each { |k,v| res += v if formats.include?(k) }
    STYLES.each { |k,v| res += v if formats.include?(k) }
  elsif formats.is_a?(Symbol)
    COLORS.each { |k,v| res += v if formats == k }
    STYLES.each { |k,v| res += v if formats == k }
  elsif formats.respond_to?(:to_sym)
    COLORS.each { |k,v| res += v if formats.to_sym == k }
    STYLES.each { |k,v| res += v if formats.to_sym == k }
  end
  res += "m" + text.to_s + "\e[0m"
end

#highlight(text) ⇒ Object



10
11
12
# File 'lib/highlighters/ansi.rb', line 10

def highlight(text)
  ansi_format(text, @formats)
end