Optimized luci.util.class

This commit is contained in:
Steven Barth 2008-09-10 12:22:29 +00:00
parent ba6928dce0
commit 9e2759ec34

View file

@ -59,6 +59,17 @@ end
-- Class helper routines
--
-- Instantiates a class
local function _instantiate(class, ...)
local inst = setmetatable({}, {__index = class})
if inst.__init__ then
inst:__init__(...)
end
return inst
end
--- Create a Class object (Python-style object model).
-- The class object can be instantiated by calling itself.
-- Any class functions or shared parameters can be attached to this object.
@ -74,26 +85,10 @@ end
-- @see instanceof
-- @see clone
function class(base)
local class = {}
local create = function(class, ...)
local inst = setmetatable({}, {__index = class})
if inst.__init__ then
inst:__init__(...)
end
return inst
end
local classmeta = {__call = create}
if base then
classmeta.__index = base
end
setmetatable(class, classmeta)
return class
return setmetatable({}, {
__call = _instantiate,
__index = base
})
end
--- Test whether the given object is an instance of the given class.