# 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