Route implementation for client-side routers


Route implementation for client-side routers.

$ component install component/route

Initialize a Route with a path string or regexp.

Assign setup fn used when the "page" is shown.

Assign teardown fn used to perform cleanup when an alternate "page" is shown.

Match against the given path. Returns false or an array with params matched.

var route = new Route('/user/:id/posts/:pid');
assert(false == route.match('/something'));
assert(false == route.match('/user/123'));
var ret = route.match('/user/12/posts/1');
assert('12' ==;
assert('1' ==;

should support wildcards.

var route = new Route('/file/*');
var ret = route.match('/file/js/jquery.js');
assert('js/jquery.js' == ret[0]);

should pass through regexps.

var route = new Route(/^\/foo/);
assert(false == route.match('/bar'));

should ignore querystrings.

var route = new Route('/user/:id/posts/:pid');
assert(false == route.match('/something?hey'));
var ret = route.match('/user/12/posts/1?something=here');
assert('12' ==;
assert('1' ==;

should decode the params.

var route = new Route('/user/:name');
var ret = route.match('/user/tj%20holowaychuk');
assert('tj holowaychuk' ==;