Module:Traits
Jump to navigation
Jump to search
Documentation for this module may be created at Module:Traits/doc
local p = { }
local traits = mw.loadData("Module:Traits/List");
local errorMsg = "'''Invalid Trait Name. Refer to [[Module:Traits]] for help.'''"
function p.getList ()
return traits
end
function p.isValid (frame)
local trait = frame.args[1] or frame.args["trait"]
for k, v in pairs(traits) do
if v["name"] == trait then
return 'true'
end
end
return 'false'
end
function p.isValidLocal (trait)
for k, v in pairs(traits) do
if v["name"] == trait then
return 'true'
end
end
return 'false'
end
function p.getTrait(frame)
local trait = frame.args[1] or frame.args["trait"]
for k, v in pairs(traits) do
if v["name"] == trait or k == trait then
return v
end
end
error("Trait not found: " .. tostring(trait))
end
function p.getTraitID (frame)
local trait = frame.args[1] or frame.args["trait"]
for k, v in pairs(traits) do
if v["name"] == trait then
return k
end
end
end
function p.getTraitParamOrDefault (frame, param, valueIfEmpty)
local trait = p.getTrait(frame)
if trait == nil then
return errorMsg
end
if trait[param] == nil then
return param .. " is undefined for " .. trait["name"]
end
return trait[param] ~= "" and trait[param] or valueIfEmpty
end
function p.getDesc (frame)
return p.getTraitParamOrDefault(frame, "desc", "N/A")
end
function p.get(frame)
local parameter = frame.args[2] or frame.args["parameter"]
return p.getTraitParamOrDefault(frame, parameter, "N/A")
end
function p.getParam (frame)
local trait = p.getTrait(frame)
local param = frame.args[2] or frame.args["param"]
return trait[param]
end
return p