diff options
author | spag <spag@golwen.net> | 2013-01-29 16:28:13 +0100 |
---|---|---|
committer | spag <spag@golwen.net> | 2013-01-29 16:28:13 +0100 |
commit | bebf1d99a7a81ffd5cc3276acbf8b0317182a1af (patch) | |
tree | 9934e1223e8945d8400efb6e89c0afd4d89f9f75 | |
parent | 2f35c3caadf8932a6bdebc87259a4cf1412dc410 (diff) |
set variable function added
-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%.%+%-]', ''); |