From 0549b1e5a8a3132005e275d6026db8003cb067d2 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 26 Oct 2021 11:32:46 +0800 Subject: *rename folder --- .../Libraries/inspect/spec/unindent.lua | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Data/DefaultContent/Libraries/inspect/spec/unindent.lua (limited to 'Data/DefaultContent/Libraries/inspect/spec/unindent.lua') diff --git a/Data/DefaultContent/Libraries/inspect/spec/unindent.lua b/Data/DefaultContent/Libraries/inspect/spec/unindent.lua new file mode 100644 index 0000000..02324a1 --- /dev/null +++ b/Data/DefaultContent/Libraries/inspect/spec/unindent.lua @@ -0,0 +1,39 @@ +-- Unindenting transforms a string like this: +-- [[ +-- { +-- foo = 1, +-- bar = 2 +-- } +-- ]] +-- +-- Into the same one without indentation, nor start/end newlines +-- +-- [[{ +-- foo = 1, +-- bar = 2 +-- }]] +-- +-- This makes the strings look and read better in the tests +-- + +local getIndentPreffix = function(str) + local level = math.huge + local minPreffix = "" + local len + for preffix in str:gmatch("\n( +)") do + len = #preffix + if len < level then + level = len + minPreffix = preffix + end + end + return minPreffix +end + +local unindent = function(str) + str = str:gsub(" +$", ""):gsub("^ +", "") -- remove spaces at start and end + local preffix = getIndentPreffix(str) + return (str:gsub("\n" .. preffix, "\n"):gsub("\n$", "")) +end + +return unindent -- cgit v1.1-26-g67d0