webservices/node_modules/oauth2orize/lib/unorderedlist.js

84 lines
1.6 KiB
JavaScript

/**
* `UnorderedList` constructor.
*
* @api public
*/
function UnorderedList(items) {
if (typeof items == 'string') {
items = items.split(' ');
}
this._items = items || [];
this.__defineGetter__('length', this._length);
}
/**
* Check if list is equal to `other` list.
*
* @param {UnorderedList} other
* @return {Boolean}
* @api public
*/
UnorderedList.prototype.equalTo = function(other) {
if (!(other instanceof UnorderedList)) {
other = new UnorderedList(other);
}
if (this.length != other.length) { return false; }
for (var i = 0, len = this._items.length; i < len; i++) {
var item = this._items[i];
if (other._items.indexOf(item) == -1) {
return false;
}
}
return true;
};
/**
* Check if list contains `val`
*
* @param {String} val
* @return {Boolean}
* @api public
*/
UnorderedList.prototype.contains = function(val) {
return this._items.indexOf(val) != -1;
};
/**
* Check if list contains any element in `arr`
*
* @param {Array} arr
* @return {Boolean}
* @api public
*/
UnorderedList.prototype.containsAny = function(arr) {
for (var i = 0, len = arr.length; i < len; i++) {
if (this._items.indexOf(arr[i]) != -1) { return true; }
}
return false;
};
/**
* String representation of list.
*
* @return {String}
* @api private
*/
UnorderedList.prototype.toString = function() {
return this._items.join(' ');
};
/**
* Length of list.
*
* @return {Number}
* @api private
*/
UnorderedList.prototype._length = function() {
return this._items.length;
};
/**
* Expose `UnorderedList`.
*/
module.exports = UnorderedList;