diff options
author | Matthew Wild <mwild1@gmail.com> | 2013-04-27 18:03:19 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2013-04-27 18:03:19 +0100 |
commit | c5f20ce901c0c929c4ff5378269288e30c6977b4 (patch) | |
tree | 2d67224cca878b9859de4556ff2e196310e9b23b /core/moduleapi.lua | |
parent | 5e1775847b7a5c5ef7757cd6efa0b4d6c48baab7 (diff) | |
parent | edecb033c4cd0334904dbed82af9b23c79602576 (diff) | |
download | prosody-c5f20ce901c0c929c4ff5378269288e30c6977b4.tar.gz prosody-c5f20ce901c0c929c4ff5378269288e30c6977b4.zip |
Merge 0.9->trunk
Diffstat (limited to 'core/moduleapi.lua')
-rw-r--r-- | core/moduleapi.lua | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/core/moduleapi.lua b/core/moduleapi.lua index 30360f73..9baf4fba 100644 --- a/core/moduleapi.lua +++ b/core/moduleapi.lua @@ -270,6 +270,22 @@ function api:get_option_set(name, ...) return set.new(value); end +function api:get_option_inherited_set(name, ...) + local value = self:get_option_set(name, ...); + local global_value = self:context("*"):get_option_set(name, ...); + if not value then + return global_value; + elseif not global_value then + return value; + end + value:include(global_value); + return value; +end + +function api:context(host) + return setmetatable({host=host or "*"}, {__index=self,__newindex=self}); +end + function api:add_item(key, value) self.items = self.items or {}; self.items[key] = self.items[key] or {}; |