Module:Sandbox/ProcrastinatingReader/ib

This is an old revision of this page, as edited by ProcrastinatingReader (talk | contribs) at 12:23, 5 December 2020 (c). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local getArgs = require('Module:Arguments').getArgs

local p = {}

local function dataValue(frame, settlementName, parameterName, itemName)
	return frame:expandTemplate{ title = 'Data '..settlementName..' municipality', args = {
		parameterName,
		itemName
	}}
end

local function getNetValue(frame, argName)
	local args = getArgs(frame)
	local argType = args['arg_type']
	local net = args['area_'..argType..'_'..argName] or dataValue(frame, args['subdivision_name'], 'area_'..argType..'_'..argName, args['name'])
	return net
end

function p.nativeName(frame)
	local val = frame.args[1]
	
	if val then
		local match = mw.ustring.match(val, "{{[Ii]nfobox (%a*)")
		--if true then return match end
		if match and match[1] then
			return match[1]
		end
	end
	
	return ""
end

function p.area(frame)
	local args = getArgs(frame)
	
	return frame:expandTemplate{ title = 'infobox_settlement/areadisp', args = {
		['km2'] = getNetValue(frame, 'km2'),
		['ha'] = getNetValue(frame, 'ha'),
		['acre'] = getNetValue(frame, 'acre'),
		['sqmi'] = getNetValue(frame, 'sq_mi'),
		['dunam'] = getNetValue(frame, 'dunam'),
		['link'] = args['dunam_link'],
		['pref'] = args['unit_pref'],
		['name'] = args['subdivision_name'],
		['mag'] = args['area_magnitude']
	}}
end

return p