webmcp
annotate framework/env/slot/reset_all.lua @ 258:46f0083889a9
Initialize global variable 'app' on every request
| author | jbe |
|---|---|
| date | Sun Mar 15 01:08:00 2015 +0100 (2015-03-15) |
| parents | 78a2ae40c88e |
| children | f491011ebe16 |
| rev | line source |
|---|---|
| jbe/bsw@0 | 1 --[[-- |
| poelzi@34 | 2 slot.reset_all{ |
| jbe@47 | 3 except = except -- Reset all slots, except slots named in this list |
| poelzi@34 | 4 } |
| jbe/bsw@0 | 5 |
| jbe@47 | 6 Calling this function resets all slots to be empty. An exclusion list may be passed to the function as named argument. |
| jbe/bsw@0 | 7 |
| jbe/bsw@0 | 8 --]]-- |
| jbe/bsw@0 | 9 |
| poelzi@34 | 10 function slot.reset_all(args) |
| jbe@257 | 11 local saved |
| poelzi@34 | 12 if args and args.except then |
| jbe@257 | 13 saved = {} |
| jbe@47 | 14 for i, key in ipairs(args.except) do |
| poelzi@34 | 15 saved[key] = slot._data[key] |
| poelzi@34 | 16 end |
| poelzi@34 | 17 end |
| jbe/bsw@0 | 18 slot._data = setmetatable({}, slot._data_metatable) |
| poelzi@34 | 19 if saved then |
| jbe@47 | 20 for key, value in pairs(saved) do |
| poelzi@34 | 21 slot._data[key] = value |
| poelzi@34 | 22 end |
| poelzi@34 | 23 end |
| jbe/bsw@0 | 24 end |