diff options
author | Stefan Wintermeyer <stefan.wintermeyer@amooma.de> | 2013-02-12 13:53:28 +0100 |
---|---|---|
committer | Stefan Wintermeyer <stefan.wintermeyer@amooma.de> | 2013-02-12 13:53:28 +0100 |
commit | c9066760fd1f5f2f892ce2be5cf2a83bb5210246 (patch) | |
tree | 82ecdd528e803ccd1b469dc13482e06cf8ea0b8e /misc/freeswitch/scripts/common/str.lua | |
parent | 0b97717b2171820dea41de8df705f8f0e4b71464 (diff) | |
parent | fb66a5e5a4c5d5f9eac4a5e8de6a286482cb55d5 (diff) |
Release a new beta.5.1-beta4
Diffstat (limited to 'misc/freeswitch/scripts/common/str.lua')
-rw-r--r-- | misc/freeswitch/scripts/common/str.lua | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/misc/freeswitch/scripts/common/str.lua b/misc/freeswitch/scripts/common/str.lua index 793c191..72ff388 100644 --- a/misc/freeswitch/scripts/common/str.lua +++ b/misc/freeswitch/scripts/common/str.lua @@ -18,6 +18,23 @@ function try(array, arguments) return result; end + +function set(array, arguments, value) + local nop, arguments_count = arguments:gsub('%.', ''); + local structure = array; + arguments:gsub('([^%.]+)', function(entry) + if arguments_count <= 0 then + structure[entry] = value; + elseif type(structure[entry]) == 'table' then + structure = structure[entry]; + else + structure[entry] = {}; + structure = structure[entry]; + end + arguments_count = arguments_count - 1; + end); +end + -- to number function to_n(value) value = tostring(value):gsub('[^%d%.%+%-]', ''); |