# HG changeset patch # User Matthew Wild # Date 1367071140 -3600 # Node ID 7e7f45f587a1e7c2b3b810fd34143f9de180422e # Parent d54011a23b201715d86f45b5f4d807bede6cd9f7 moduleapi: Add module:get_option_inherited_set() to return a set that inherits items from a globally set set, if set diff -r d54011a23b20 -r 7e7f45f587a1 core/moduleapi.lua --- a/core/moduleapi.lua Sat Apr 27 14:57:24 2013 +0100 +++ b/core/moduleapi.lua Sat Apr 27 14:59:00 2013 +0100 @@ -270,6 +270,18 @@ 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