Module:Sandbox/Artoria2e5/Fallback/doc

From English Wikipedia @ Freddythechick


Usage

This module provides a function which adds fallback functionalities to a given table args according to the fallback sequence given in arg_aliases. Note that this module currently only supports indexing, i.e. __index.

Parameters

args
The table to add fallback functionalities.
arg_aliases
A table of the form { [key] = { fallback1, fallback2... } }.

Example

The following snippet adds template parameter aliases to a metatable obtained from Module:Arguments.

<syntaxhighlight lang=lua> local getArgs = require('Module:Arguments').getArgs local makeFallback = require('Module:Sandbox/Artoria2e5/Fallback') local p = {}

function p.main(frame)

   local args = makeFallback(getArgs(frame), {
       ["foo_bar"] = {"foobar", "foo", "bar"}
   })
   -- Try calling this template with |foo=42.
   return (args["foo_bar"] or "nothing here!")

end

return p </syntaxhighlight>

The following snippet shows basic usage of indexing fallback.

<syntaxhighlight lang=lua> local makeFallback = require('Module:Arguments/Fallback') table = {

   ["bar"] = "crunchy"

}

makeFallback(table, {

   ["foo_bar"] = {"foobar", "foo", "bar"}

})

return table["foo_bar"] </syntaxhighlight>

The following snippet creates a fallback list with all fallback names aliasing back to the main name.

<syntaxhighlight lang=lua> local makeFallback = require('Module:Sandbox/Artoria2e5/Fallback') table = {

   ["bar"] = "crunchy"

} makeFallback(table, {

   ["foo_bar"] = {"foobar", "foo", "bar"},
   ["foo"]     = {"foo_bar"}, 
   ["foobar"]  = {"foo_bar"},
   ["bar"]     = {"foo_bar"}

}) return table["foo"] </syntaxhighlight>