class Bundler::Thor::Shell::Color - bundler-1.9.9 Documentation

# class Bundler::Thor::Shell::Color

Inherit from Bundler::Thor::Shell::Basic and add #set_color behavior. Check Bundler::Thor::Shell::Basic to see all available methods.

### Constants

BLACK

  Set the terminal's foreground ANSI color to black.

BLUE

  Set the terminal's foreground ANSI color to blue.

BOLD

  The start of an ANSI bold sequence.

CLEAR

  Embed in a String to clear all previous ANSI sequences.

CYAN

  Set the terminal's foreground ANSI color to cyan.

GREEN

  Set the terminal's foreground ANSI color to green.

MAGENTA

  Set the terminal's foreground ANSI color to magenta.

ON_BLACK

  Set the terminal's background ANSI color to black.

ON_BLUE

  Set the terminal's background ANSI color to blue.

ON_CYAN

  Set the terminal's background ANSI color to cyan.

ON_GREEN

  Set the terminal's background ANSI color to green.

ON_MAGENTA

  Set the terminal's background ANSI color to magenta.

ON_RED

  Set the terminal's background ANSI color to red.

ON_WHITE

  Set the terminal's background ANSI color to white.

ON_YELLOW

  Set the terminal's background ANSI color to yellow.

RED

  Set the terminal's foreground ANSI color to red.

WHITE

  Set the terminal's foreground ANSI color to white.

YELLOW

  Set the terminal's foreground ANSI color to yellow.

### Public Instance Methods

set_color(string, *colors) click to toggle source

Set color by using a string or one of the defined constants. If a third option is set to true, it also adds bold to the string. This is based on Highline implementation and it automatically appends CLEAR to the end of the returned String.

Pass foreground, background and bold options to this method as symbols.

Example:

    set_color "Hi!", :red, :on_white, :bold

The available colors are:

    :bold
    :black
    :red
    :green
    :yellow
    :blue
    :magenta
    :cyan
    :white
    :on_black
    :on_red
    :on_green
    :on_yellow
    :on_blue
    :on_magenta
    :on_cyan
    :on_white

    # File lib/bundler/vendor/thor/lib/thor/shell/color.rb, line 79
    def set_color(string, *colors)
      if colors.compact.empty? || !can_display_colors?
        string
      elsif colors.all? { |color| color.is_a?(Symbol) || color.is_a?(String) }
        ansi_colors = colors.map { |color| lookup_color(color) }
        "#{ansi_colors.join}#{string}#{CLEAR}"
      else
        # The old API was `set_color(color, bold=boolean)`. We
        # continue to support the old API because you should never
        # break old APIs unnecessarily :P
        foreground, bold = colors
        foreground = self.class.const_get(foreground.to_s.upcase) if foreground.is_a?(Symbol)

        bold       = bold ? BOLD : ""
        "#{bold}#{foreground}#{string}#{CLEAR}"
      end
    end

### Protected Instance Methods

can_display_colors?() click to toggle source

    # File lib/bundler/vendor/thor/lib/thor/shell/color.rb, line 99
    def can_display_colors?
      stdout.tty?
    end