(Criou a página com "-------------------------------------------------------------------------------- -- Imports --------------------------------------------------------------------------------...") |
(atualizado) |
||
Linha 3: | Linha 3: | ||
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
||
− | local |
+ | local util = require( 'libraryUtil' ) |
+ | local checkType = util.checkType |
||
+ | local checkTypeMulti = util.checkTypeMulti |
||
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
||
Linha 9: | Linha 11: | ||
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
||
− | local |
+ | local frame |
− | function |
+ | local function callParserFunction( func, args ) |
if not frame then |
if not frame then |
||
frame = mw.getCurrentFrame() |
frame = mw.getCurrentFrame() |
||
end |
end |
||
− | |||
return frame:callParserFunction( func, args ) |
return frame:callParserFunction( func, args ) |
||
end |
end |
||
Linha 26: | Linha 27: | ||
function p.vardefine( name, value ) |
function p.vardefine( name, value ) |
||
− | + | checkType( 'vardefine', 1, name, 'string' ) |
|
− | + | checkTypeMulti( 'vardefine', 2, value, { 'boolean', 'string', 'number', 'nil' } ) |
|
+ | local value = tostring( value or '' ) |
||
− | + | callParserFunction( '#vardefine', { name, value } ) |
|
end |
end |
||
function p.vardefineecho( name, value ) |
function p.vardefineecho( name, value ) |
||
− | + | checkType( 'vardefineecho', 1, name, 'string' ) |
|
− | + | checkTypeMulti( 'vardefineecho', 2, value, { 'boolean', 'string', 'number', 'nil' } ) |
|
+ | local value = tostring( value or '' ) |
||
− | return |
+ | return callParserFunction( '#vardefineecho', { name, value } ) |
end |
end |
||
function p.varexists( name ) |
function p.varexists( name ) |
||
− | + | checkType( 'varexists', 1, name, 'string' ) |
|
− | return ( |
+ | return ( callParserFunction( '#varexists', name ) == '1' ) |
end |
end |
||
function p.var( name, default ) |
function p.var( name, default ) |
||
− | + | checkType( 'var', 1, name, 'string' ) |
|
− | local value = |
+ | local value = callParserFunction( '#var', name ) |
if value ~= '' then |
if value ~= '' then |
||
return value |
return value |
Edição atual desde as 18h48min de 27 de agosto de 2018
Veja também: Extension:Variables
This module provides a Lua interface for the parser functions provided by Extension:Variables.
Usage[]
Function names are identical to the parser function names.
Variables.vardefineecho[]
Returns the value as it was stored (as a string). Should only be used to verify the stored value, not for inline declarations.
Differences[]
- Returns
nil
instead of empty strings (usep.varexists()
to check for variables holding an empty string). varexists()
returns a boolean instead of1
ornil
.
Tests[]
All tests passed.
Name | Expected | Actual | |
---|---|---|---|
test_var_defined | |||
test_var_defined_empty | |||
test_var_defined_empty_default | |||
test_var_not_defined | |||
test_var_not_defined_default | |||
test_vardefine_boolean | |||
test_vardefine_function_throws | |||
test_vardefine_nil | |||
test_vardefine_number | |||
test_vardefine_string | |||
test_vardefine_table_throws | |||
test_vardefineecho_boolean | |||
test_vardefineecho_function_throws | |||
test_vardefineecho_nil | |||
test_vardefineecho_number | |||
test_vardefineecho_returns | |||
test_vardefineecho_string | |||
test_vardefineecho_table_throws | |||
test_varexists_false | |||
test_varexists_true |
--------------------------------------------------------------------------------
-- Imports
--------------------------------------------------------------------------------
local util = require( 'libraryUtil' )
local checkType = util.checkType
local checkTypeMulti = util.checkTypeMulti
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local frame
local function callParserFunction( func, args )
if not frame then
frame = mw.getCurrentFrame()
end
return frame:callParserFunction( func, args )
end
--------------------------------------------------------------------------------
-- Functions
--------------------------------------------------------------------------------
local p = {}
function p.vardefine( name, value )
checkType( 'vardefine', 1, name, 'string' )
checkTypeMulti( 'vardefine', 2, value, { 'boolean', 'string', 'number', 'nil' } )
local value = tostring( value or '' )
callParserFunction( '#vardefine', { name, value } )
end
function p.vardefineecho( name, value )
checkType( 'vardefineecho', 1, name, 'string' )
checkTypeMulti( 'vardefineecho', 2, value, { 'boolean', 'string', 'number', 'nil' } )
local value = tostring( value or '' )
return callParserFunction( '#vardefineecho', { name, value } )
end
function p.varexists( name )
checkType( 'varexists', 1, name, 'string' )
return ( callParserFunction( '#varexists', name ) == '1' )
end
function p.var( name, default )
checkType( 'var', 1, name, 'string' )
local value = callParserFunction( '#var', name )
if value ~= '' then
return value
elseif default then
return default
else
return nil
end
end
--------------------------------------------------------------------------------
-- Return
--------------------------------------------------------------------------------
return p