Mercurial > prosody-hg
comparison core/modulemanager.lua @ 747:40837f3422ab
modulemanager: Add get_host_type() API method, and fix up call_module_method to work properly
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 29 Jan 2009 01:58:11 +0000 |
| parents | 7027de4c039d |
| children | 172c43d735e9 |
comparison
equal
deleted
inserted
replaced
| 746:7027de4c039d | 747:40837f3422ab |
|---|---|
| 27 local eventmanager = require "core.eventmanager"; | 27 local eventmanager = require "core.eventmanager"; |
| 28 local config = require "core.configmanager"; | 28 local config = require "core.configmanager"; |
| 29 local multitable_new = require "util.multitable".new; | 29 local multitable_new = require "util.multitable".new; |
| 30 local register_actions = require "core.actions".register; | 30 local register_actions = require "core.actions".register; |
| 31 | 31 |
| 32 local hosts = hosts; | |
| 33 | |
| 32 local loadfile, pcall = loadfile, pcall; | 34 local loadfile, pcall = loadfile, pcall; |
| 33 local setmetatable, setfenv, getfenv = setmetatable, setfenv, getfenv; | 35 local setmetatable, setfenv, getfenv = setmetatable, setfenv, getfenv; |
| 34 local pairs, ipairs = pairs, ipairs; | 36 local pairs, ipairs = pairs, ipairs; |
| 35 local t_insert, t_concat = table.insert, table.concat; | 37 local t_insert, t_concat = table.insert, table.concat; |
| 36 local type = type; | 38 local type = type; |
| 229 | 231 |
| 230 function module_has_method(module, method) | 232 function module_has_method(module, method) |
| 231 return type(module.module[method]) == "function"; | 233 return type(module.module[method]) == "function"; |
| 232 end | 234 end |
| 233 | 235 |
| 234 function call_module_method(module, func, ...) | 236 function call_module_method(module, method, ...) |
| 235 local f = module.module[func]; | |
| 236 if module_has_method(module, method) then | 237 if module_has_method(module, method) then |
| 238 local f = module.module[func]; | |
| 237 return pcall(f, ...); | 239 return pcall(f, ...); |
| 238 else | 240 else |
| 239 return false, "no-such-method"; | 241 return false, "no-such-method"; |
| 240 end | 242 end |
| 241 end | 243 end |
| 255 end | 257 end |
| 256 | 258 |
| 257 -- Returns the host that the current module is serving | 259 -- Returns the host that the current module is serving |
| 258 function api:get_host() | 260 function api:get_host() |
| 259 return self.host; | 261 return self.host; |
| 262 end | |
| 263 | |
| 264 function api:get_host_type() | |
| 265 return hosts[self.host].type; | |
| 260 end | 266 end |
| 261 | 267 |
| 262 function api:set_global() | 268 function api:set_global() |
| 263 self.host = "*"; | 269 self.host = "*"; |
| 264 end | 270 end |
