Software / code / prosody
Comparison
core/moduleapi.lua @ 13201:65fb0d7a2312
moduleapi: Add enum config option method
For when a setting has a few fixed values it can take
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 16 Jan 2021 20:40:14 +0100 |
| parent | 13016:8aec903ea888 |
| child | 13203:aa6c2692a4be |
comparison
equal
deleted
inserted
replaced
| 13200:150e3bbec1bd | 13201:65fb0d7a2312 |
|---|---|
| 308 return nil; | 308 return nil; |
| 309 end | 309 end |
| 310 return resolve_relative_path(parent, value); | 310 return resolve_relative_path(parent, value); |
| 311 end | 311 end |
| 312 | 312 |
| 313 function api:get_option_enum(name, default, ...) | |
| 314 local value = self:get_option_scalar(name, default); | |
| 315 if value == nil then return nil; end | |
| 316 local options = set.new{default, ...}; | |
| 317 if not options:contains(value) then | |
| 318 self:log("error", "Config option '%s' not in set of allowed values (one of: %s)", name, options); | |
| 319 end | |
| 320 return value; | |
| 321 end | |
| 313 | 322 |
| 314 function api:context(host) | 323 function api:context(host) |
| 315 return setmetatable({ host = host or "*", global = "*" == host }, { __index = self, __newindex = self }); | 324 return setmetatable({ host = host or "*", global = "*" == host }, { __index = self, __newindex = self }); |
| 316 end | 325 end |
| 317 | 326 |