Modul:uz-inflection

-- 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