public function assertValid($colour, $all = true)
{
if (array_key_exists('red', $colour) || array_key_exists('green', $colour) || array_key_exists('blue', $colour)) {
if (array_key_exists('hue', $colour) || array_key_exists('saturation', $colour) || array_key_exists('lightness', $colour)) {
throw new SassColourException('SassColour can not have HSL and RGB keys specified', SassScriptParser::$context->node);
}
if ($all && (!array_key_exists('red', $colour) || !array_key_exists('green', $colour) || !array_key_exists('blue', $colour))) {
throw new SassColourException('SassColour must have all RGB keys specified', SassScriptParser::$context->node);
}
return 'rgb';
} elseif (array_key_exists('hue', $colour) || array_key_exists('saturation', $colour) || array_key_exists('lightness', $colour)) {
if ($all && (!array_key_exists('hue', $colour) || !array_key_exists('saturation', $colour) || !array_key_exists('lightness', $colour))) {
throw new SassColourException('SassColour must have all HSL keys specified', SassScriptParser::$context->node);
}
return 'hsl';
} elseif ($all && sizeof($colour) < 3) {
throw new SassColourException('SassColour array must have at least 3 elements', SassScriptParser::$context->node);
}
}