annotate framework/env/request/default_router.lua @ 241:3db6f3ad0703
Allow illegal routes
 | author | 
 jbe | 
 | date | 
 Sun Mar 01 01:29:03 2015 +0100 (2015-03-01) | 
 | parents | 
 4ab91adeab6f  | 
 | children | 
 db79324a13fe  | 
 
 | 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@236
 | 
    15   local module, action, view, id, suffix
 | 
| 
jbe@221
 | 
    16   if path == "" then
 | 
| 
jbe@216
 | 
    17     return {module = "index", view = "index"}
 | 
| 
jbe@216
 | 
    18   end
 | 
| 
jbe@221
 | 
    19   module = string.match(path, "^([^/]+)/$")
 | 
| 
jbe@216
 | 
    20   if module then
 | 
| 
jbe@216
 | 
    21     return {module = module, view = "index"}
 | 
| 
jbe@215
 | 
    22   end
 | 
| 
jbe@221
 | 
    23   module, action = string.match(path, "^([^/]+)/([^/.]+)$")
 | 
| 
jbe@216
 | 
    24   if module then
 | 
| 
jbe@216
 | 
    25     return {module = module, action = action}
 | 
| 
jbe@215
 | 
    26   end
 | 
| 
jbe@221
 | 
    27   module, view, suffix = string.match(path, "^([^/]+)/([^/.]+)%.([^/]+)$")
 | 
| 
jbe@216
 | 
    28   if module then
 | 
| 
jbe@216
 | 
    29     return {module = module, view = view, suffix = suffix}
 | 
| 
jbe@216
 | 
    30   end
 | 
| 
jbe@221
 | 
    31   module, view, id, suffix = string.match(path, "^([^/]+)/([^/]+)/([^/.]+)%.([^/]+)$")
 | 
| 
jbe@216
 | 
    32   if module then
 | 
| 
jbe@216
 | 
    33     return {module = module, view = view, id = id, suffix = suffix}
 | 
| 
jbe@216
 | 
    34   end
 | 
| 
jbe@216
 | 
    35   return nil
 | 
| 
jbe@216
 | 
    36 end
 | 
| 
jbe@210
 | 
    37 
 | 
| 
jbe@216
 | 
    38 --//--
 |