lua-users home
lua-l archive

Re: Redefine the module() function

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Le Mon 14/01/2008 à 12:03 Aladdin Lampé à écrit:
> "testmod.lua":
> local package = require "package"
> local original_module = module
> 
> function module(modname, ...)
> original_module(modname, ...)
> package.loaded[modname].hello = "hello you"
> return m
> end
> 
> require 'mymod'
> mymod.hi()
> 
> "mymod.lua":
> module 'mymod'
> function hi() print(hello) end
You are not forced to redefine the module function to do that. You may
do like that:
-- testmod.lua
function testmod(_M)
 package.loaded[_M._NAME].hello = "hello you"
 -- This line also works:
 -- _M.hello = "hello you"
 return _M
end
require 'mymod'
mymod.hi()
-- mymod.lua
module('mymod', package.seeall, testmod)
function hi()
 print(hello)
end
-------
And I get
$ lua testmod.lua
hello you
$
-- 
Mildred Ki'lya
E-Mail:	mildred593(at)online.fr
Site:	<http://mildred632.free.fr/>
XMPP:	<mildred@jabber.fr> (GoogleTalk, Jabber)
GPG:	197C A7E6 645B 4299 6D37 684B 6F9D A8D6 [9A7D 2E2B]

AltStyle によって変換されたページ (->オリジナル) /