RosettaCodeData/Task/Camel-case-and-snake-case/Lua/camel-case-and-snake-case-2.lua
2023-07-01 13:44:08 -04:00

30 lines
876 B
Lua

local function utf8Length(str)
local len = 0
for char in str:gmatch"[\1-\127\194-\244][\128-\191]*" do
len = len + 1
end
return len
end
local tests = {
"snakeCase", "snake_case",
"variable_10_case", "variable10Case",
"ɛrgo rE tHis",
"hurry-up-joe!",
"c://my-docs/happy_Flag-Day/12.doc",
" spaces ",
" internal space ",
}
local function convert(label, converter)
print(label..":")
for _, str in ipairs(tests) do
print((" "):rep(35-utf8Length(str)) .. str .. " => " .. converter(str))
end
print()
end
convert("snake_case to camelCase", function(str) return toCamelCase (str, "_") end)
convert("space case to camelCase", function(str) return toCamelCase (str, " ") end)
convert("kebab-case to camelCase", function(str) return toCamelCase (str, "-") end)
convert("camelCase to snake_case", function(str) return fromCamelCase(str, "_") end)