/// Pass in a comparison string, and it will call the corresponding function.
/// @param {String} $v1
/// @param {String} $comparator
/// @param {String} $v2
/// @return {Boolean}
/// @example scss
///   $cmp: cmp('1.2.3', '==', '0.1.2');
///   -> false
///   $cmp: cmp('1.2.3', '===', '0.1.2');
///   -> false
///   $cmp: cmp('1.2.3', '>', '0.1.2');
///   -> true
///   $cmp: cmp('1.2.3', '>=', '0.1.2');
///   -> true
///   $cmp: cmp('1.2.3', '!=', '0.1.2');
///   -> true
///   $cmp: cmp('1.2.3', '!==', '0.1.2');
///   -> true
///   $cmp: cmp('1.2.3', '<', '0.1.2');
///   -> false
///   $cmp: cmp('1.2.3', '<=', '0.1.2');
///   -> false
@function cmp($v1, $comparator, $v2) {
  @if ($comparator == '===') {
    @return ($v1 == $v2);
  }

  @if ($comparator == '!==') {
    @return ($v1 != $v2);
  }

  $mapping: (
    '==': 'eq',
    '!=': 'neq',
    '>': 'gt',
    '>=': 'gte',
    '<': 'lt',
    '<=': 'lte',
  );

  @return call(map-get($mapping, $comparator), $v1, $v2);
}
