Diff

core/moduleapi.lua @ 7975:c64ddee9d671

core.moduleapi: Factor out code for getting a scalar config option
author Kim Alvefur <zash@zash.se>
date Wed, 15 Mar 2017 15:07:16 +0100
parent 7947:24170d74b00b
child 7982:e30b0cbed472
line wrap: on
line diff
--- a/core/moduleapi.lua	Sun Mar 12 12:49:34 2017 +0100
+++ b/core/moduleapi.lua	Wed Mar 15 15:07:16 2017 +0100
@@ -213,7 +213,7 @@
 	return value;
 end
 
-function api:get_option_string(name, default_value)
+function api:get_option_scalar(name, default_value)
 	local value = self:get_option(name, default_value);
 	if type(value) == "table" then
 		if #value > 1 then
@@ -221,6 +221,11 @@
 		end
 		value = value[1];
 	end
+	return value;
+end
+
+function api:get_option_string(name, default_value)
+	local value = self:get_option_scalar(name, default_value);
 	if value == nil then
 		return nil;
 	end
@@ -228,13 +233,7 @@
 end
 
 function api:get_option_number(name, ...)
-	local value = self:get_option(name, ...);
-	if type(value) == "table" then
-		if #value > 1 then
-			self:log("error", "Config option '%s' does not take a list, using just the first item", name);
-		end
-		value = value[1];
-	end
+	local value = self:get_option_scalar(name, ...);
 	local ret = tonumber(value);
 	if value ~= nil and ret == nil then
 		self:log("error", "Config option '%s' not understood, expecting a number", name);
@@ -243,13 +242,7 @@
 end
 
 function api:get_option_boolean(name, ...)
-	local value = self:get_option(name, ...);
-	if type(value) == "table" then
-		if #value > 1 then
-			self:log("error", "Config option '%s' does not take a list, using just the first item", name);
-		end
-		value = value[1];
-	end
+	local value = self:get_option_scalar(name, ...);
 	if value == nil then
 		return nil;
 	end