Module:Sandbox/RexxS/Unitsdemo

-- Demo of a module that takes a QID from a Wikidata unit entry

-- and returns the code for that unit which Template:Convert can accept

-- can also return the name of the unit, if required

local p = {}

require('Module:Sandbox/RexxS/Units')

p.sing = function(frame)

local QID = mw.text.trim(frame.args[1] or "")

if QID and unitByQid[QID] then

return unitByQid[QID].singular

else

return "singular not known"

end

end

p.plur = function(frame)

local QID = mw.text.trim(frame.args[1] or "")

if QID and unitByQid[QID] then

if unitByQid[QID].plural then

return unitByQid[QID].plural

elseif unitByQid[QID].singular then

-- no plural, but a singular exists, so add 's':

return unitByQid[QID].singular .. 's'

end

else

return "plural not known"

end

end

p.conv = function(frame)

local QID = mw.text.trim(frame.args[1] or "")

if QID and unitByQid[QID] then

return unitByQid[QID].convertcode

else

return "convert code not known"

end

end

return p