Interested Article - CountryCases
gaynor
- 2020-03-13
- 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
gaynor
- 2020-03-13
- 1