Class: Rainbow::StringUtils

Inherits:
Object
  • Object
show all
Defined in:
lib/rainbow/string_utils.rb

Class Method Summary collapse

Class Method Details

.uncolor(string) ⇒ Object



16
17
18
19
# File 'lib/rainbow/string_utils.rb', line 16

def self.uncolor(string)
  # See http://www.commandlinefu.com/commands/view/3584/remove-color-codes-special-characters-with-sed
  string.gsub(/\e\[[0-9;]*m/, '')
end

.wrap_with_sgr(string, codes) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/rainbow/string_utils.rb', line 3

def self.wrap_with_sgr(string, codes)
  return string if codes.empty?

  seq = "\e[" + codes.join(";") + "m"
  match = string.match(/^(\e\[([\d;]+)m)*/)
  seq_pos = match.end(0)
  string = string[0...seq_pos] + seq + string[seq_pos..-1]

  string += "\e[0m" unless string =~ /\e\[0m$/

  string
end