lua-users home
lua-l archive

Re: Redefine the module() function

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


Patrick Donnelly <batrick.donnelly <at> gmail.com> writes:
> 
> Unless you changed the environment of the original module function
> (not yours), then the behavior be identical. You've also not really
> told us what _is_ going wrong.
> 
> Because you say that you have the redefined module function in an
> environment different from the original, when you load a new module,
> it will not see the redefined module function (because the redefined
> module function is not in the real global environment). Is that your
> problem?
> 
You're right. Here is the actual code I use for testing (badly transposed in 
my previous post):
"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
And the error I get is:
 lua: testmod.lua:11: attempt to call field 'hi' (a nil value)
 stack traceback:
 testmod.lua:11: in main chunk
 [C]: ?
Thanks for your insight,
Aladdin

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