module PhusionPassenger::Utils::AnsiColors

def self.included(klass)

def self.included(klass)
  # When included into another class, make sure that Utils
  # methods are made private.
  public_instance_methods(false).each do |method_name|
    klass.send(:private, method_name)
  end
end

def self.new(type = :auto)

def self.new(type = :auto)
  return AnsiColorsPrinter.new(type)
end

def ansi_colorize(text)

def ansi_colorize(text)
  text = text.gsub(%r{<b>(.*?)</b>}m, "#{BOLD}\\1#{DEFAULT_TERMINAL_COLOR}")
  text.gsub!(%r{<dgray>(.*?)</dgray>}m, "#{BOLD}#{DGRAY}\\1#{DEFAULT_TERMINAL_COLOR}")
  text.gsub!(%r{<red>(.*?)</red>}m, "#{BOLD}#{RED}\\1#{DEFAULT_TERMINAL_COLOR}")
  text.gsub!(%r{<orange>(.*?)</orange>}m, "#{BOLD}#{ORANGE}\\1#{DEFAULT_TERMINAL_COLOR}")
  text.gsub!(%r{<green>(.*?)</green>}m, "#{BOLD}#{GREEN}\\1#{DEFAULT_TERMINAL_COLOR}")
  text.gsub!(%r{<yellow>(.*?)</yellow>}m, "#{BOLD}#{YELLOW}\\1#{DEFAULT_TERMINAL_COLOR}")
  text.gsub!(%r{<banner>(.*?)</banner>}m, "#{BOLD}#{BLUE_BG}#{YELLOW}\\1#{DEFAULT_TERMINAL_COLOR}")
  return text
end

def strip_color_tags(text)

def strip_color_tags(text)
  text = text.gsub(%r{<b>(.*?)</b>}m, "\\1")
  text = text.gsub(%r{<dgray>(.*?)</dgray>}m, "\\1")
  text.gsub!(%r{<red>(.*?)</red>}m, "\\1")
  text.gsub!(%r{<orange>(.*?)</orange>}m, "\\1")
  text.gsub!(%r{<green>(.*?)</green>}m, "\\1")
  text.gsub!(%r{<yellow>(.*?)</yellow>}m, "\\1")
  text.gsub!(%r{<banner>(.*?)</banner>}m, "\\1")
  return text
end