You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
852 B
53 lines
852 B
|
|
/*! |
|
* Express - router - Collection |
|
* Copyright(c) 2010 TJ Holowaychuk <tj@vision-media.ca> |
|
* MIT Licensed |
|
*/ |
|
|
|
/** |
|
* Expose `Collection`. |
|
*/ |
|
|
|
module.exports = Collection; |
|
|
|
/** |
|
* Initialize a new route `Collection` |
|
* with the given `router`. |
|
* |
|
* @param {Router} router |
|
* @api private |
|
*/ |
|
|
|
function Collection(router) { |
|
Array.apply(this, arguments); |
|
this.router = router; |
|
} |
|
|
|
/** |
|
* Inherit from `Array.prototype`. |
|
*/ |
|
|
|
Collection.prototype.__proto__ = Array.prototype; |
|
|
|
/** |
|
* Remove the routes in this collection. |
|
* |
|
* @return {Collection} of routes removed |
|
* @api public |
|
*/ |
|
|
|
Collection.prototype.remove = function(){ |
|
var router = this.router |
|
, len = this.length |
|
, ret = new Collection(this.router); |
|
|
|
for (var i = 0; i < len; ++i) { |
|
if (router.remove(this[i])) { |
|
ret.push(this[i]); |
|
} |
|
} |
|
|
|
return ret; |
|
}; |
|
|
|
|