summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--class.lua13
1 files changed, 12 insertions, 1 deletions
diff --git a/class.lua b/class.lua
index 22cf217..fda1e24 100644
--- a/class.lua
+++ b/class.lua
@@ -23,9 +23,20 @@ local function extend(Base)
return T
end
+local function is(obj, cls)
+ if not type(obj) == 'table' then return false end
+ local mt = getmetatable(obj).__index
+ while mt do
+ if rawequal(cls, mt) then return true end
+ mt = (getmetatable(mt) or {}).__index
+ end
+ return false
+end
+
return setmetatable({
class=class,
- extend=extend
+ extend=extend,
+ is=is,
},{__call=class})