On Fanlore, users with accounts can edit pages including user pages, can create pages, and more. Any information you publish on a page or an edit summary will be accessible by the public and to Fanlore personnel. Because Fanlore is a wiki, information published on Fanlore will be publicly available forever, even if edited later. Be mindful when sharing personal information, including your religious or political views, health, racial background, country of origin, sexual identity and/or personal relationships. To learn more, check out our Terms of Service and Privacy Policy. Select "dismiss" to agree to these terms.
Module:No globals
This module is currently protected from editing as it is a high-use module. Edits made to it will affect many pages. Please discuss changes on the talk page before implementing them. Test changes in the module's /sandbox or in your sandbox. |
Overview
This module causes an error if any nil global is read or if any global is written to, except arg. To use, add require('Module:No globals')
to the top of the module using it. The arg variable is excluded because it is necessary for Scribunto's require function to work properly.
Copyright
This page uses content originally from Wikipedia's Module:No globals page; Wikipedia content is licensed under a Creative Commons Attribution-ShareAlike License 4.0. (view page authors).
|
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)