# HG changeset patch # User Matthew Wild # Date 1367082199 -3600 # Node ID 2539e60cc070b6a63c8ce79a705743ee93d0a573 # Parent 8e41b127e44ef268876dcc6b5b75cf32630d1da5# Parent 7e7f45f587a1e7c2b3b810fd34143f9de180422e Merge 0.9->trunk diff -r 8e41b127e44e -r 2539e60cc070 core/moduleapi.lua --- a/core/moduleapi.lua Sat Apr 27 13:11:27 2013 +0100 +++ b/core/moduleapi.lua Sat Apr 27 18:03:19 2013 +0100 @@ -270,6 +270,22 @@ 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 {};