Модуль:ProcessArgs

Этот модуль позволяет объединять и нормализовывать аргументы. У него есть побочный эффект, заключающийся в том, что аргументы становятся настоящей таблицей, а не пустой таблицей с метатаблицей, обеспечивающей доступ к аргументам. Это позволяет работать оператору #, а также позволяет добавлять в таблицу новые значения, чтобы они не игнорировались при итерации.

Функция norm нормализует переданные ей аргументы, удаляя предшествующие и завершающие пробелы и устанавливая пустые аргументы как равные nil. Если функции не передана таблица, она автоматически получит таблицу аргументов объекта-родителя текущего фрейма. [перевод?]

Функция merge объединит две таблицы, перезаписывая дублирующие значения во второй таблице значениями из первой таблицы, а также, если параметр norm равен true, выполняя действия функции norm. Если первый параметр не является таблицей, он используется в качестве значения для параметра norm, он автоматически получит таблицу напрямую переданных аргументов текущего фрейма и объединит её с таблицей аргументов объекта-родителя текущего фрейма.

local p = {} function p.norm( origArgs ) if type( origArgs ) ~= 'table' then origArgs = mw.getCurrentFrame():getParent().args end local args = {} for k, v in pairs( origArgs ) do v = mw.text.trim( tostring( v ) ) if v ~= '' then args[k] = v end end return args end function p.merge( origArgs, parentArgs, norm ) if type( origArgs ) ~= 'table' then norm = origArgs local f = mw.getCurrentFrame() origArgs = f.args parentArgs = f:getParent().args end local args = {} for k, v in pairs( origArgs ) do v = mw.text.trim( tostring( v ) ) if not norm or norm and v ~= '' then args[k] = v end end for k, v in pairs( parentArgs ) do v = mw.text.trim( v ) if ( not norm or norm and v ~= '' ) and not args[k] then args[k] = v end end return args end return p 
В данной статье используются материалы из статьи «Модуль:ProcessArgs» с вики-сайта Minecraft Wiki, расположенного на Фэндоме, и они распространяются согласно лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0. Авторы статьи.