annotate framework/env/request/default_router.lua @ 216:fd0360594636
Work on request.process(...), request.default_router(...), request.router(), request.handler(...)
author |
jbe |
date |
Mon Jan 12 03:02:26 2015 +0100 (2015-01-12) |
parents |
ba3dd4a17e3d |
children |
25a20bd1f416 |
rev |
line source |
jbe@216
|
1 --[[--
|
jbe@216
|
2 route =
|
jbe@216
|
3 request.default_router(
|
jbe@216
|
4 path -- URL path, including a leading slash
|
jbe@216
|
5 )
|
jbe@210
|
6
|
jbe@216
|
7 Default conversion from a path to a route. Called by request.router().
|
jbe@216
|
8
|
jbe@216
|
9 --]]--
|
jbe@215
|
10
|
jbe@215
|
11 function request.default_router(path)
|
jbe@216
|
12 if not path then
|
jbe@216
|
13 return nil
|
jbe@216
|
14 end
|
jbe@216
|
15 if not string.match(path, "^/") then
|
jbe@216
|
16 path = "/" .. path
|
jbe@216
|
17 end
|
jbe@216
|
18 if path == "/" then
|
jbe@216
|
19 return {module = "index", view = "index"}
|
jbe@216
|
20 end
|
jbe@216
|
21 module = string.match(path, "^/([^/]+)/$")
|
jbe@216
|
22 if module then
|
jbe@216
|
23 return {module = module, view = "index"}
|
jbe@215
|
24 end
|
jbe@216
|
25 module, action = string.match(path, "^/([^/]+)/([^/.]+)$")
|
jbe@216
|
26 if module then
|
jbe@216
|
27 return {module = module, action = action}
|
jbe@215
|
28 end
|
jbe@216
|
29 module, view, suffix = string.match(path, "^/([^/]+)/([^/.]+)%.([^/]+)$")
|
jbe@216
|
30 if module then
|
jbe@216
|
31 return {module = module, view = view, suffix = suffix}
|
jbe@216
|
32 end
|
jbe@216
|
33 module, view, id, suffix = string.match(path, "^/([^/]+)/([^/]+)/([^/.]+)%.([^/]+)$")
|
jbe@216
|
34 if module then
|
jbe@216
|
35 return {module = module, view = view, id = id, suffix = suffix}
|
jbe@216
|
36 end
|
jbe@216
|
37 return nil
|
jbe@216
|
38 end
|
jbe@210
|
39
|
jbe@216
|
40 --//--
|