diff options
Diffstat (limited to 'src/ffluci/util.lua')
-rw-r--r-- | src/ffluci/util.lua | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/src/ffluci/util.lua b/src/ffluci/util.lua deleted file mode 100644 index dfc88e3e41..0000000000 --- a/src/ffluci/util.lua +++ /dev/null @@ -1,208 +0,0 @@ ---[[ -FFLuCI - Utility library - -Description: -Several common useful Lua functions - -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.util", package.seeall) - - --- Lua simplified Python-style OO class support emulation -function class(base) - local class = {} - - local create = function(class, ...) - local inst = {} - setmetatable(inst, {__index = class}) - - if inst.__init__ then - local stat, err = pcall(inst.__init__, inst, ...) - if not stat then - error(err) - end - end - - return inst - end - - local classmeta = {__call = create} - - if base then - classmeta.__index = base - end - - setmetatable(class, classmeta) - return class -end - - --- Clones an object (deep on-demand) -function clone(object, deep) - local copy = {} - - for k, v in pairs(object) do - if deep and type(v) == "table" then - v = clone(v, deep) - end - copy[k] = v - end - - setmetatable(copy, getmetatable(object)) - - return copy -end - - --- Checks whether a table has an object "value" in it -function contains(table, value) - for k,v in pairs(table) do - if value == v then - return true - end - end - return false -end - - --- Dumps a table to stdout (useful for testing and debugging) -function dumptable(t, i) - i = i or 0 - for k,v in pairs(t) do - print(string.rep("\t", i) .. k, v) - if type(v) == "table" then - dumptable(v, i+1) - end - end -end - - --- Escapes all occurences of c in s -function escape(s, c) - c = c or "\\" - return s:gsub(c, "\\" .. c) -end - - --- Populate obj in the scope of f as key -function extfenv(f, key, obj) - local scope = getfenv(f) - scope[key] = obj -end - - --- Checks whether an object is an instanceof class -function instanceof(object, class) - local meta = getmetatable(object) - while meta and meta.__index do - if meta.__index == class then - return true - end - meta = getmetatable(meta.__index) - end - return false -end - - --- Creates valid XML PCDATA from a string -function pcdata(value) - value = value:gsub("&", "&") - value = value:gsub('"', """) - value = value:gsub("'", "'") - value = value:gsub("<", "<") - return value:gsub(">", ">") -end - - --- Resets the scope of f doing a shallow copy of its scope into a new table -function resfenv(f) - setfenv(f, clone(getfenv(f))) -end - - --- Returns the Haserl unique sessionid -function sessionid() - return ENV.SESSIONID -end - - --- Splits a string into an array (Adapted from lua-users.org) -function split(str, pat, max) - pat = pat or "\n" - max = max or -1 - - local t = {} - local fpat = "(.-)" .. pat - local last_end = 1 - local s, e, cap = str:find(fpat, 1) - - while s do - max = max - 1 - if s ~= 1 or cap ~= "" then - table.insert(t,cap) - end - last_end = e+1 - if max == 0 then - break - end - s, e, cap = str:find(fpat, last_end) - end - - if last_end <= #str then - cap = str:sub(last_end) - table.insert(t, cap) - end - - return t -end - --- Removes whitespace from beginning and end of a string -function trim (string) - return string:gsub("^%s*(.-)%s*$", "%1") -end - --- Updates given table with new values -function update(t, updates) - for k, v in pairs(updates) do - t[k] = v - end -end - - --- Updates the scope of f with "extscope" -function updfenv(f, extscope) - update(getfenv(f), extscope) -end - - --- Validates a variable -function validate(value, cast_number, cast_int) - if cast_number or cast_int then - value = tonumber(value) - end - - if cast_int and value and not(value % 1 == 0) then - value = nil - end - - return value -end
\ No newline at end of file |