]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Selectors: Add `list` generator
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 19 Jul 2019 12:51:16 +0000 (13:51 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 19 Jul 2019 12:51:16 +0000 (13:51 +0100)
lualib/lua_selectors.lua

index 9af5f8f92b04137e33c903a65de6df24f5a1b946..2a4782e8b40c1701d5886ca1ef73667c29cd99fa 100644 (file)
@@ -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)