summaryrefslogtreecommitdiff
path: root/Data/Libraries/Penlight/tests/test-class3.lua
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-10-30 11:32:16 +0800
committerchai <chaifix@163.com>2021-10-30 11:32:16 +0800
commit42ec7286b2d36a9ba22925f816a17cb1cc2aa5ce (patch)
tree24bc7009457a8d7500f264e89946dc20d069294f /Data/Libraries/Penlight/tests/test-class3.lua
parent164885fd98d48703bd771f802d79557b7db97431 (diff)
+ Penlight
Diffstat (limited to 'Data/Libraries/Penlight/tests/test-class3.lua')
-rw-r--r--Data/Libraries/Penlight/tests/test-class3.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/Data/Libraries/Penlight/tests/test-class3.lua b/Data/Libraries/Penlight/tests/test-class3.lua
new file mode 100644
index 0000000..eb3c26f
--- /dev/null
+++ b/Data/Libraries/Penlight/tests/test-class3.lua
@@ -0,0 +1,29 @@
+-- another way to define classes. Works particularly well
+-- with Moonscript
+local class = require('pl.class')
+local A = class{
+ _init = function(self, name)
+ self.name = name
+ end,
+ greet = function(self)
+ return "hello " .. self.name
+ end,
+ __tostring = function(self)
+ return self.name
+ end
+}
+
+local B = class{
+ _base = A,
+
+ greet = function(self)
+ return "hola " .. self.name
+ end
+}
+
+local a = A('john')
+assert(a:greet()=="hello john")
+assert(tostring(a) == "john")
+local b = B('juan')
+assert(b:greet()=="hola juan")
+assert(tostring(b)=="juan")