diff options
author | Steven Barth <steven@midlink.org> | 2008-03-16 18:11:22 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-03-16 18:11:22 +0000 |
commit | 03ad2398aae1f745266118a9e94ed4636a3872eb (patch) | |
tree | 91a99877badec89f5e8f4e23fc6280ccce812f6b /src/ffluci/util.lua | |
parent | df0656fdf7cff7cb127c11b6284efc108825e36f (diff) |
* Rewrote OOP class constructor
* Added stub for cbi (configuration bind interface)
Diffstat (limited to 'src/ffluci/util.lua')
-rw-r--r-- | src/ffluci/util.lua | 27 |
1 files changed, 17 insertions, 10 deletions
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 |