webmcp
view framework/env/request/add_variable.lua @ 255:9e4be058959d
New functions request.add_initializer(...) and request.add_variable(...) to allow per-request initialization; Merged request.process() with request.handler(...)
| author | jbe | 
|---|---|
| date | Sat Mar 14 23:39:47 2015 +0100 (2015-03-14) | 
| parents | |
| children | 41be09ce6aa3 | 
 line source
     1 --[[--
     2 request.add_variable(
     3   tbl,                 -- table where the variable is stored
     4   key,                 -- name of variable (key within the table)
     5   value                -- optional value for initialization
     6 )
     8 Marks a field of a table to be re-initialized for every request. If this variable (i.e. the field of the table) is modified before the first requst is being handled (e.g. during configuration or pre-/post-fork initializers), then the modified value will be used for re-initialization on every request. See env/request/__init.lua for an example.
    10 --]]--
    12 function request.add_variable(tbl, key, value)
    13   local initialized_value
    14   tbl[key] = value
    15   request.add_initializer(function(first)
    16     if first then
    17       initialized_value = tbl[key]
    18     else
    19       tbl[key] = initialized_value
    20     end
    21   end)
    22 end
