Module:Static/doc: Difference between revisions
mNo edit summary |
|||
Line 21: | Line 21: | ||
== Dev spec == | == Dev spec == | ||
Because data stored through this module can be invoked by any modules used in the same page. To avoid being interfered with by other modules, a module '''MUST''' store data in their own namespace. For example in "Module:Example": | Because data stored through this module can be invoked by any modules used in the same page. To avoid being interfered with by other modules, a module '''MUST''' store data in their own namespace, and '''NEVER''' modify data in other namespace. | ||
For example, in "Module:Example": | |||
<syntaxhighlight lang='lua'> | <syntaxhighlight lang='lua'> | ||
... | ... |
Revision as of 14:42, 24 April 2024
Usage
This module returns a table that can store data that persists in between multiple {{#Invoke:}}
calls.
Example:
local p = {}
function p.main()
local static = require( 'Module:Static' )
static.x = ( static.x or 0 ) + 1
return static.x
end
return p
If the above code sample was stored in Module:foo
and then {{#Invoke:foo|main}} {{#Invoke:foo|main}}
would result in 1 2
.
Dev spec
Because data stored through this module can be invoked by any modules used in the same page. To avoid being interfered with by other modules, a module MUST store data in their own namespace, and NEVER modify data in other namespace.
For example, in "Module:Example":
...
local static = require( 'Module:Static' )
if not static.Example then
static.Example = {}
end
static.Example.exampleData = 3
...
Data stored by a module, must be stored in a sub-table with the same name of that module (capitalize the first letter, and all spaces replaced with underscores). This sub-table should being initialized immediately after the invocation of this module.