54 lines
852 B
JavaScript
54 lines
852 B
JavaScript
|
|
||
|
/*!
|
||
|
* 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;
|
||
|
};
|
||
|
|