annotate framework/env/request/default_router.lua @ 229:bf690b4be420
Workaround for postfork-loading of multirand library
 | author | 
 jbe | 
 | date | 
 Fri Feb 27 22:45:36 2015 +0100 (2015-02-27) | 
 | parents | 
 25a20bd1f416  | 
 | children | 
 4ab91adeab6f  | 
 
 | 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@221
 | 
    18   module = string.match(path, "^([^/]+)/$")
 | 
| 
jbe@216
 | 
    19   if module then
 | 
| 
jbe@216
 | 
    20     return {module = module, view = "index"}
 | 
| 
jbe@215
 | 
    21   end
 | 
| 
jbe@221
 | 
    22   module, action = string.match(path, "^([^/]+)/([^/.]+)$")
 | 
| 
jbe@216
 | 
    23   if module then
 | 
| 
jbe@216
 | 
    24     return {module = module, action = action}
 | 
| 
jbe@215
 | 
    25   end
 | 
| 
jbe@221
 | 
    26   module, view, suffix = string.match(path, "^([^/]+)/([^/.]+)%.([^/]+)$")
 | 
| 
jbe@216
 | 
    27   if module then
 | 
| 
jbe@216
 | 
    28     return {module = module, view = view, suffix = suffix}
 | 
| 
jbe@216
 | 
    29   end
 | 
| 
jbe@221
 | 
    30   module, view, id, suffix = string.match(path, "^([^/]+)/([^/]+)/([^/.]+)%.([^/]+)$")
 | 
| 
jbe@216
 | 
    31   if module then
 | 
| 
jbe@216
 | 
    32     return {module = module, view = view, id = id, suffix = suffix}
 | 
| 
jbe@216
 | 
    33   end
 | 
| 
jbe@216
 | 
    34   return nil
 | 
| 
jbe@216
 | 
    35 end
 | 
| 
jbe@210
 | 
    36 
 | 
| 
jbe@216
 | 
    37 --//--
 |