commit e078978: [Feature] Selectors: Add `list` generator

Vsevolod Stakhov vsevolod at highsecure.ru
Fri Jul 19 12:56:09 UTC 2019


Author: Vsevolod Stakhov
Date: 2019-07-19 13:51:16 +0100
URL: https://github.com/rspamd/rspamd/commit/e07897872dd260a7ff21719b7d9206e8d7034ada

[Feature] Selectors: Add `list` generator

---
 lualib/lua_selectors.lua | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/lualib/lua_selectors.lua b/lualib/lua_selectors.lua
index 9af5f8f92..2a4782e8b 100644
--- a/lualib/lua_selectors.lua
+++ b/lualib/lua_selectors.lua
@@ -38,6 +38,7 @@ local M = "selectors"
 local E = {}
 
 local extractors = {
+  -- Plain id function
   ['id'] = {
     ['get_value'] = function(_, args)
       if args[1] then
@@ -50,6 +51,18 @@ local extractors = {
 For example, `id('Something')` returns a string 'Something']],
     ['args_schema'] = {ts.string:is_optional()}
   },
+  -- Similar but for making lists
+  ['list'] = {
+    ['get_value'] = function(_, args)
+      if args[1] then
+        return fun.map(tostring, args), 'string_list'
+      end
+
+      return {},'string_list'
+    end,
+    ['description'] = [[Return a list from function's arguments or an empty list,
+For example, `list('foo', 'bar')` returns a list {'foo', 'bar'}]],
+  },
   -- Get source IP address
   ['ip'] = {
     ['get_value'] = function(task)


More information about the Commits mailing list