# File lib/cairo/color.rb, line 35
    def parse_hex_color(value)
      case value
      when /\A#((?:#{HEX_RE}){3,4})\z/ #
        RGB.new(*$1.scan(/./).collect {|value| value.hex / 15.0})
      when /\A#((?:#{HEX_RE}{2,2}){3,4})\z/ #
        RGB.new(*$1.scan(/.{2,2}/).collect {|value| value.hex / 255.0})
      when /\A#((?:#{HEX_RE}{4,4}){3,4})\z/ #
        RGB.new(*$1.scan(/.{4,4}/).collect {|value| value.hex / 65535.0})
      else
        message = "invalid hex color format: #{value} should be "
        message << "#RGB, #RGBA, #RRGGBB, #RRGGBBAA, #RRRRGGGGBBBB "
        message << "or #RRRRGGGGBBBBAAAA"
        raise ArgumentError, message
      end
    end