Module:Utilities

From Sekaipedia

Documentation for this module may be created at Module:Utilities/doc

local utilities = {}

function utilities.split(inputstr, sep)
	return mw.text.split(inputstr, sep)
end

function utilities.splitWithDelim(delim)
	return function(str)
		if str == nil then
			return nil
		end
		
		local list = mw.text.split(str, delim)
		for i=1,#list do
			list[i] = mw.text.trim(list[i])
		end
		
		return list
	end
end

function utilities.trim(str)
	return string.gsub(str, "^%s*(.-)%s*$", "%1")
end

function utilities.capitalize(str)
	return mw.getContentLanguage():ucfirst(str)
end

function utilities.array_index_of(arr, val)
    for i,v in ipairs(arr) do
        if v == val then
            return i
        end
    end

    return -1
end

-- https://stackoverflow.com/questions/49907620/how-to-fuse-array-in-lua/49908683
function utilities.table_concat(a, b)
	local result = {}
	for k,v in pairs(a) do
		result[k] = v
	end
	for k,v in pairs(b) do
		result[k] = v
	end
	return result
end

function utilities.editIfNil(value, func)
	if value and value ~= '' then
		if func then
			return func(value)
		end
		
		return value
	end
	
	return string.format(
		"<span class=\"plainlinks\">[%s?action=edit ? (edit)]</span>",
		tostring(mw.uri.fullUrl(mw.title.getCurrentTitle().text))
	)
end


return utilities
Cookies help us deliver our services. By using our services, you agree to our use of cookies.