postal.js/example/node/node_modules/express/lib/router/collection.js

52 lines
849 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;
};