Module:SwitchClass
Documentation for this module may be created at Module:SwitchClass/doc
Code
local ptest = require "Module:PropertyPathTest"
local ids = require "Module:IDs"
local p={}
local function count_int_arguments(args)
local p=0
for k, v in ipairs(args) do
p=p+1
end
return p
end
p.switch = function(frame)
local item = ids.qid_normalize(frame.args["item"])
local default = frame.args["default"]
local cases = frame:getParent().args
for i = 1, count_int_arguments(cases), 2 do
if ptest.testInstance(
item,
ids.qid_normalize(cases[i])
) then
return frame:expandTemplate{
title = "Template:" .. cases[i+1],
args = { [1] = item}
}
end
end
if default then
return frame:expandTemplate{
title = "Template:" .. default,
args = { [1] = item}
}
end
end
return p