Module:User:Vitalik/inflection

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

Development version:

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

Documentation

edit

Documentation for this module will be created later.


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

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

local export = {}
local u = require("Module: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