-- <pre>
-- @description Creates objects to store module info.
-- @author [[User:Becasita]]
-- @contact [[User talk:Becasita]]
-- Define class:
local InfoClass = {};
InfoClass.__index = InfoClass;
-- @description: Initialize the instance of the InfoClass.
function InfoClass.new( title )
local data = {
title = title or '',
info = {},
categories = {},
errors = {},
};
return setmetatable( data, InfoClass );
end
-- @description Add <code>key</code> info with <code>value</value>.
function InfoClass:add( key, value )
self.info[ key ] = value;
return self;
end
-- @description Get <code>key</code> info.
function InfoClass:get( key )
return self.info[ key ];
end
-- @description Remove <code>key</code> info.
function InfoClass:remove( key )
local value = self.info[ key ];
self.info[ key ] = nil;
return value;
end
-- @description Store associated category.
function InfoClass:category( category )
table.insert( self.categories, category );
return self;
end
-- @description Store error message.
function InfoClass:error( message, default, category )
self.errors.exists = true;
table.insert( self.errors, message );
if category then self:category( category ) end
return default or self;
end
-- Return instatiation method:
return {
['new'] = InfoClass.new,
}
--[[setmetatable( {}, {
--['new'] = InfoClass.new,
__call = function( ... )
return InfoClass.new( ... );
end
}]]
-- <pre>