Module:Paramtest

-- -- 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

-- -- 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