| require("import") -- the import fn |
| import("smart_pointer_multi") -- import lib into global |
| spm=smart_pointer_multi --alias |
| |
| -- catching undefined variables |
| local env = _ENV -- Lua 5.2 |
| if not env then env = getfenv () end -- Lua 5.1 |
| setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end}) |
| |
| foo = spm.Foo() |
| foo.x = 5 |
| assert(foo:getx() == 5) |
| |
| bar = spm.Bar(foo) |
| spam = spm.Spam(bar) |
| grok = spm.Grok(bar) |
| |
| assert(bar:getx() == 5) |
| assert(spam:getx() == 5) |
| spam.x = 7 |
| assert(grok:getx() == 7) |
| grok.x = 10 |
| assert(foo:getx() == 10) |