Class: Test::Unit::Color
- Inherits:
-
Object
show all
- Defined in:
- lib/test/unit/color.rb
Defined Under Namespace
Classes: Error, ParseError
Constant Summary
collapse
- NAMES =
["black", "red", "green", "yellow",
"blue", "magenta", "cyan", "white"]
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, options = {}) ⇒ Color
Returns a new instance of Color.
28
29
30
31
32
33
34
35
36
|
# File 'lib/test/unit/color.rb', line 28
def initialize(name, options={})
@name = name
@foreground = options[:foreground]
@foreground = true if @foreground.nil?
@intensity = options[:intensity]
@bold = options[:bold]
@italic = options[:italic]
@underline = options[:underline]
end
|
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
27
28
29
|
# File 'lib/test/unit/color.rb', line 27
def name
@name
end
|
Class Method Details
.parse_256_color(string) ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/test/unit/color.rb', line 11
def parse_256_color(string)
case string
when /\A([0-5])([0-5])([0-5])\z/
red, green, blue = $1, $2, $3
red.to_i * 36 + green.to_i * 6 + blue.to_i + 16
else
message = "must be 'RGB' format and R, G and B " +
"are in 0-5: #{string.inspect}"
raise ParseError, message
end
end
|
Instance Method Details
#+(other) ⇒ Object
93
94
95
|
# File 'lib/test/unit/color.rb', line 93
def +(other)
MixColor.new([self, other])
end
|
#==(other) ⇒ Object
58
59
60
61
62
63
64
|
# File 'lib/test/unit/color.rb', line 58
def ==(other)
self.class === other and
[name, foreground?, intensity?,
bold?, italic?, underline?] ==
[other.name, other.foreground?, other.intensity?,
other.bold?, other.italic?, other.underline?]
end
|
#bold? ⇒ Boolean
46
47
48
|
# File 'lib/test/unit/color.rb', line 46
def bold?
@bold
end
|
#escape_sequence ⇒ Object
89
90
91
|
# File 'lib/test/unit/color.rb', line 89
def escape_sequence
"\e[#{sequence.join(';')}m"
end
|
#foreground? ⇒ Boolean
38
39
40
|
# File 'lib/test/unit/color.rb', line 38
def foreground?
@foreground
end
|
#intensity? ⇒ Boolean
42
43
44
|
# File 'lib/test/unit/color.rb', line 42
def intensity?
@intensity
end
|
#italic? ⇒ Boolean
50
51
52
|
# File 'lib/test/unit/color.rb', line 50
def italic?
@italic
end
|
#sequence ⇒ Object
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/test/unit/color.rb', line 66
def sequence
sequence = []
if @name == "none"
elsif @name == "reset"
sequence << "0"
else
if NAMES.include?(@name)
foreground_parameter = foreground? ? 3 : 4
foreground_parameter += 6 if intensity?
color = NAMES.index(@name)
sequence << "#{foreground_parameter}#{color}"
else
sequence << (foreground? ? "38" : "48")
sequence << "5"
sequence << self.class.parse_256_color(@name).to_s
end
end
sequence << "1" if bold?
sequence << "3" if italic?
sequence << "4" if underline?
sequence
end
|
#underline? ⇒ Boolean
54
55
56
|
# File 'lib/test/unit/color.rb', line 54
def underline?
@underline
end
|