Module:uz-inflection

From Wiktionary, the free dictionary
Jump to navigation Jump to search

Active version Development version
  M:uz-inflection     {{uz-inflection}}     M:*/inflection     {{*/inflection}}  

Active version:

unit testcases main template table template
  M:uz-inflection/units/ru-noun     M:/.../testcases     {{ru-decl-noun-z}}     {{ru-decl-noun-table-z}}  
  M:uz-inflection/units/uz-noun     M:/.../testcases     {{uz-decl-noun}}     {{uz-decl-noun-table}}  

Documentation

Documentation for this module will be created later.


-- Inflection module v2.0.3
-- 2015-08-14

local dev_prefix = 'uz-'
-- dev_prefix = 'User:Vitalik/'  -- comment this on active version

local export = {}
local u = require("Module:uz-utils")

-- Function to load corresponding unit
local function load_unit(unit_name)
	if unit_name == '' then
		return nil
	end
	return require("Module:" .. dev_prefix .. "inflection/units/" .. unit_name);
end

-- This export function is used from testcases
function export.test(unit_name, base, args)
	local unit = load_unit(unit_name)
	return unit.forms(base, args)
end

-- This export function is used from templates
function export.get(frame)
	local base = u.get_base()
	local args = frame:getParent().args
	local unit_name = frame.args['unit']
	local unit = load_unit(unit_name)
	if unit == nil then
		return 'Error: Name of unit is absent'
	end
	return frame:expandTemplate{
		title=unit.template(base, args), 
		args=unit.forms(base, args)
	}
end

return export