summaryrefslogtreecommitdiff
path: root/library/lua
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-09-05 17:37:36 +0400
committerAlexander Gavrilov2012-09-05 17:37:36 +0400
commit27f169e298e658f3957aa2db1f76fe8aa20caef7 (patch)
tree8d48333005f504557d6708703c06abb703391f9b /library/lua
parent9c6fcee9a9b03b42648152a549fc019f05fff468 (diff)
downloaddfhack-27f169e298e658f3957aa2db1f76fe8aa20caef7.tar.gz
dfhack-27f169e298e658f3957aa2db1f76fe8aa20caef7.tar.bz2
dfhack-27f169e298e658f3957aa2db1f76fe8aa20caef7.tar.xz
Provide a partial application utility function to lua.
Implemented in C++ for efficiency.
Diffstat (limited to 'library/lua')
-rw-r--r--library/lua/dfhack.lua8
1 files changed, 7 insertions, 1 deletions
diff --git a/library/lua/dfhack.lua b/library/lua/dfhack.lua
index 2cbd019a..a1e89976 100644
--- a/library/lua/dfhack.lua
+++ b/library/lua/dfhack.lua
@@ -46,6 +46,7 @@ end
-- Error handling
safecall = dfhack.safecall
+curry = dfhack.curry
function dfhack.pcall(f, ...)
return xpcall(f, dfhack.onerror, ...)
@@ -118,7 +119,12 @@ function defclass(class,parent)
if parent then
setmetatable(class, parent)
else
- rawset_default(class, { init_fields = rawset_default })
+ rawset_default(class, {
+ init_fields = rawset_default,
+ callback = function(self, name, ...)
+ return dfhack.curry(self[name], self, ...)
+ end
+ })
end
return class
end