@function _radial-gradient-parser($image) {

$image: unquote($image);
$gradients: ();
$start: str-index($image, "(");
$end: str-index($image, ",");
$first-val: str-slice($image, $start + 1, $end - 1);

$prefix: str-slice($image, 1, $start);
$suffix: str-slice($image, $end, str-length($image));

$is-spec-syntax: str-index($first-val, "at");

@if $is-spec-syntax and $is-spec-syntax > 1 {
  $keyword: str-slice($first-val, 1, $is-spec-syntax - 2);
  $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
  $pos: append($pos, $keyword, comma);

  $gradients: (
    webkit-image: -webkit- + $prefix + $pos + $suffix,
    spec-image: $image
  );
}

@else if $is-spec-syntax == 1 {
  $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));

  $gradients: (
    webkit-image: -webkit- + $prefix + $pos + $suffix,
    spec-image: $image
  );
}

@else if str-index($image, "cover") or str-index($image, "contain") {
  @warn "Radial-gradient needs to be updated to conform to latest spec.";

  $gradients: (
    webkit-image: null,
    spec-image: $image
  );
}

@else {
  $gradients: (
    webkit-image: -webkit- + $image,
    spec-image: $image
  );
}

@return $gradients;

}