mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Scribunto
synced 2024-11-27 01:30:00 +00:00
0db3d7c6d2
This exists for some common text-processing functions that aren't included in string (and therefore also aren't in mw.ustring), as well as a logical place for the "unstrip" function requested in bug 45085. Bug: 45085 Change-Id: I47356215fcc8ddeed5f901cd933a30021394bd78
49 lines
1.3 KiB
Lua
49 lines
1.3 KiB
Lua
local libraryUtil = {}
|
|
|
|
function libraryUtil.checkType( name, argIdx, arg, expectType, nilOk )
|
|
if arg == nil and nilOk then
|
|
return
|
|
end
|
|
if type( arg ) ~= expectType then
|
|
local msg = string.format( "bad argument #%d to '%s' (%s expected, got %s)",
|
|
argIdx, name, expectType, type( arg )
|
|
)
|
|
error( msg, 3 )
|
|
end
|
|
end
|
|
|
|
function libraryUtil.checkTypeForIndex( index, value, expectType )
|
|
if type( value ) ~= expectType then
|
|
local msg = string.format( "value for index '%s' must be %s, %s given",
|
|
index, expectType, type( value )
|
|
)
|
|
error( msg, 3 )
|
|
end
|
|
end
|
|
|
|
function libraryUtil.checkTypeForNamedArg( name, argName, arg, expectType, nilOk )
|
|
if arg == nil and nilOk then
|
|
return
|
|
end
|
|
if type( arg ) ~= expectType then
|
|
local msg = string.format( "bad named argument %s to '%s' (%s expected, got %s)",
|
|
argName, name, expectType, type( arg )
|
|
)
|
|
error( msg, 3 )
|
|
end
|
|
end
|
|
|
|
function libraryUtil.makeCheckSelfFunction( libraryName, varName, selfObj, selfObjDesc )
|
|
return function ( self, method )
|
|
if self ~= selfObj then
|
|
error( string.format(
|
|
"%s: invalid %s. Did you call %s with a dot instead of a colon, i.e. " ..
|
|
"%s.%s() instead of %s:%s()?",
|
|
libraryName, selfObjDesc, method, varName, method, varName, method
|
|
), 3 )
|
|
end
|
|
end
|
|
end
|
|
|
|
return libraryUtil
|