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
# 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
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
Protected Instance Methods
# File lib/bundler/vendor/thor/lib/thor/shell/color.rb, line 103 def are_colors_disabled? !ENV['NO_COLOR'].nil? end
# File lib/bundler/vendor/thor/lib/thor/shell/color.rb, line 99 def can_display_colors? stdout.tty? && !are_colors_disabled? end
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.