Module:BaseTable
Revision as of 19:27, 23 March 2015 by com>Ckwng (maybe returning something would be useful...)
Documentation for this module may be created at Module:BaseTable/doc
local BaseData = require('Module:BaseData')
local BaseTable = BaseData{
_table_start = [[{| class="wikitable"]],
_row_starter = "|-",
_header_template = "",
_column_header_cell_template = "! ${value}",
_cell_color = {
},
_cell = [[| colspan="1" rowspan="${rowspan}" style="text-align: ${text_align}; background-color: ${bg_color}; padding:5px 5px 5px 5px;" |${values.value}]],
_column_cell_templates = {
},
_good_stat_color = "#ffff40",
_outstanding_stat_color = "#73ff4d",
_transparent = "transparent",
_start_align = "start",
_center_align = "center",
_notes_suffix = "_notes",
_highlight_suffix = "_highlight",
_table_end = [[|}]],
_operators = {
["<"] = function(x,y) return x < y end,
[">"] = function(x,y) return x > y end,
},
}
function BaseTable:Table(args)
return self{
_args = args,
}:create_table()
end
function BaseTable:get_bg_color(default, value, operator, outstanding, good)
if not value then
return default or self._transparent
end
local comparison = self._operators[operator or ">"]
if outstanding and comparison(value, tonumber(outstanding)) then
return self._outstanding_stat_color
elseif good and comparison(value, tonumber(good)) then
return self._good_stat_color
else
return default or self._transparent
end
end
function BaseTable.compare_values(val1, val2)
if #val1 == #val2 then
for value_type, value in pairs(val1) do
if value ~= val2[value_type] then
return false
end
end
else
return false
end
return true
end
return BaseTable