Software /
code /
prosody
Changeset
650:674531bcb5c4
Added util.multitable.set
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Sat, 27 Dec 2008 08:27:26 +0500 |
parents | 649:5f8382768530 |
children | 651:99f365b758f1 |
files | util/multitable.lua |
diffstat | 1 files changed, 17 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/util/multitable.lua Fri Dec 26 21:48:08 2008 +0500 +++ b/util/multitable.lua Sat Dec 27 08:27:26 2008 +0500 @@ -47,14 +47,25 @@ t_insert(t, (select(count, ...))); end +local function set(self, ...) + local t = self.data; + local count = select('#', ...); + for n = 1,count-2 do + local key = select(n, ...); + local tab = t[key]; + if not tab then tab = {}; t[key] = tab; end + t = tab; + end + t[(select(count-1, ...))] = (select(count, ...)); +end + local function r(t, n, _end, ...) if t == nil then return; end - if n > _end then - for key in pairs(t) do - t[key] = nil; - end + local k = select(n, ...); + if n == _end then + t[k] = nil; + return; end - local k = select(n, ...); if k then v = t[k]; if v then @@ -87,6 +98,7 @@ data = {}; get = get; add = add; + set = set; remove = remove; }; end