Module:Paramtest: Difference between revisions

From The Deadlock Wiki
Jump to navigation Jump to search
osrsw>The Mol Man
m Protected "Module:Paramtest" (‎[edit=sysop] (indefinite))
osrsw>The Mol Man
mNo edit summary
Line 15: Line 15:


return false
return false
end
--
-- Returns the parameter if it has any content, the default (2nd param)
--
function p.default_to(param, default)
if param and param:find('%S') then
return param
else
return default
end
end
end



Revision as of 23:30, 3 November 2014

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

--
-- Tests basic properties of parameters
--

local p = {}

--
-- Tests if the parameter is empty, all white space, or undefined
--

function p.is_empty( arg )
	if not arg or not arg:find('%S') then
		return true
	end

	return false
end

--
-- Returns the parameter if it has any content, the default (2nd param)
--

function p.default_to(param, default)
	if param and param:find('%S') then
		return param
	else
		return default
	end
end

--
-- Tests if the parameter has content
-- The same as !is_empty, but this is more readily clear
--

function p.has_content( arg )
	if not arg or not arg:find('%S') then
		return false
	end

	return true
end

--
-- Tests if the parameter has been defined (regardless of content)
--

function p.is_defined( arg )
	if not arg then
		return false
	else
		return true
	end
end

--
-- Removes leading and trailing whitespace from the parameter
-- Which is unfortunately not removed when passed through invoke
--

function p.trim( arg )
	return string.gsub( arg, '^%s*(%S+)%s*$', '%1')
end

--
-- uppercases first letter
--

function p.ucfirst( arg )
	if not arg or arg:len() == 0 then
		return nil
	elseif arg:len() == 1 then
		return arg:upper()
	else
		return arg:sub(1,1):upper() .. arg:sub(2)
	end
end

--
-- uppercases first letter, lowercases everything else
--

function p.ucflc( arg )
	if not arg or arg:len() == 0 then
		return nil
	elseif arg:len() == 1 then
		return arg:upper()
	else
		return arg:sub(1,1):upper() .. arg:sub(2):lower()
	end
end

return p