class TaskJuggler::Painter::Color

A description of the color. The color is stored internally as an RGB value. Common names are provided for many popular colors.

Constants

NamedColors

Public Class Methods

new(*args) click to toggle source

Create a new Color object.

# File lib/taskjuggler/Painter/Color.rb, line 173
def initialize(*args)
  if args.length == 1
    unless NamedColors.include?(args[0])
      raise "Unknown color name #{args[0]}"
    end

    @r, @g, @b = NamedColors[args[0]]
  elsif args.length == 3
    args.each do |v|
      unless v >= 0 && v < 256
        raise ArgumentError, "RGB values (#{args.join(', ')}) must " +
                             "be between 0 and 255."
      end
    end

    @r, @g, @b = args
  elsif args.length == 4
    unless args[0] >= 0 && args[0] < 360
      raise ArgumentError, "Hue value must be between 0 and 360"
    end
    unless args[1] >= 0 && args[1] <= 255
      raise ArgumentError, "Saturation value (#{args[1]}) must be " +
                           "between 0 and 255"
    end
    unless args[2] >= 0 && args[2] <= 255
      raise ArgumentError, "Color value (#{args[2]}) must be " +
                           "between 0 and 255"
    end
    @r, @g, @b = hsvToRgb(*args[0..2])
  else
    raise ArgumentError
  end
end

Public Instance Methods

to_hsv() click to toggle source
# File lib/taskjuggler/Painter/Color.rb, line 211
def to_hsv
  rgbToHsv(@r, @g, @b)
end
to_rgb() click to toggle source
# File lib/taskjuggler/Painter/Color.rb, line 207
def to_rgb
  [ @r, @g, @b ]
end
to_s() click to toggle source

Convert the RGB value into a String format that is used in HTML.

# File lib/taskjuggler/Painter/Color.rb, line 216
def to_s
  format("#%02x%02x%02x", @r, @g, @b)
end