Ir al contenido

Módulo:Wikidata/cemaxcayotl

Īhuīcpa Huiquipedia, in yōllōxoxouhqui cēntlamatilizāmoxtli

La documentación para este módulo puede ser creada en Módulo:Wikidata/cemaxcayotl/doc

local p = {}
local vals = mw.loadData('Módulo:Wikidata/cemaxcayotl/datos')
local formatoNumero	= require('Módulo:Wikidata/Formatos').formatoNumero2
local elementoTabla	= require('Módulo:Tablas').elemento

-- @param string val el valor a buscar
function p.main(val)
    q = string.sub(val, 32)
    return vals[q]
end

-- Función para formatear un valor numérico con su unidad.
-- @param table object El objeto 'datavalue'
-- @param bool right Dónde colocar la unidad
-- (a la derecha por defecto; 'false' para colocarla a la izquierda)
-- @param string separador Un separador ('' (string vacío) por defecto)
-- @param bool plural Agregar '-plural' al string correspondiente al item de
-- Wikidata a buscar entre la lista de unidades, y devolver su variante plural.
-- @return string Si el tipo de valor 'datavalue.type' es 'quantity', devuelve el valor 
-- 'datavalue.value.amount' concatenado con 'datavalue.value.unit', de estar este disponible.
-- Si el tipo de valor 'datavalue.type' es diferente de 'quantity',
-- simplemente devuelve 'datavalue.value'
function p.numeroUnidad(object, right, separador)
	local Valor			= elementoTabla(object, 'value')
	local Tipo			= elementoTabla(object, 'type')
	local Separador 	= separador
	local Unidad
	
	if Tipo == 'quantity' then
		Unidad	= elementoTabla(Valor, 'unit')
		Valor	= formatoNumero(string.sub(elementoTabla(Valor, 'amount'), 2))

		if Unidad then
			Unidad = p.main(Unidad .. '-plural') or p.main(Unidad)
			if Unidad then
				if right == false then
					if not Separador then Separador = '' end
					return Unidad .. Separador .. Valor
				end
				if not Separador then Separador = ' ' end
				return Valor .. Separador .. Unidad
			end
		end
	end
	return Valor
end

return p