Смотрите также: Extension:Variables
This module provides a Lua interface for the parser functions provided by Extension:Variables.
Использование[]
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 libraryUtil = require( 'libraryUtil' )
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local h = {}
function h.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 )
libraryUtil.checkType( 'vardefine', 1, name, 'string' )
libraryUtil.checkTypeMulti( 'vardefine', 2, value, { 'boolean', 'string', 'number', 'nil' } )
h.callParserFunction( '#vardefine', { name, tostring( value or '' ) } )
end
function p.vardefineecho( name, value )
libraryUtil.checkType( 'vardefineecho', 1, name, 'string' )
libraryUtil.checkTypeMulti( 'vardefineecho', 2, value, { 'boolean', 'string', 'number', 'nil' } )
return h.callParserFunction( '#vardefineecho', { name, tostring( value or '' ) } )
end
function p.varexists( name )
libraryUtil.checkType( 'varexists', 1, name, 'string' )
return ( h.callParserFunction( '#varexists', name ) == '1' )
end
function p.var( name, default )
libraryUtil.checkType( 'var', 1, name, 'string' )
local value = h.callParserFunction( '#var', name )
if value ~= '' then
return value
elseif default then
return default
else
return nil
end
end
--------------------------------------------------------------------------------
-- Return
--------------------------------------------------------------------------------
return p