* Rewrote OOP class constructor
* Added stub for cbi (configuration bind interface)
This commit is contained in:
parent
df0656fdf7
commit
03ad2398aa
2 changed files with 58 additions and 12 deletions
39
src/ffluci/cbi.lua
Normal file
39
src/ffluci/cbi.lua
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
--[[
|
||||||
|
FFLuCI - Configuration Bind Interface
|
||||||
|
|
||||||
|
Description:
|
||||||
|
Offers an interface for binding confiugration values to certain
|
||||||
|
data types. Supports value and range validation and basic dependencies.
|
||||||
|
|
||||||
|
FileId:
|
||||||
|
$Id$
|
||||||
|
|
||||||
|
License:
|
||||||
|
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
]]--
|
||||||
|
module("ffluci.cbi", package.seeall)
|
||||||
|
require("ffluci.util")
|
||||||
|
|
||||||
|
|
||||||
|
-- Node pseudo abstract class
|
||||||
|
Node = ffluci.util.class()
|
||||||
|
function Node.render(self)
|
||||||
|
end
|
||||||
|
function Node.append(self, obj)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
Map = ffluci.util.class(Node)
|
|
@ -27,22 +27,29 @@ limitations under the License.
|
||||||
module("ffluci.util", package.seeall)
|
module("ffluci.util", package.seeall)
|
||||||
|
|
||||||
|
|
||||||
-- Lua OO class support emulation
|
-- Lua simplified Python-style OO class support emulation
|
||||||
function class(base)
|
function class(base)
|
||||||
local clsobj = {}
|
local class = {}
|
||||||
local metatable = {__index = clsobj}
|
|
||||||
|
|
||||||
function clsobj.new()
|
local create = function(class, ...)
|
||||||
local inst = {}
|
local inst = {}
|
||||||
setmetatable(inst, metatable)
|
setmetatable(inst, {__index = class})
|
||||||
|
|
||||||
|
if inst.__init__ then
|
||||||
|
inst:__init__(...)
|
||||||
|
end
|
||||||
|
|
||||||
return inst
|
return inst
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local classmeta = {__call = create}
|
||||||
|
|
||||||
if base then
|
if base then
|
||||||
setmetatable(clsobj, {__index = base})
|
classmeta.__index = base
|
||||||
end
|
end
|
||||||
|
|
||||||
return clsobj
|
setmetatable(class, classmeta)
|
||||||
|
return class
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue