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) return not arg or not arg:find('%S') 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

-- -- Returns a list of paramaters if it has any content, or the default -- function p.defaults(...) local ret = {} for i, v in ipairs(...) do		if v[1] and v[1]:find('%S') then table.insert(ret,v[1]) else -- or false, because nil is removed table.insert(ret,v[2] or false) end end return unpack(ret) end

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

function p.has_content(arg) return string.find(arg or '', '%S') 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