Comparison

core/moduleapi.lua @ 5021:85b2689dbcfe

Eliminate direct setfenv usage
author Florian Zeitz <florob@babelmonkeys.de>
date Fri, 08 Jun 2012 05:04:38 +0200
parent 4896:27cda15104f2
child 5024:d25e1b9332cc
comparison
equal deleted inserted replaced
5020:ef1eb65acbba 5021:85b2689dbcfe
15 local timer = require "util.timer"; 15 local timer = require "util.timer";
16 16
17 local multitable_new = require "util.multitable".new; 17 local multitable_new = require "util.multitable".new;
18 18
19 local t_insert, t_remove, t_concat = table.insert, table.remove, table.concat; 19 local t_insert, t_remove, t_concat = table.insert, table.remove, table.concat;
20 local error, setmetatable, setfenv, type = error, setmetatable, setfenv, type; 20 local error, setmetatable, type = error, setmetatable, type;
21 local ipairs, pairs, select, unpack = ipairs, pairs, select, unpack; 21 local ipairs, pairs, select, unpack = ipairs, pairs, select, unpack;
22 local tonumber, tostring = tonumber, tostring; 22 local tonumber, tostring = tonumber, tostring;
23 23
24 local prosody = prosody; 24 local prosody = prosody;
25 local hosts = prosody.hosts; 25 local hosts = prosody.hosts;
97 return self:hook("stanza/"..(xmlns and (xmlns..":") or "")..name, function (data) return handler(data.origin, data.stanza, data); end, priority); 97 return self:hook("stanza/"..(xmlns and (xmlns..":") or "")..name, function (data) return handler(data.origin, data.stanza, data); end, priority);
98 end 98 end
99 api.hook_stanza = api.hook_tag; -- COMPAT w/pre-0.9 99 api.hook_stanza = api.hook_tag; -- COMPAT w/pre-0.9
100 100
101 function api:require(lib) 101 function api:require(lib)
102 local f, n = pluginloader.load_code(self.name, lib..".lib.lua"); 102 local f, n = pluginloader.load_code(self.name, lib..".lib.lua", self.environment);
103 if not f then 103 if not f then
104 f, n = pluginloader.load_code(lib, lib..".lib.lua"); 104 f, n = pluginloader.load_code(lib, lib..".lib.lua", self.environment);
105 end 105 end
106 if not f then error("Failed to load plugin library '"..lib.."', error: "..n); end -- FIXME better error message 106 if not f then error("Failed to load plugin library '"..lib.."', error: "..n); end -- FIXME better error message
107 setfenv(f, self.environment);
108 return f(); 107 return f();
109 end 108 end
110 109
111 function api:depends(name) 110 function api:depends(name)
112 if not self.dependencies then 111 if not self.dependencies then