Class: Test::Unit::ColorScheme

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/test/unit/color-scheme.rb

Constant Summary collapse

TERM_256 =
/
[+-]256color|
\A(?:
  alacritty|
  iTerm\s?\d*\.app|
  kitty|
  mintty|
  ms-terminal|
  nsterm-build\d+|
  nsterm|
  terminator|
  terminology(?:-[0-9.]+)?|
  termite|
  vscode
)\z/x
@@default_for_8_colors =
nil
@@default_for_256_colors =
nil
@@schemes =
{}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scheme_spec) ⇒ ColorScheme

Returns a new instance of ColorScheme



151
152
153
154
155
156
# File 'lib/test/unit/color-scheme.rb', line 151

def initialize(scheme_spec)
  @scheme = {}
  scheme_spec.each do |key, color_spec|
    self[key] = color_spec
  end
end

Class Method Details

.[](id) ⇒ Object



96
97
98
# File 'lib/test/unit/color-scheme.rb', line 96

def [](id)
  @@schemes[id.to_s]
end

.[]=(id, scheme_or_spec) ⇒ Object



100
101
102
103
104
105
106
107
# File 'lib/test/unit/color-scheme.rb', line 100

def []=(id, scheme_or_spec)
  if scheme_or_spec.is_a?(self)
    scheme = scheme_or_spec
  else
    scheme = new(scheme_or_spec)
  end
  @@schemes[id.to_s] = scheme
end

.allObject



92
93
94
# File 'lib/test/unit/color-scheme.rb', line 92

def all
  @@schemes.merge("default" => default)
end

.available_colorsObject



109
110
111
112
113
114
# File 'lib/test/unit/color-scheme.rb', line 109

def available_colors
  guess_available_colors_from_vte_version_env ||
    guess_available_colors_from_colorterm_env ||
    guess_available_colors_from_term_env ||
    8
end

.defaultObject



9
10
11
12
13
14
15
# File 'lib/test/unit/color-scheme.rb', line 9

def default
  if available_colors == 256
    default_for_256_colors
  else
    default_for_8_colors
  end
end

.default_for_256_colorsObject



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/test/unit/color-scheme.rb', line 55

def default_for_256_colors
  @@default_for_256_colors ||=
    new("pass" => Color.new("030", :background => true) +
                  Color.new("555", :bold => true),
        "pass-marker" => Color.new("050", :bold => true),
        "failure" => Color.new("300", :background => true) +
                     Color.new("555", :bold => true),
        "failure-marker" => Color.new("500"),
        "pending" => Color.new("303", :background => true) +
                      Color.new("555", :bold => true),
        "pending-marker" => Color.new("303"),
        "omission" => Color.new("001", :background => true) +
                      Color.new("555", :bold => true),
        "omission-marker" => Color.new("001"),
        "notification" => Color.new("011", :background => true) +
                          Color.new("555", :bold => true),
        "notification-marker" => Color.new("011"),
        "error" => Color.new("000", :background => true) +
                   Color.new("550", :bold => true),
        "error-marker" => Color.new("550"),
        "case" => Color.new("220", :background => true) +
                  Color.new("555", :bold => true),
        "suite" => Color.new("110", :background => true) +
                   Color.new("555", :bold => true),
        "diff-inserted-tag" => Color.new("500", :background => true) +
                               Color.new("000", :bold => true),
        "diff-deleted-tag" => Color.new("050", :background => true) +
                              Color.new("000", :bold => true),
        "diff-difference-tag" => Color.new("005", :background => true) +
                                 Color.new("555", :bold => true),
        "diff-inserted" => Color.new("300", :background => true) +
                           Color.new("555", :bold => true),
        "diff-deleted" =>  Color.new("030", :background => true) +
                           Color.new("555", :bold => true))
end

.default_for_8_colorsObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/test/unit/color-scheme.rb', line 18

def default_for_8_colors
  @@default_for_8_colors ||=
    new("pass" => Color.new("green", :background => true) +
                  Color.new("white", :bold => true),
        "pass-marker" => Color.new("green", :bold => true),
        "failure" => Color.new("red", :background => true) +
                     Color.new("white", :bold => true),
        "failure-marker" => Color.new("red"),
        "pending" => Color.new("magenta", :background => true) +
                     Color.new("white", :bold => true),
        "pending-marker" => Color.new("magenta"),
        "omission" => Color.new("blue", :background => true) +
                     Color.new("white", :bold => true),
        "omission-marker" => Color.new("blue"),
        "notification" => Color.new("cyan", :background => true) +
                          Color.new("white", :bold => true),
        "notification-marker" => Color.new("cyan"),
        "error" => Color.new("black", :background => true) +
                   Color.new("yellow", :bold => true),
        "error-marker" => Color.new("yellow"),
        "case" => Color.new("blue", :background => true) +
                  Color.new("white", :bold => true),
        "suite" => Color.new("green", :background => true) +
                   Color.new("white", :bold => true),
        "diff-inserted-tag" => Color.new("red", :background => true) +
                               Color.new("black", :bold => true),
        "diff-deleted-tag" => Color.new("green", :background => true) +
                              Color.new("black", :bold => true),
        "diff-difference-tag" => Color.new("cyan", :background => true) +
                                 Color.new("white", :bold => true),
        "diff-inserted" => Color.new("red", :background => true) +
                           Color.new("white", :bold => true),
        "diff-deleted" =>  Color.new("green", :background => true) +
                           Color.new("white", :bold => true))
end

Instance Method Details

#[](name) ⇒ Object



158
159
160
# File 'lib/test/unit/color-scheme.rb', line 158

def [](name)
  @scheme[name.to_s]
end

#[]=(name, color_spec) ⇒ Object



162
163
164
# File 'lib/test/unit/color-scheme.rb', line 162

def []=(name, color_spec)
  @scheme[name.to_s] = make_color(color_spec)
end

#each(&block) ⇒ Object



166
167
168
# File 'lib/test/unit/color-scheme.rb', line 166

def each(&block)
  @scheme.each(&block)
end

#to_hashObject



170
171
172
173
174
175
176
# File 'lib/test/unit/color-scheme.rb', line 170

def to_hash
  hash = {}
  @scheme.each do |key, color|
    hash[key] = color
  end
  hash
end