Interested Article - CountryCases
- 2021-11-07
- 1
Функции
_debracket
Аналог шаблона {{ без кв. скобок }}
genitive
Реализация шаблона
{{
страна в родительном падеже
}}
. Функцию
_genitive
можно также вызывать из других модулей.
locative
Реализация шаблона
{{
в стране
}}
. Функцию
_locative
можно также вызывать из других модулей. Если входящий параметр не задан в
таблице данных
, выбирается предлог «в» и вызывается
одноимённая функция из модуля Ru
.
Тесты
При изменении модуля проверяйте, что все тесты здесь выполняются.
local p = {}
local brackets = "%[%[(.+)%]%]"
function p._debracket(s)
return mw.ustring.match(s, brackets) or s
end
local countries = require('Модуль:CountryCases/data')
function p._genitive(frame, s)
local country = p._debracket(s)
if countries[country] ~= nil and countries[country].gen ~= nil then
return countries[country].gen
end
return frame:callParserFunction('#ifexist', {country, country})
end
function p._locative(frame, s)
local country = p._debracket(s)
if countries[country] ~= nil then
return countries[country].loc
end
local ru = require('Модуль:Ru')
return 'в ' .. ru.locative(frame)
end
local function wrapper(frame, func_name)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
local args = getArgs(frame)
return p[func_name](frame, args[1])
end
function p.genitive(frame)
return wrapper(frame, '_genitive')
end
function p.locative(frame)
return wrapper(frame, '_locative')
end
return p
- 2021-11-07
- 1