diff options
| author | ruki <[email protected]> | 2015-06-10 18:25:18 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2015-06-10 18:25:18 +0800 |
| commit | 62f8e7581602d698a341db16257bd3d9304fa30d (patch) | |
| tree | df06a9cade4d74d149b924d2f6dfe0f95632e28b /xmake/scripts/base/utils.lua | |
| parent | 72faab4c7e6468d94364e2fec7c11614845d0c74 (diff) | |
trace probe verbose
Diffstat (limited to 'xmake/scripts/base/utils.lua')
| -rw-r--r-- | xmake/scripts/base/utils.lua | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/xmake/scripts/base/utils.lua b/xmake/scripts/base/utils.lua index a2efbb482..bbbc802ac 100644 --- a/xmake/scripts/base/utils.lua +++ b/xmake/scripts/base/utils.lua @@ -121,7 +121,12 @@ function utils._dump_with_level(object, exclude, level) end -- dump object -function utils.dump(object, exclude) +function utils.dump(object, exclude, prefix) + + -- dump prefix + if prefix then + io.write(prefix) + end -- dump it utils._dump_with_level(object, exclude, 0) @@ -202,5 +207,31 @@ function utils.unique(array) return array end +-- call functions +function utils.call(self, funcs, pred, ...) + + -- check + assert(self and funcs and type(funcs) == "table") + + -- call all + for _, name in ipairs(funcs) do + + -- check + assert(type(name) == "string") + + -- get function + local func = self[name] + assert(type(func) == "function") + + -- call it + local result = func(...) + + -- exists predicate? + if pred and type(pred) == "function" then + if not pred(name, result) then break end + end + end +end + -- return module: utils return utils |
