Dokumentation för denna modul finns på /dok (redigera), /test


Syfte redigera

Modulens syfte är att bistå andra moduler med information om h3-koder. Att konvertera mellan kortformer och olika långformer. "H3" kommer från rubriknivån som används på uppslag, vilket är den rubriknivå som brukar ange ordklass eller motsvarande. Se Wiktionary:Stilguide#Ordklassrubriken respektive Wiktionary:Stilguide#Ordklasskategorisering.

Användning redigera

Den här modulen bör bara användas av andra moduler, inte direkt från mallar.
local h3 = require("Modul:h3")

local short_h3 = h3.getShort("preposition")
local singular_h3 = h3.getLongSing("prep")
local singular_first_letter_capitalized_h3 = h3.getLongSingUCFirst("prep")
local plural_h3 = h3.getLongPlur("prep")
local plural_first_letter_capitalized_h3 = h3.getLongPlurUCFirst("prep")
local determined_form_singular_h3 = h3.getLongDetSing("prep")
local determined_form_singular_first_letter_capitalized_h3 = h3.getLongDetSingUCFirst("prep")
local is_prep_a_h3_code = h3.hasH3("prep")
local is_prepositioner_a_plural_form_of_h3 = h3.hasH3("Prepositioner")

Specifikation redigera

getShort
1= h3-kod eller valfri långform (i.e. "prep" eller "preposition", "prepositioner", "prepositionen"), inte skiftlägeskänsligt
Returnerar h3-koden.
Default-värde: "".
getLongSing
1= h3-kod eller valfri långform, inte skiftlägeskänsligt
Default-värde: "".
Returnerar långformen i singular, t.ex. "preposition" för h3-koden "prep".
getLongSingUCFirst
1= h3-kod eller valfri långform, inte skiftlägeskänsligt
Returnerar långformen i singular med första bokstaven versaliserad, t.ex. "Preposition" för h3-koden "prep".
Default-värde: "".
getLongPlur
1= h3-kod eller valfri långform, inte skiftlägeskänsligt
Returnerar långformen i plural, t.ex. "prepositioner" för h3-koden "prep".
Default-värde: "".
getLongPlurUCFirst
1= h3-kod eller valfri långform, inte skiftlägeskänsligt
Returnerar långformen i plural med första bokstaven versaliserad, t.ex. "Prepositioner" för h3-koden "prep".
Default-värde: "".
getLongDetSing
1= h3-kod eller valfri långform, inte skiftlägeskänsligt
Returnerar långformen i bestämd form singular, t.ex. "prepositionen" för h3-koden "prep".
Default-värde: "".
getLongDetSingUCFirst
1= h3-kod eller valfri långform, inte skiftlägeskänsligt
Returnerar långformen i bestämd form singular med första bokstaven versaliserad, t.ex. "Prepositionen" för h3-koden "prep".
Default-värde: "".
hasH3
1= h3-kod eller valfri långform, inte skiftlägeskänsligt
Returnerar ett booleskt värde för om h3-objektet kan hittas.
Default-värde: false.

Tester redigera

All tests passed. (refresh)

Text Expected Actual
test1_get_long_sing:
Passed h3.getLongSing("subst") substantiv substantiv
Passed h3.getLongSing("prep") preposition preposition
Passed h3.getLongSing("Preposition") preposition preposition
Passed h3.getLongSing("Prepositioner") preposition preposition
Passed h3.getLongSing("Prepositionen") preposition preposition
Text Expected Actual
test2_get_long_sing_ucfirst:
Passed h3.getLongSingUCFirst("subst") Substantiv Substantiv
Passed h3.getLongSingUCFirst("prep") Preposition Preposition
Passed h3.getLongSingUCFirst("preposition") Preposition Preposition
Text Expected Actual
test3_get_long_plur:
Passed h3.getLongPlur("subst") substantiv substantiv
Passed h3.getLongPlur("prep") prepositioner prepositioner
Passed h3.getLongPlur("Preposition") prepositioner prepositioner
Text Expected Actual
test4_get_long_plur_ucfirst:
Passed h3.getLongPlurUCFirst("subst") Substantiv Substantiv
Passed h3.getLongPlurUCFirst("prep") Prepositioner Prepositioner
Passed h3.getLongPlurUCFirst("preposition") Prepositioner Prepositioner
Text Expected Actual
test5_get_short:
Passed h3.getShort("subst") subst subst
Passed h3.getShort("prep") prep prep
Passed h3.getShort("preposition") prep prep
Passed h3.getShort("Preposition") prep prep
Text Expected Actual
test6_get_long_det_sing:
Passed h3.getLongDetSing("subst") substantivet substantivet
Passed h3.getLongDetSing("prep") prepositionen prepositionen
Passed h3.getLongDetSing("Preposition") prepositionen prepositionen
Text Expected Actual
test7_get_long_det_sing_ucfirst:
Passed h3.getLongDetSingUCFirst("subst") Substantivet Substantivet
Passed h3.getLongDetSingUCFirst("prep") Prepositionen Prepositionen
Passed h3.getLongDetSingUCFirst("preposition") Prepositionen Prepositionen
Text Expected Actual
test8_has_h3:
Passed h3.hasH3("subst") true true
Passed h3.hasH3("Substantiv") true true
Passed h3.hasH3("xyz") false false
Text Expected Actual
test9_return_default:
Passed h3.getShort("wrongh3short")
Passed h3.getLongSing("wrongh3long")
Passed h3.getLongPlur("wrongh3long")
Passed h3.getLongDetSing("wrongh3long")


local export = {}
local h3_objects = mw.loadData("Modul:h3/data")

local function ucFirst(str)
	return mw.ustring.gsub(str, "^%l", mw.ustring.upper)
end

function export.getLongSing(short_or_long_h3)
	local lowercase_short_or_long_h3 = mw.ustring.lower(short_or_long_h3)
	local h3_obj = h3_objects[lowercase_short_or_long_h3] or {long_sing = ""}
	return h3_obj.long_sing
end

function export.getLongSingUCFirst(short_or_long_h3)
	local lowercase_short_or_long_h3 = mw.ustring.lower(short_or_long_h3)
	local h3_obj = h3_objects[lowercase_short_or_long_h3] or {long_sing = ""}
	return ucFirst(h3_obj.long_sing)
end

function export.getLongPlur(short_or_long_h3)
	local lowercase_short_or_long_h3 = mw.ustring.lower(short_or_long_h3)
	local h3_obj = h3_objects[lowercase_short_or_long_h3] or {long_plur = ""}
	return h3_obj.long_plur
end

function export.getLongPlurUCFirst(short_or_long_h3)
	local lowercase_short_or_long_h3 = mw.ustring.lower(short_or_long_h3)
	local h3_obj = h3_objects[lowercase_short_or_long_h3] or {long_plur = ""}
	return ucFirst(h3_obj.long_plur)
end

function export.getShort(short_or_long_h3)
	local lowercase_short_or_long_h3 = mw.ustring.lower(short_or_long_h3)
	local h3_obj = h3_objects[lowercase_short_or_long_h3] or {short = ""}
	return h3_obj.short
end

function export.getLongDetSing(short_or_long_h3)
	local lowercase_short_or_long_h3 = mw.ustring.lower(short_or_long_h3)
	local h3_obj = h3_objects[lowercase_short_or_long_h3] or {long_det_sing = ""}
	return h3_obj.long_det_sing
end

function export.getLongDetSingUCFirst(short_or_long_h3)
	local lowercase_short_or_long_h3 = mw.ustring.lower(short_or_long_h3)
	local h3_obj = h3_objects[lowercase_short_or_long_h3] or {long_det_sing = ""}
	return ucFirst(h3_obj.long_det_sing)
end

function export.hasH3(short_or_long_h3)
	local lowercase_short_or_long_h3 = mw.ustring.lower(short_or_long_h3)
	local h3_obj = h3_objects[lowercase_short_or_long_h3]
	local has_h3 = not not h3_obj
	return has_h3
end

return export