def decorate(string, *colors)
      return string if blank?(string) || !enabled || colors.empty?

      ansi_colors = lookup(*colors.dup.uniq)
      if eachline
        string.dup.split(eachline).map! do |line|
          apply_codes(line, ansi_colors)
        end.join(eachline)
      else
        apply_codes(string.dup, ansi_colors)
      end
    end
def decorate(string, *colors)
      return string if blank?(string) || !enabled || colors.empty?

      ansi_colors = lookup(*colors.dup.uniq)
      if eachline
        string.dup.split(eachline).map! do |line|
          apply_codes(line, ansi_colors)
        end.join(eachline)
      else
        apply_codes(string.dup, ansi_colors)
      end
    end
Apply ANSI color to the given string.

 Wraps eachline with clear escape.

 @param [String] string
   text to add ANSI strings

 @param [Array[Symbol]] colors
   the color names

 @example
   color.decorate "text", :yellow, :on_green, :underline

 @return [String]
   the colored string

 @api public