• Welcome to the Kancolle Wiki!
  • If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord

Difference between revisions of "Module:Tabber"

From Kancolle Wiki
Jump to navigation Jump to search
com>Ckwng
(Created page with "local FrameObject = require('Module:FrameObject') local Tabber = BaseData{ _tag = 'tabber', _separator = '\n|-|\n' } function Tabber:create(data) data._tabs = {} return ...")
 
m (11 revisions imported)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
local FrameObject = require('Module:FrameObject')
+
local BaseData = require('Module:BaseData')
  
 
local Tabber = BaseData{
 
local Tabber = BaseData{
_tag = 'tabber',
 
 
_separator = '\n|-|\n'
 
_separator = '\n|-|\n'
 
}
 
}
  
 
function Tabber:create(data)
 
function Tabber:create(data)
 +
data = data or {}
 
data._tabs = {}
 
data._tabs = {}
return self.__index:create(data)
+
data.__tostring = self._tostring
 +
return self.__index.create(self, data)
 
end
 
end
  
 
function Tabber:add_tab(tab_name, tab_contents)
 
function Tabber:add_tab(tab_name, tab_contents)
 
table.insert(self._tabs, tab_name .. '=' .. tab_contents)
 
table.insert(self._tabs, tab_name .. '=' .. tab_contents)
self._tab_contents[tab_name] = tab_contents
 
 
end
 
end
  
function Tabber:__tostring()
+
function Tabber:_tostring()
return FrameObject():extensionTag(self._tag, table.concat(self._tabs, self._separator))
+
return mw.getCurrentFrame():preprocess('<tabber>' .. table.concat(self._tabs, self._separator) .. '</tabber>')
 
end
 
end
  
 
return Tabber
 
return Tabber

Latest revision as of 12:34, 12 May 2021

Documentation for this module may be created at Module:Tabber/doc

local BaseData = require('Module:BaseData')

local Tabber = BaseData{
	_separator = '\n|-|\n'
}

function Tabber:create(data)
	data = data or {}
	data._tabs = {}
	data.__tostring = self._tostring
	return self.__index.create(self, data)
end

function Tabber:add_tab(tab_name, tab_contents)
	table.insert(self._tabs, tab_name .. '=' .. tab_contents)
end

function Tabber:_tostring()
	return mw.getCurrentFrame():preprocess('<tabber>' .. table.concat(self._tabs, self._separator) .. '</tabber>')
end

return Tabber