webmcp

annotate framework/env/slot/reset_all.lua @ 34:e19b0b5c46ba

allow execptions an slot.reset_all()

this is usefull when an error is detected deep into a view where you want redirect
to something usefull, but still save some slots like notice and error slots
author Daniel Poelzleithner <poelzi@poelzi.org>
date Wed Oct 06 16:14:33 2010 +0200 (2010-10-06)
parents 9fdfb27f8e67
children 09f749330d13
rev   line source
jbe/bsw@0 1 --[[--
poelzi@34 2 slot.reset_all{
poelzi@34 3 except = except, -- Reset all slots, except slots named in this list
poelzi@34 4 }
jbe/bsw@0 5
jbe/bsw@0 6 Calling this function resets all slots to be empty.
jbe/bsw@0 7
jbe/bsw@0 8 --]]--
jbe/bsw@0 9
poelzi@34 10 function slot.reset_all(args)
poelzi@34 11 local saved = {}
poelzi@34 12 if args and args.except then
poelzi@34 13 for i,key in ipairs(args.except) do
poelzi@34 14 saved[key] = slot._data[key]
poelzi@34 15 end
poelzi@34 16 end
jbe/bsw@0 17 slot._data = setmetatable({}, slot._data_metatable)
poelzi@34 18 if saved then
poelzi@34 19 for key,value in pairs(saved) do
poelzi@34 20 slot._data[key] = value
poelzi@34 21 end
poelzi@34 22 end
jbe/bsw@0 23 end

Impressum / About Us