Jump to content

Module:Jct/city/sandbox

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Chinissai (talk | contribs) at 16:49, 11 May 2016 (Added safeguard code.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local p = {}

local concat = table.concat
local insert = table.insert
local format = mw.ustring.format

-- ON DEPLOY: Change to main module
local statenameModuleName = "Module:Jct/statename/sandbox"

local roadDataModule = require("Module:Road data")

local state

local function stateName(args)
	local data = mw.loadData(statenameModuleName) 
	local abbr = args.state or args.province
	local countryData = data[args.country]
	return countryData and countryData[abbr] or nil
end

local function location(args, num)
	return roadDataModule.locations({
		region = state,
		sub1name = "County",
		sub2_special = args["location" .. num],
		sub2 = args["city" .. num],
		area = args["areadab" .. num],
		sub1dab = args["countydab" .. num]
	}).sub2
end

function p.city(args)
	state = stateName(args)
	local cities = {}
	local locationCount = 1
	while args['city' .. locationCount] or args['location' .. locationCount] do
		insert(cities, location(args, locationCount))
		locationCount = locationCount + 1
	end
	return concat(cities, ', ')
end

return p