Modul:No globals: Skillnad mellan sidversioner

Från Järnvägsdata
jarnvagsdata>MusikAnimal
(Undid revision 948472525 by [[Special:Contributions/w>DiBabelYurikBot|w>DiBabelYurikBot]] ([[User talk:w>DiBabelYurikBot|talk]]))
jarnvagsdata>SimondR
Ingen redigeringssammanfattning
(Ingen skillnad)

Versionen från 21 november 2020 kl. 16.21


Denna modul orsakar ett fel om någon nil global läses eller om någon global skrivs till, med undantag för arg. För att använda, lägg till
require('Module:No globals')
längst upp på modulen med hjälp av den. arg variabeln utesluts eftersom den är nödvändigt för Scribuntos require-funktion för att fungera korrekt. (Se Scribuntos källkod här.)
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
	if k ~= 'arg' then
		error('Tried to read nil global ' .. tostring(k), 2)
	end
	return nil
end
function mt.__newindex(t, k, v)
	if k ~= 'arg' then
		error('Tried to write global ' .. tostring(k), 2)
	end
	rawset(t, k, v)
end
setmetatable(_G, mt)