From 3f5f89451e912039d70eeed9ed3373c72ab1e3f9 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Thu, 29 May 2008 19:18:49 +0000 Subject: * libs/web: Added .leaf attribute to dispatching tree to stop dispatching at a certain node * libs/web: Added rewrite target for advanced aliasing --- libs/web/luasrc/dispatcher.lua | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'libs/web/luasrc') diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua index 14801c633..d1fcdcd0f 100644 --- a/libs/web/luasrc/dispatcher.lua +++ b/libs/web/luasrc/dispatcher.lua @@ -98,7 +98,7 @@ function dispatch() for i, s in ipairs(request) do c = c.nodes[s] - if not c then + if not c or c.leaf then break end @@ -282,6 +282,21 @@ function alias(...) end end +function rewrite(n, ...) + local req = arg + return function() + for i=1,n do + table.remove(request, 1) + end + + for i,r in ipairs(req) do + table.insert(request, i, r) + end + + dispatch() + end +end + function call(name) return function() getfenv()[name]() end end -- cgit v1.2.3