Модуль:Tools

Материал из Указатель частей и соединений РККА 1941-1945
Перейти к:навигация, поиск
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Для документации этого модуля может быть создана страница Модуль:Tools/doc

local tools = {}
local global = mw.ext.luaglobal

---------------------------------------------------------------------- |checkargs|
function tools.checkargs( args, names, numbers )
    local res = {}
    local hasArg
    for k, v in pairs( args ) do
        hasArg = true
        v = mw.text.trim(v)
		local dsc
		if numbers and type( k ) == 'number' then
			dsc = numbers
		else
			dsc = names[k]
		end
        if dsc == nil then
--            return nil, k
			error( 'Недопустимый аргумент «' .. k .. '»' )
        elseif v == '' then
            if dsc ~= true then
                res[k] = dsc
            end
        else
            res[k] = v
        end
    end
    for k, v in pairs( names ) do
        if not res[k] then
            if v ~= true then
                res[k] = v
            end
        end
    end
    return res, hasArg
end

function tools.Log( frame )
	local args = tools.checkargs( frame:getParent().args, {}, true )
	return tools.log( args )
end

function tools.dmy( str )
	if #str == 10 then
		return string.sub( str, 9, 10 ) .. '.' .. string.sub( str, 6, 7 ) .. '.' .. string.sub( str, 1, 4 )
	elseif #str == 7 then
		return string.sub( str, 6, 7 ) .. '.' .. string.sub( str, 1, 4 )
	else
		return str
	end
end

function tools.ymd( str )
	return string.sub( str, 7, 10 ) .. '-' .. string.sub( str, 4, 5 ) .. '-' .. string.sub( str, 1, 2 )
end

function tools.log( args )
	for _, v in ipairs( args ) do
		global.add( 'szrLog', v )
	end
end

function tools.PrintLog( frame )
	local log = global.get( 'szrLog' )
	global.set( 'szrLog', nil )
	return '<br>LOG (((((( <br>' .. table.concat( log, '<br>' ) .. '<br>LOG )))))) <br>'
end

return tools