webmcp
annotate framework/env/request/default_router.lua @ 438:ea8419658535
Another change to make <db_object>:try_save() work properly with "document_column"
(use "_col" proxy also for accessing self._col[primary_key.json_doc])
(use "_col" proxy also for accessing self._col[primary_key.json_doc])
| author | jbe |
|---|---|
| date | Wed Jan 20 21:06:07 2016 +0100 (2016-01-20) |
| parents | 545ec2e3eafa |
| children | 32b79658e5ae |
| 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@221 | 15 if path == "" then |
| jbe@216 | 16 return {module = "index", view = "index"} |
| jbe@216 | 17 end |
| jbe@347 | 18 local static = string.match(path, "^static/([-./0-9A-Z_a-z]*)$") |
| jbe@250 | 19 if static then |
| jbe@358 | 20 -- Note: sanitizer is in request.handler(...) |
| jbe@347 | 21 return {static = static} |
| jbe@250 | 22 end |
| jbe@250 | 23 local module, action, view, id, suffix |
| jbe@221 | 24 module = string.match(path, "^([^/]+)/$") |
| jbe@216 | 25 if module then |
| jbe@216 | 26 return {module = module, view = "index"} |
| jbe@215 | 27 end |
| jbe@221 | 28 module, action = string.match(path, "^([^/]+)/([^/.]+)$") |
| jbe@216 | 29 if module then |
| jbe@216 | 30 return {module = module, action = action} |
| jbe@215 | 31 end |
| jbe@221 | 32 module, view, suffix = string.match(path, "^([^/]+)/([^/.]+)%.([^/]+)$") |
| jbe@216 | 33 if module then |
| jbe@216 | 34 return {module = module, view = view, suffix = suffix} |
| jbe@216 | 35 end |
| jbe@221 | 36 module, view, id, suffix = string.match(path, "^([^/]+)/([^/]+)/([^/.]+)%.([^/]+)$") |
| jbe@216 | 37 if module then |
| jbe@216 | 38 return {module = module, view = view, id = id, suffix = suffix} |
| jbe@216 | 39 end |
| jbe@216 | 40 return nil |
| jbe@216 | 41 end |
| jbe@210 | 42 |
| jbe@216 | 43 --//-- |