Difference between revisions of "Module:Infobox road/color/CAS"

From NSWiki
Jump to: navigation, search
(Created page with "local p = {} Country = {} function Country:new(obj) obj = obj or {} setmetatable(obj, self) self.__index = self return obj end function Country:color(args) local type...")
 
(Blanked the page)
 
Line 1: Line 1:
local p = {}
 
  
Country = {}
 
 
function Country:new(obj)
 
obj = obj or {}
 
setmetatable(obj, self)
 
self.__index = self
 
return obj
 
end
 
 
function Country:color(args)
 
local type = args.type
 
return self[type] or self.default
 
end
 
 
function Country:addTypesAsColor(types, color)
 
for i,type in pairs(types) do
 
self[type] = color
 
end
 
end
 
 
local colors = {}
 
do
 
function colors:color(args)
 
local headerType = args.headerType
 
local countryArg = args.country
 
local headerTypeColor = self[headerType]
 
if headerTypeColor then return headerTypeColor end
 
local success, country = pcall(self.country, self, countryArg)
 
if not(success) then
 
return 'background:#cedff2;'
 
else
 
return country:color(args)
 
end
 
end
 
function colors:country(name)
 
local color = self[name]
 
if color then return color end
 
local module = require(string.format("Module:Infobox road/color/%s", name))
 
return module.colors
 
end
 
 
do -- Single-color countries
 
colors.BEL = Country:new{default = "background:#0071B3; color:#fff;"}
 
colors.BGD = Country:new{default = "background:#2C6700; color:white;"}
 
colors.CHN = Country:new{default = "background:#006A4D; color:white;"}
 
colors.EST = Country:new{default = "background:#0079C1; color:white;"}
 
colors.EUR = Country:new{default = "background:#08842C; color:#fff;"}
 
colors.HKG = Country:new{default = "background:#006A4D; color:#fff;"}
 
colors.ISL = Country:new{default = "background:#FFD200; border:1px solid #000;"}
 
colors.NLD = Country:new{default = "background:#0079C1; color:#fff;"}
 
colors.NZL = Country:new{default = "background:#006A4D; color:#fff;"}
 
colors.UKR = Country:new{default = "background:#003F87; color:white;"}
 
colors.URY = Country:new{default = "background:#006A4D; color:white;"}
 
colors.VNM = Country:new{default = "background:#003399; color:white;"}
 
end -- Single-color countries
 
 
do -- Multi-color countries
 
do -- Albania
 
local ALB = Country:new{default = "background:#00408B; color:#fff;"}
 
ALB:addTypesAsColor({"A"}, "background:#08842C; color:#fff;")
 
colors.ALB = ALB
 
end -- Albania
 
do -- Australia
 
local AUS = Country:new{default = "background:#3A7119; color:#FFE133;"}
 
AUS:addTypesAsColor({"freeway"}, "background:#D2E2F9;")
 
AUS:addTypesAsColor({"highway", "city highway"}, "background:#E9F9D2;")
 
AUS:addTypesAsColor({"road", "rural road"}, "background:#FFFFE0;")
 
AUS:addTypesAsColor({"street"}, "background:#F9E2D2;")
 
AUS:addTypesAsColor({"track"}, "background:#fee8ab;")
 
colors.AUS = AUS
 
end -- Australia
 
do -- Austria
 
local AUT = Country:new{default = "background:#fff; border:1px solid #000;"}
 
AUT:addTypesAsColor({"A", "S", "B"}, "background:#276FB7; color:#fff;")
 
colors.AUT = AUT
 
end -- Austria
 
do -- Bulgaria
 
local BGR = Country:new{default = "background:#003F87; color:white;"}
 
BGR:addTypesAsColor({"A"}, "background:#006A4D; color:white;")
 
colors.BGR = BGR
 
end -- Bulgaria
 
do -- Croatia
 
local HRV = Country:new{default = "background:#cedff2;"}
 
HRV:addTypesAsColor({"E", "A"}, "background:#08842C; color:#fff;")
 
HRV:addTypesAsColor({"D"}, "background:#0066CC; color:#fff;")
 
HRV:addTypesAsColor({"Z"}, "background:#FFCC33; color:black;")
 
colors.HRV = HRV
 
end -- Croatia
 
do -- Cyprus
 
local CYP = Country:new{default = "background:#003F87; color:#FFC000;"}
 
CYP:addTypesAsColor({"A"}, "background:#005024; color:#FFC000;")
 
colors.CYP = CYP
 
end -- Cyprus
 
do -- Czech Republic
 
local CZE = Country:new{default = "background:#003F87; color:white;"}
 
CZE:addTypesAsColor({"D", "R"}, "background:#006A4D; color:white;")
 
colors.CZE = CZE
 
end -- Czech Republic
 
do -- Denmark
 
local DNK = Country:new{default = "background:#039; color:#fff;"}
 
DNK:addTypesAsColor({"E", "M"}, "background:#006A4D; color:#fff;")
 
DNK:addTypesAsColor({"S"}, "background:#fff; border:1px solid #af1e2d; color:#af1e2d;")
 
colors.DNK = DNK
 
end -- Germany
 
do -- France
 
local FRA = Country:new{default = "background:#fff; border:1px solid #000;"}
 
FRA:addTypesAsColor({"A"}, "background:#0079C1; color:#fff;")
 
FRA:addTypesAsColor({"N"}, "background:#006A4D; color:#fff;")
 
colors.FRA = FRA
 
colors.MTQ = FRA
 
end -- France
 
do -- Georgia
 
local GEO = Country:new{default = "background:#cedff2;"}
 
GEO:addTypesAsColor({"A", "International"}, "background:#039; color:#fff;")
 
colors.GEO = GEO
 
end -- Georgia
 
do -- Germany
 
local DEU = Country:new{default = "background:#cedff2;"}
 
DEU:addTypesAsColor({"A", "Autobahn"}, "background:#039; color:#fff;")
 
DEU:addTypesAsColor({"B", "Bundesstraße", "Bundesstrasse"}, "background:#FC3; color:black")
 
colors.DEU = DEU
 
end -- Germany
 
do -- Greece
 
local GRC = Country:new{default = "background:#0079C1; color:#FFF;"}
 
GRC:addTypesAsColor({"A"}, "background:#006A4D; color:#FFF;")
 
colors.GRC = GRC
 
end -- Greece
 
do -- Hungary
 
local HUN = Country:new{default = "background:#006A4D; color:#fff;"}
 
HUN:addTypesAsColor({"M"}, "background:#0079C1; color:#fff;")
 
colors.HUN = HUN
 
end -- Hungary
 
                do -- Iran
 
local IRN = Country:new{default = "background:#cedff2;"}
 
IRN:addTypesAsColor({"freeway"}, "background:#06c; color:#fff;")
 
IRN:addTypesAsColor({"expressway"}, "background:#22B14C; color:#fff;")
 
IRN:addTypesAsColor({"road"}, "background:#22B14C; color:#fff;")
 
IRN:addTypesAsColor({"boulevard"}, "background:#fff; color:#000;")
 
IRN:addTypesAsColor({"street"}, "background:#fff; color:#000;")
 
colors.IRN = IRN
 
end -- Iran
 
do -- Republic of Ireland
 
local IRL = Country:new{default = "background:#cedff2;"}
 
IRL:addTypesAsColor({"M"}, "background:#0079C1; color:#fff;")
 
IRL:addTypesAsColor({"N"}, "background:#00703C; color:#FFD200;")
 
IRL:addTypesAsColor({"R"}, "background:#fff; border:1px solid #000;")
 
colors.IRL = IRL
 
end -- Republic of Ireland
 
do -- Italy
 
local ITA = Country:new{default = "background:#cedff2;"}
 
ITA:addTypesAsColor({"A"}, "background:#08842C; color:#fff;")
 
ITA:addTypesAsColor({"SS"}, "background:#003F87; color:#fff;")
 
colors.ITA = ITA
 
end -- Italy
 
do -- Malaysia
 
local MYS = Country:new{default = "background:#0079C1; color:#fff;"}
 
MYS:addTypesAsColor({"E"}, "background:#006A4D; color:#fff;")
 
colors.MYS = MYS
 
end -- Malaysia
 
do -- Poland
 
local POL = Country:new{default = "background:#006A4D; color:#fff;"}
 
POL:addTypesAsColor({"A", "S"}, "background:#0079C1; color:#fff;")
 
colors.POL = POL
 
end --Poland
 
do -- Slovakia
 
local SVK = Country:new{default = "background:#0079C1; color:#fff;"}
 
SVK:addTypesAsColor({"D", "R"}, "background:#006A4D; color:#fff;")
 
colors.SVK = SVK
 
end -- Slovakia
 
do -- South Africa
 
local ZAF = Country:new{default = "background:#006A4D; color:#FFF;"}
 
ZAF:addTypesAsColor({"M", "N"}, "background:#0079C1; color:#FFF;")
 
colors.ZAF = ZAF
 
end -- South Africa
 
do -- Spain
 
local ESP = Country:new{default = "background:#E8E8E8;"}
 
ESP:addTypesAsColor({"A", "AP"}, "background:#039; color:#fff;")
 
ESP:addTypesAsColor({"N"}, "background:#f00; color:#fff;")
 
colors.ESP = ESP
 
end -- Spain
 
do -- Sri Lanka
 
local LKA = Country:new{default = "background:#006A4D; color:#fff;"}
 
LKA:addTypesAsColor({"E"}, "background:#0000CD; color:#fff;")
 
LKA:addTypesAsColor({"A"}, "background:#006A4D; color:#fff;")
 
colors.LKA = LKA
 
end -- Sri Lanka
 
do -- Turkey
 
local TUR = Country:new{default = "background:#006A4D; color:#fff;"}
 
TUR:addTypesAsColor({"state", "D"}, "background:#003F87; color:#fff;")
 
colors.TUR = TUR
 
end -- Turkey
 
do -- United States
 
local USA = Country:new{default = "background:#006A4D; color:white;"}
 
USA:addTypesAsColor({"FFH", "FR", "NER", "Rec", "RE", "Park"}, "background:#704214; color:white;")
 
colors.USA = USA
 
end -- United States
 
end -- Multi-color countries
 
 
    do -- Built-in header types
 
colors["under construction"] = "background:#fc6;"
 
colors["const"] = "background:#fc6;"
 
colors["uc"] = "background:#fc6;"
 
colors["historic"] = "background:#704214; color:white;"
 
colors["historical"] = "background:#704214; color:white;"
 
colors["hist"] = "background:#704214; color:white;"
 
colors["scenic"] = "background:#704214; color:white;"
 
colors["decommissioned"] = "background:#AAA;"
 
colors["former"] = "background:#AAA;"
 
end -- Built-in header types
 
end
 
 
function p._color(args)
 
return colors:color(args)
 
end
 
 
function p.color(frame)
 
local pframe = frame:getParent()
 
local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself
 
local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template
 
 
local function emptyParam(param)
 
local empty = {[''] = true, ['¬'] = true}
 
if not(param) or empty[param] then
 
return nil
 
else
 
return param
 
end
 
end
 
 
local state = config.state or args.state
 
state = emptyParam(state)
 
local province = config.province or args.province
 
province = emptyParam(province)
 
local type = config.type or args.type
 
local subtype = config.subtype or args.subtype or nil
 
 
local headerType = args.header_type or config.header_type
 
headerType = emptyParam(headerType)
 
if headerType then
 
headerType = string.lower(headerType)
 
end
 
 
local countryArg = config.country or args.country
 
countryArg = emptyParam(countryArg)
 
local country = countryArg
 
if not(country) then
 
if colors[headerType] then
 
country = ''
 
else
 
local stateParam = state or province
 
if not(stateParam) then
 
country = ''
 
else
 
local countryMask = require "Module:Infobox road/meta/mask/country"
 
country = countryMask._country(stateParam, countryArg)
 
end
 
end
 
end
 
 
return p._color{country=country, state=state, province=province, type=type, subtype=subtype, headerType=headerType}
 
end
 
 
return p
 

Latest revision as of 17:35, 30 October 2014

Documentation for this module may be created at Module:Infobox road/color/CAS/doc