Comparison

core/modulemanager.lua @ 4652:9d24bc503621

modulemanager: For children of shared modules, set module.environment to the empty environment for that module (useful to expose data or APIs at host.modules[module])
author Matthew Wild <mwild1@gmail.com>
date Sat, 21 Apr 2012 22:53:22 +0100
parent 4643:9008fc396fb1
child 4662:105423f77d46
comparison
equal deleted inserted replaced
4651:d1739d72100a 4652:9d24bc503621
142 __index = modulemap["*"][module_name].module; 142 __index = modulemap["*"][module_name].module;
143 }); 143 });
144 local ok, result, module_err = call_module_method(mod, "add_host", host_module_api); 144 local ok, result, module_err = call_module_method(mod, "add_host", host_module_api);
145 if not ok or result == false then return nil, ok and module_err or result; end 145 if not ok or result == false then return nil, ok and module_err or result; end
146 local host_module = setmetatable({ module = host_module_api }, { __index = mod }); 146 local host_module = setmetatable({ module = host_module_api }, { __index = mod });
147 host_module.module.environment = host_module;
147 modulemap[host][module_name] = host_module; 148 modulemap[host][module_name] = host_module;
148 return host_module; 149 return host_module;
149 end 150 end
150 return nil, "global-module-already-loaded"; 151 return nil, "global-module-already-loaded";
151 end 152 end