From cf0458b7a85841eef6f8247591eff4dfdd28b735 Mon Sep 17 00:00:00 2001 From: Thiago de Arruda Date: Fri, 18 Jan 2013 13:54:18 -0300 Subject: [PATCH] Updated package.json and added support for PATCH --- package.json | 2 +- src/router.coffee | 5 ++++- test/router.coffee | 17 +++++++++++------ test/support/http.js | 2 +- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 89b62b0..1618a68 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "author": "Thiago de Arruda ", "name": "flask-router", - "version": "0.0.3", + "version": "0.0.4", "description": "Flask-inspired routing system for node and connect.\nNice if you just need a routing system without depending on connect, or need routing middleware without all features provided by express.", "main": "./lib/router.js", "repository": { diff --git a/src/router.coffee b/src/router.coffee index d20a72b..f02884d 100644 --- a/src/router.coffee +++ b/src/router.coffee @@ -234,6 +234,7 @@ class Router POST: [] PUT: [] DELETE: [] + PATCH: [] @compiled = false @@ -390,8 +391,10 @@ module.exports = (parsers) -> r.register('put', 'PUT', pattern, handlers...) del: (pattern, handlers...) -> r.register('del', 'DELETE', pattern, handlers...) + patch: (pattern, handlers...) -> + r.register('patch', 'PATCH', pattern, handlers...) all: (pattern, handlers...) -> - for method in ['GET', 'POST', 'PUT', 'DELETE'] + for method in ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'] r.register('all', method, pattern, handlers...) return handlers } diff --git a/test/router.coffee b/test/router.coffee index baaac5d..f0b69c2 100644 --- a/test/router.coffee +++ b/test/router.coffee @@ -27,6 +27,10 @@ describe 'Rules', -> (req, res, next) -> res.write('p3'); next(), (req, res, next) -> res.write('p4'); res.end() + router.patch '/patch-route', (req, res) -> + res.write('patched!') + res.end() + it 'should match simple patterns', (done) -> app.request() .get('/$imple/.get/pattern$') @@ -46,16 +50,17 @@ describe 'Rules', -> it 'should pipe request through all handlers', (done) -> app.request() .get('/^pattern/that/uses/many/handlers') - .end (res) -> - res.body.should.eql('part1part2part3') - done() + .expect('part1part2part3', done) it 'should cancel pipeline when handler ends the request', (done) -> app.request() .get('/cancel') - .end (res) -> - res.body.should.eql('p1p2') - done() + .expect('p1p2', done) + + it 'can also be registered to patch methods', (done) -> + app.request() + .patch('/patch-route') + .expect('patched!', done) describe 'Pathname normalization', -> diff --git a/test/support/http.js b/test/support/http.js index 913a916..ba86954 100644 --- a/test/support/http.js +++ b/test/support/http.js @@ -2,7 +2,7 @@ * Module dependencies. */ var EventEmitter = require('events').EventEmitter - , methods = ['get', 'post', 'put', 'delete', 'head'] + , methods = ['get', 'post', 'put', 'delete', 'head', 'patch'] , connect = require('connect') , http = require('http');