Software / code / prosody
Comparison
core/moduleapi.lua @ 13205:0ccd82b965d5
core.moduleapi: Improve handling of different types in :get_option_period
Pass positive numbers trough unharmed, parse strings as periods, discard
anything else.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 16 Jul 2023 20:59:27 +0200 |
| parent | 13204:c9ef35fab0b1 |
| child | 13206:7435a9341bb3 |
comparison
equal
deleted
inserted
replaced
| 13204:c9ef35fab0b1 | 13205:0ccd82b965d5 |
|---|---|
| 254 return ret; | 254 return ret; |
| 255 end | 255 end |
| 256 | 256 |
| 257 function api:get_option_period(name, default_value) | 257 function api:get_option_period(name, default_value) |
| 258 local value = self:get_option_scalar(name, default_value); | 258 local value = self:get_option_scalar(name, default_value); |
| 259 local num = tonumber(value); | 259 if type(value) == "number" then |
| 260 if num then | |
| 261 -- assume seconds | 260 -- assume seconds |
| 262 return num; | 261 return value; |
| 263 end | 262 elseif type(value) == "string" then |
| 264 local ret = human_io.parse_duration(value); | 263 local ret = human_io.parse_duration(value); |
| 265 if value ~= nil and ret == nil then | 264 if value ~= nil and ret == nil then |
| 266 self:log("error", "Config option '%s' not understood, expecting a period", name); | 265 self:log("error", "Config option '%s' not understood, expecting a period (e.g. \"2 days\")", name); |
| 267 end | 266 end |
| 268 return ret; | 267 return ret; |
| 268 end | |
| 269 end | 269 end |
| 270 | 270 |
| 271 function api:get_option_boolean(name, ...) | 271 function api:get_option_boolean(name, ...) |
| 272 local value = self:get_option_scalar(name, ...); | 272 local value = self:get_option_scalar(name, ...); |
| 273 if value == nil then | 273 if value == nil then |