[checked revision] | [checked revision] |
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
local util_args = require ('Module:ArgsUtil') |
local util_args = require ('Module:ArgsUtil') |
||
local binser = require('binser') |
local binser = require('binser') |
||
+ | VariablesLua = mw.ext.VariablesLua |
||
local p = {} |
local p = {} |
||
function p.getVar(var) |
function p.getVar(var) |
||
− | local val = |
+ | local val = VariablesLua.var(var) |
if val == '' then |
if val == '' then |
||
return nil |
return nil |
||
Line 29: | Line 30: | ||
function p.setVar(var, val) |
function p.setVar(var, val) |
||
+ | VariablesLua.vardefine(var, val) |
||
− | mw.getCurrentFrame():callParserFunction('#vardefine:' .. var, val) |
||
return val |
return val |
||
end |
end |
Revision as of 17:07, 18 August 2020
Documentation for this module may be created at Module:VarsUtil/doc
local util_args = require ('Module:ArgsUtil')
local binser = require('binser')
VariablesLua = mw.ext.VariablesLua
local p = {}
function p.getVar(var)
local val = VariablesLua.var(var)
if val == '' then
return nil
end
return val
end
function p.getBool(var)
local val = p.getVar(var)
return util_args.castAsBool(val)
end
function p.setBool(var, val)
if type(val) == 'string' then
val = util_args.castAsBool(val)
end
if val then
p.setVar(var, 'Yes')
return
end
p.setVar(var, 'No')
end
function p.setVar(var, val)
VariablesLua.vardefine(var, val)
return val
end
function p.setVarOnlyIf(var, val)
if not val then return end
p.setVar(var, val)
end
function p.getGlobalIndex(name)
local val = p.getVar('luaGlobalIndex' .. name)
return tonumber(val or 0) or 0
end
function p.setGlobalIndex(name)
local n = p.getGlobalIndex(name) + 1
p.setVar('luaGlobalIndex' .. name, n)
return n
end
function p.resetGlobalIndex(name, val)
val = val or 0
p.setVar('luaGlobalIndex' .. name, val)
return val
end
function p.appendToList(name, val, sep)
-- this is just for helping to debug and shouldn't actually be used ever probably
sep = sep or ', '
local old_val = p.getVar(name) or ''
p.setVar(name, old_val .. sep .. val)
end
function p.log(val)
if type(val) == 'table' then
p.logObject(val)
return
end
p.appendToList('log', tostring(val))
end
function p.logObject(val)
local tbl = {}
for k, v in pairs(val) do
tbl[#tbl+1] = k .. ': ' .. tostring(v)
end
p.appendToList('log', table.concat(tbl,', '))
end
function p.clearAll(tbl)
for _, v in ipairs(tbl) do
p.setVar(v, '')
end
end
function p.setTypedVar(var, val)
local val_to_store = binser.serialize(val)
p.setVar(var, val_to_store)
end
function p.getTypedVar(var)
local val = p.getVar(var)
if not val then
return nil
end
return binser.deserialize(val)[1]
end
function p.setObject(var, val)
local val_to_store = binser.serialize(val)
p.setVar(var, val_to_store)
end
function p.getObject(var)
local val = p.getVar(var)
if not val then
return nil
end
return binser.deserialize(val)[1]
end
return p