Selector.js 797 Bytes
// Generated by CoffeeScript 1.9.3
var CSSSelect, Selector;

CSSSelect = require('css-select');

module.exports = Selector = (function() {
  var self;

  self = Selector;

  function Selector(text1) {
    this.text = text1;
    this._fn = CSSSelect.compile(this.text);
    this.priority = self.calculatePriority(this.text);
  }

  Selector.prototype.matches = function(elem) {
    return CSSSelect.is(elem, this._fn);
  };

  Selector.calculatePriority = function(text) {
    var n, priotrity;
    priotrity = 0;
    if (n = text.match(/[\#]{1}/g)) {
      priotrity += 100 * n.length;
    }
    if (n = text.match(/[a-zA-Z]+/g)) {
      priotrity += 2 * n.length;
    }
    if (n = text.match(/\*/g)) {
      priotrity += 1 * n.length;
    }
    return priotrity;
  };

  return Selector;

})();