From 8f1d52128c90d08ec6da8f3d9c528ac130d4cf8c Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Mon, 25 Mar 2013 15:48:27 +0100 Subject: [PATCH] Added string.starts string.ends functions --- tests/utils.lua | 20 ++++++++++++++++++++ utils.lua | 8 ++++++++ 2 files changed, 28 insertions(+) diff --git a/tests/utils.lua b/tests/utils.lua index 74dded7..7d6a193 100644 --- a/tests/utils.lua +++ b/tests/utils.lua @@ -49,6 +49,26 @@ TestUtils = {} --class function TestUtils:test_explode() assertItemsEquals(explode(',',"1,2,3"), {'1','2','3'}) end + + function TestUtils:test_starts() + assertError(string.stats, nil, "g") + assertTrue(string.starts("goga", "g")) + assertTrue(string.starts("goga", "go")) + assertTrue(string.starts("goga", "gog")) + assertTrue(string.starts("goga", "goga")) + assertFalse(string.starts("goga", "a")) + assertError(string.starts, "goga", nil) + end + + function TestUtils:test_ends() + assertError(string.ends, nil, "g") + assertTrue(string.ends("goga", "a")) + assertTrue(string.ends("goga", "ga")) + assertTrue(string.ends("goga", "oga")) + assertTrue(string.ends("goga", "goga")) + assertFalse(string.ends("goga", "f")) + assertError(string.ends, "goga", nil) + end -- class TestUtils TestStack = {} diff --git a/utils.lua b/utils.lua index 79b3b2c..31a19ca 100644 --- a/utils.lua +++ b/utils.lua @@ -120,6 +120,14 @@ function explode(delimiter, text) return list end +function string.starts(String,Start) + return string.sub(String,1,string.len(Start))==Start +end + +function string.ends(String,End) + return End=='' or string.sub(String,-string.len(End))==End +end + -- Stack Table -- Uses a table as stack, use :push(value) and
:pop() -- Lua 5.1 compatible