添加的内容 删除的内容
sctools>Alistair3149 无编辑摘要 |
小 (导入1个版本:Import Module Templates) |
||
第1行: | 第1行: | ||
-- Imported from: https://runescape.wiki/w/Module:Paramtest |
|||
--[[ |
--[[ |
||
{{Helper module |
{{Helper module |
||
第15行: | 第13行: | ||
|fname4 = defaults{ {arg1,arg2},...} |
|fname4 = defaults{ {arg1,arg2},...} |
||
|ftype4 = {String, Any value}... |
|ftype4 = {String, Any value}... |
||
|fuse4 = Does the same as <code>default_to()</code> run over every table passed |
|fuse4 = Does the same as <code>default_to()</code> run over every table passed; for technical reasons, all <code>nil</code> are replaced with <code>false</code> |
||
|fname5 = table_is_empty(arg) |
|||
|ftype5 = Table |
|||
|fuse5 = Returns true if the table has no content, it does not check if the content of the table contains anything |
|||
|fname6 = table_has_content(arg) |
|||
|ftype6 = Table |
|||
|fuse6 = returns true if the table has content, it does not check if the content of the table contains anything |
|||
}} |
}} |
||
--]] |
--]] |
||
local checkType, checkTypeForNamedArg |
|||
do |
|||
local _libraryUtil = require("libraryUtil"); |
|||
checkType = _libraryUtil.checkType; |
|||
checkTypeForNamedArg = _libraryUtil.checkTypeForNamedArg; |
|||
⚫ | |||
-- |
-- |
||
-- Tests basic properties of parameters |
-- Tests basic properties of parameters |
||
第44行: | 第28行: | ||
function p.is_empty(arg) |
function p.is_empty(arg) |
||
return not string.find(arg or '', '%S') |
return not string.find(arg or '', '%S') |
||
end |
|||
-- |
|||
-- Tests if the table parameter is empty |
|||
-- |
|||
function p.table_is_empty(arg) |
|||
for _, _ in pairs(arg) do |
|||
return false |
|||
end |
|||
return true |
|||
end |
end |
||
第72行: | 第45行: | ||
-- Returns a list of paramaters if it has any content, or the default |
-- Returns a list of paramaters if it has any content, or the default |
||
-- |
-- |
||
function p.defaults( |
function p.defaults(...) |
||
checkType("defaults", 1, args, "table"); |
|||
local ret = {} |
local ret = {} |
||
for i, v in ipairs( |
for i, v in ipairs(...) do |
||
if string.find(v[1] or '', '%S') then |
|||
checkTypeForNamedArg("defaults", i, v, "table"); |
|||
table.insert(ret,v[1]) |
|||
else |
|||
-- or false, because nil is removed |
|||
table.insert(ret,v[2] or false) |
|||
⚫ | |||
end |
end |
||
return unpack(ret |
return unpack(ret) |
||
end |
end |
||
第89行: | 第65行: | ||
function p.has_content(arg) |
function p.has_content(arg) |
||
return string.find(arg or '', '%S') |
return string.find(arg or '', '%S') |
||
end |
|||
-- |
|||
-- Tests if the table parameter has content |
|||
-- The same as !table_is_empty, but this is more readily clear |
|||
-- |
|||
function p.table_has_content(arg) |
|||
for _, _ in pairs(arg) do |
|||
return true |
|||
end |
|||
return false |
|||
end |
end |
||
2023年8月6日 (日) 08:04的版本
该说明文档嵌入自 Module:Paramtest/doc,可通过讨论页面进行更改请求。
Function list |
---|
L 28 — p.is_empty L 36 — p.default_to L 47 — p.defaults L 65 — p.has_content L 73 — p.ucfirst L 87 — p.ucflc |
Module:Paramtest is a helper module to be used by other modules. See Module:Paramtest on RuneScape Wiki for more details.
--[[
{{Helper module
|name=Paramtest
|fname1 = is_empty(arg)
|ftype1 = String
|fuse1 = Returns true if arg is not defined or contains only whitespace
|fname2 = has_content(arg)
|ftype2 = String
|fuse2 = Returns true if arg exists and does not only contain whitespace
|fname3 = default_to(arg1,arg2)
|ftype3 = String, Any value
|fuse3 = If arg1 exists and does not only contain whitespace, the function returns arg1, otherwise returns arg2
|fname4 = defaults{ {arg1,arg2},...}
|ftype4 = {String, Any value}...
|fuse4 = Does the same as <code>default_to()</code> run over every table passed; for technical reasons, all <code>nil</code> are replaced with <code>false</code>
}}
--]]
--
-- 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 string.find(arg or '', '%S')
end
--
-- Returns the parameter if it has any content, the default (2nd param)
--
function p.default_to(arg, default)
if string.find(arg or '', '%S') then
return arg
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 string.find(v[1] or '', '%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