// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

/**
 * @fileoverview blessing pattern matcher
 * @private
 */
module.exports = blessingMatches;

// A blessing matches a pattern iff one of the following holds:
// - the pattern is '...' which is matched by all blessings.
// - the pattern ends in '/$' and the blessing is the same as the
//   pattern string with the '/$' stripped out.
// - the pattern does not end in '/$' and the blessing is an extension
//   of the pattern.
function blessingMatches(blessing, pattern) {
  // TODO(ataly, ashankar): Do we need to check that the pattern is valid?
  if (pattern === '...') {
    return true;
  }
  var blessingParts = blessing.split('/');
  var patternParts = pattern.split('/');

  for (var i = 0; i < patternParts.length; i++) {
    // If there is a '$' at the end of the pattern then
    // we have a match if there are no more blessingParts
    // left
    if (patternParts[i] === '$') {
      return i === patternParts.length-1 && i === blessingParts.length;
    }

    if ((i >= blessingParts.length) || (blessingParts[i] !== patternParts[i])) {
      return false;
    }
  }
  return true;
}
