# File test-unit-3.3.7/lib/test/unit/color.rb, line 28
def initialize(name, options={})
@name = name
if options.has_key?(:foreground)
if options[:foreground].nil?
@background = false
else
@background = !options[:foreground]
end
else
@background = options[:background]
end
@intensity = options[:intensity]
@bold = options[:bold]
@italic = options[:italic]
@underline = options[:underline]
end
# File test-unit-3.3.7/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
# File test-unit-3.3.7/lib/test/unit/color.rb, line 104
def +(other)
MixColor.new([self, other])
end
# File test-unit-3.3.7/lib/test/unit/color.rb, line 69
def ==(other)
self.class === other and
[name, background?, intensity?,
bold?, italic?, underline?] ==
[other.name, other.background?, other.intensity?,
other.bold?, other.italic?, other.underline?]
end
# File test-unit-3.3.7/lib/test/unit/color.rb, line 49
def background?
@background
end
# File test-unit-3.3.7/lib/test/unit/color.rb, line 57
def bold?
@bold
end
# File test-unit-3.3.7/lib/test/unit/color.rb, line 100
def escape_sequence
"\e[#{sequence.join(';')}m"
end
# File test-unit-3.3.7/lib/test/unit/color.rb, line 45
def foreground?
not background?
end
# File test-unit-3.3.7/lib/test/unit/color.rb, line 53
def intensity?
@intensity
end
# File test-unit-3.3.7/lib/test/unit/color.rb, line 61
def italic?
@italic
end
# File test-unit-3.3.7/lib/test/unit/color.rb, line 77
def sequence
sequence = []
if @name == "none"
elsif @name == "reset"
sequence << "0"
else
if NAMES.include?(@name)
color_parameter = foreground? ? 3 : 4
color_parameter += 6 if intensity?
color = NAMES.index(@name)
sequence << "#{color_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