From e07897872dd260a7ff21719b7d9206e8d7034ada Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 19 Jul 2019 13:51:16 +0100 Subject: [PATCH] [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) -- 2.39.5