پودمان:Article history/Category

از اسلامیکال
نسخهٔ تاریخ ‏۱۶ سپتامبر ۲۰۲۳، ساعت ۱۳:۳۲ توسط Aboammar (بحث | مشارکت‌ها) (صفحه‌ای تازه حاوی «------------------------------------------------------------------------------- -- Category class -- This module makes a Category class for use in Module:Article history. -- It provides a unified interface for the creation of category links. With -- this class, categories can passed between objects without concerns about -- interoperability and still have their values and sort keys easily -- accessible. ----------------------------...» ایجاد کرد)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

توضیحات این پودمان می‌تواند در پودمان:Article history/Category/توضیحات قرار گیرد.

-------------------------------------------------------------------------------
-- Category class
-- This module makes a Category class for use in [[Module:Article history]].
-- It provides a unified interface for the creation of category links. With
-- this class, categories can passed between objects without concerns about
-- interoperability and still have their values and sort keys easily
-- accessible.
-------------------------------------------------------------------------------

local checkType = require('libraryUtil').checkType
local CATEGORY_NS_TEXT = mw.site.namespaces[14].name

local Category = {}
Category.__index = Category

function Category.new(category, sortKey)
	checkType('Category.new', 1, category, 'string')
	checkType('Category.new', 2, sortKey, 'string', true)
	local obj = setmetatable({}, Category)
	obj.category = category
	obj.sortKey = sortKey
	return obj
end

function Category:__tostring()
	if self.sortKey then
		return string.format(
			'[[%s:%s|%s]]',
			CATEGORY_NS_TEXT,
			self.category,
			self.sortKey
		)
	else
		return string.format(
			'[[%s:%s]]',
			CATEGORY_NS_TEXT,
			self.category
		)
	end
end

return Category