From 34ad538775dc8392f7d849fdc3bd180d74f75a7d Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Thu, 11 Feb 2016 15:44:16 +0100 Subject: [PATCH] MT#17841 ngcp/utils.lua: implement utils.string.explode_values() utils.string.explode_values("123") => {'1','12','123'} Change-Id: Ifa2260b6f53714d1fdae70485e3ccff3e0872a31 --- ngcp/utils.lua | 16 ++++++++++++++++ tests/utils.lua | 7 +++++++ 2 files changed, 23 insertions(+) diff --git a/ngcp/utils.lua b/ngcp/utils.lua index 3bfcd0c..c5f188f 100644 --- a/ngcp/utils.lua +++ b/ngcp/utils.lua @@ -256,6 +256,22 @@ function utils.explode(delimiter, text) return list end +-- from string to table with all the values of that string from 1 to len +-- "123" -> {'1', '12', '123'} +function us.explode_values(str) + local list = {} + local len + + if not str then + error("string is nil") + end + len = string.len(str) + for i=1,len do + table.insert(list, string.sub(str, 1, i)) + end + return list +end + function us.starts(String,Start) return string.sub(String,1,string.len(Start))==Start end diff --git a/tests/utils.lua b/tests/utils.lua index 95b97f5..fbee6d7 100644 --- a/tests/utils.lua +++ b/tests/utils.lua @@ -161,6 +161,13 @@ TestUtils = {} assertItemsEquals(utils.explode('=>',"1=>2=>3"), {'1','2','3'}) end + function TestUtils:test_string_explode_values() + assertError(utils.string.explode_values, nil) + assertItemsEquals(utils.string.explode_values(''), {}) + assertItemsEquals(utils.string.explode_values('1'), {'1'}) + assertItemsEquals(utils.string.explode_values('123'), {'1','12','123'}) + end + function TestUtils:test_starts() assertError(utils.string.stats, nil, "g") assertTrue(utils.string.starts("goga", "g"))