Aller au contenu

Module:No globals

Une page de Wikiversité, la communauté pédagogique libre.

info Documentation du Module:No globals : v · d · m · h.

Ce module est un méta-module, il produit une erreur lors de la lecture d’une variable globale "nil", ainsi que lors de l’écriture de toute variable globale.

Pour l’utiliser, ajoutez require('Module:No globals')au sommet du model dans lequel vous souhaitez l’employer. La variable arg est exclue car elle est nécessaire au fonctionnement de Scribunto, require . (Voir le code source ici.)


Traduction réalisée à partir de w:en:Module:No globals/doc.




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)