annotate framework/env/request/default_router.lua @ 403:0cb4bf644f1b
Updated mondelefant.connect{...} documentation
 | author | 
 jbe | 
 | date | 
 Wed Jan 06 02:43:55 2016 +0100 (2016-01-06) | 
 | 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 --//--
 |