class Bundler::Thor::Shell::Color

继承自 Bundler::Thor::Shell::Basic 并添加 set_color 行为。请查看 Bundler::Thor::Shell::Basic 以了解所有可用方法。

常量

BLACK

将终端的前景 ANSI 颜色设置为黑色。

BLUE

将终端的前景 ANSI 颜色设置为蓝色。

BOLD

ANSI 粗体序列的开始。

CLEAR

嵌入字符串中以清除所有先前的 ANSI 序列。

CYAN

将终端的前景 ANSI 颜色设置为青色。

GREEN

将终端的前景 ANSI 颜色设置为绿色。

MAGENTA

将终端的前景 ANSI 颜色设置为洋红色。

ON_BLACK

将终端的背景 ANSI 颜色设置为黑色。

ON_BLUE

将终端的背景 ANSI 颜色设置为蓝色。

ON_CYAN

将终端的背景 ANSI 颜色设置为青色。

ON_GREEN

将终端的背景 ANSI 颜色设置为绿色。

ON_MAGENTA

将终端的背景 ANSI 颜色设置为洋红色。

ON_RED

将终端的背景 ANSI 颜色设置为红色。

ON_WHITE

将终端的背景 ANSI 颜色设置为白色。

ON_YELLOW

将终端的背景 ANSI 颜色设置为黄色。

RED

将终端的前景 ANSI 颜色设置为红色。

WHITE

将终端的前景 ANSI 颜色设置为白色。

YELLOW

将终端的前景 ANSI 颜色设置为黄色。

公共实例方法

set_color(string, *colors) 单击以切换源代码

通过使用字符串或定义的常量之一来设置颜色。如果将第三个选项设置为 true,它还会将粗体添加到字符串中。这是基于 Highline 的实现,它会自动将 CLEAR 附加到返回的字符串末尾。

将前景、背景和粗体选项作为符号传递给此方法。

示例

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

可用的颜色有

: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 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

受保护的实例方法

are_colors_disabled?() 单击以切换源代码
# File bundler/vendor/thor/lib/thor/shell/color.rb, line 107
def are_colors_disabled?
  !ENV["NO_COLOR"].nil? && !ENV["NO_COLOR"].empty?
end
are_colors_supported?() 单击以切换源代码
# File bundler/vendor/thor/lib/thor/shell/color.rb, line 103
def are_colors_supported?
  stdout.tty? && ENV["TERM"] != "dumb"
end
can_display_colors?() 单击以切换源代码
# File bundler/vendor/thor/lib/thor/shell/color.rb, line 99
def can_display_colors?
  are_colors_supported? && !are_colors_disabled?
end