From 2ac805282f4a12529bc34e94ebe754f483d69015 Mon Sep 17 00:00:00 2001 From: Bruno Carvalho Date: Fri, 11 Apr 2025 16:53:37 +0100 Subject: [PATCH] Flatten filter kwargs for visit in Variable::ParseTreeVisitor --- lib/liquid/variable.rb | 8 +++++++- test/unit/parse_tree_visitor_test.rb | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/liquid/variable.rb b/lib/liquid/variable.rb index 209570654..16c1d282d 100644 --- a/lib/liquid/variable.rb +++ b/lib/liquid/variable.rb @@ -151,8 +151,14 @@ def evaluate_filter_expressions(context, filter_args, filter_kwargs) end class ParseTreeVisitor < Liquid::ParseTreeVisitor + def children_filter(filter) + nodes = [filter[0], *filter[1]] + nodes.concat(filter[2].values) if filter[2] + nodes + end + def children - [@node.name] + @node.filters.flatten + [@node.name] + @node.filters.flat_map { |filter| children_filter(filter) } end end end diff --git a/test/unit/parse_tree_visitor_test.rb b/test/unit/parse_tree_visitor_test.rb index 6d946f225..9fd9b94e4 100644 --- a/test/unit/parse_tree_visitor_test.rb +++ b/test/unit/parse_tree_visitor_test.rb @@ -12,10 +12,10 @@ def test_variable ) end - def test_varible_with_filter + def test_variable_with_filter assert_equal( - ["test", "infilter"], - visit(%({{ test | split: infilter }})), + ["test", "infilter", "infilter_hash_value"], + visit(%({{ test | default: infilter, allow_false: infilter_hash_value }})), ) end