Difference between revisions of "TsT Module definition"
(source tag) |
Entrancejew (talk | contribs) m (Added link to module discussion.) |
||
(One intermediate revision by one other user not shown) | |||
Line 6: | Line 6: | ||
There is different way to do. | There is different way to do. | ||
− | In lua 5.1, a module() function exists : Please do not use it. It will be deprecated in next version. See this discuss for | + | In lua 5.1, a module() function exists : Please do not use it. It will be deprecated in next version. [http://lua-users.org/wiki/LuaModuleFunctionCritiqued See this discuss for details.] |
+ | |||
+ | == simple module definition == | ||
A "private"(?) module (not affecting the global environment) | A "private"(?) module (not affecting the global environment) | ||
Line 70: | Line 72: | ||
mymod.bar() | mymod.bar() | ||
</source> | </source> | ||
+ | |||
+ | |||
+ | == more complicated module definition == | ||
+ | |||
+ | <source lang="lua"> | ||
+ | local M = {} -- module namespace | ||
+ | local func = {} | ||
+ | |||
+ | local function blah() | ||
+ | |||
+ | end | ||
+ | |||
+ | local function bar() | ||
+ | |||
+ | end | ||
+ | |||
+ | func.foo = blah | ||
+ | func.bar = bar | ||
+ | |||
+ | M.func = func | ||
+ | |||
+ | M.foo = function(...) return func.foo(...) end | ||
+ | M.bar = function(...) return func.bar(...) end | ||
+ | |||
+ | return M | ||
+ | </source> | ||
+ | |||
+ | TODO: take sample from luajail/lovejail project |
Latest revision as of 21:19, 6 April 2012
How to define a LÖVE module ?
Exactly like a LUA module.
How to define a LUA module ?
There is different way to do. In lua 5.1, a module() function exists : Please do not use it. It will be deprecated in next version. See this discuss for details.
simple module definition
A "private"(?) module (not affecting the global environment)
in file "mymod.lua" :
local M = {}
local function blah()
end
local function bar()
end
M.foo = blah
M.bar = bar
return M
sample of use in main file :
local mymod = require("mymod")
mymod.blah()
mymod.bar()
or with global module
mymod = require("mymod")
mymod.blah()
mymod.bar()
variant 2
in file "mymod.lua" :
local M = {}
local function blah()
end
local function bar()
end
M.foo = blah
M.bar = bar
mymod = M -- create the global "mymod" variable
sample of use in main file :
require("mymod")
mymod.blah()
mymod.bar()
more complicated module definition
local M = {} -- module namespace
local func = {}
local function blah()
end
local function bar()
end
func.foo = blah
func.bar = bar
M.func = func
M.foo = function(...) return func.foo(...) end
M.bar = function(...) return func.bar(...) end
return M
TODO: take sample from luajail/lovejail project