From 03ad2398aae1f745266118a9e94ed4636a3872eb Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Sun, 16 Mar 2008 18:11:22 +0000 Subject: * Rewrote OOP class constructor * Added stub for cbi (configuration bind interface) --- src/ffluci/util.lua | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'src/ffluci/util.lua') diff --git a/src/ffluci/util.lua b/src/ffluci/util.lua index 3004f552e6..6e0d8675a3 100644 --- a/src/ffluci/util.lua +++ b/src/ffluci/util.lua @@ -27,22 +27,29 @@ limitations under the License. module("ffluci.util", package.seeall) --- Lua OO class support emulation +-- Lua simplified Python-style OO class support emulation function class(base) - local clsobj = {} - local metatable = {__index = clsobj} + local class = {} - function clsobj.new() - local inst = {} - setmetatable(inst, metatable) - return inst - end + local create = function(class, ...) + local inst = {} + setmetatable(inst, {__index = class}) + + if inst.__init__ then + inst:__init__(...) + end + + return inst + end + + local classmeta = {__call = create} if base then - setmetatable(clsobj, {__index = base}) + classmeta.__index = base end - return clsobj + setmetatable(class, classmeta) + return class end -- cgit v1.2.3