From 7eee6f70b4ea6db8f5f1888fd5142c51e03fe588 Mon Sep 17 00:00:00 2001 From: Bart van Strien Date: Mon, 28 May 2018 18:56:39 +0200 Subject: [PATCH] Add Class Commons support --- classic.lua | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/classic.lua b/classic.lua index cbd6f81..5e2637b 100644 --- a/classic.lua +++ b/classic.lua @@ -65,4 +65,27 @@ function Object:__call(...) end +if _G.common_class then + local common = {} + + function common.class(_, definition, superclass) + superclass = superclass or Object + + local class = superclass:extend() + for i, v in pairs(definition) do + class[i] = v + end + + class.new = definition.init or superclass.new or superclass.init + + return class + end + + function common.instance(class, ...) + return class(...) + end + + _G.common = common +end + return Object