Skip to content

Commit 9f4f30c

Browse files
Flatten filter kwargs for visit in Variable::ParseTreeVisitor
1 parent dbe709c commit 9f4f30c

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

lib/liquid/variable.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,14 @@ def evaluate_filter_expressions(context, filter_args, filter_kwargs)
151151
end
152152

153153
class ParseTreeVisitor < Liquid::ParseTreeVisitor
154+
def children_filter(filter)
155+
nodes = [filter[0], *filter[1]]
156+
nodes.concat(filter[2].entries.flatten(1)) if filter[2]
157+
nodes
158+
end
159+
154160
def children
155-
[@node.name] + @node.filters.flatten
161+
[@node.name] + @node.filters.flat_map { |filter| children_filter(filter) }
156162
end
157163
end
158164
end

test/unit/parse_tree_visitor_test.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ def test_variable
1212
)
1313
end
1414

15-
def test_varible_with_filter
15+
def test_variable_with_filter
1616
assert_equal(
17-
["test", "infilter"],
18-
visit(%({{ test | split: infilter }})),
17+
["test", "infilter", "infilter_hash_value"],
18+
visit(%({{ test | default: infilter, allow_false: infilter_hash_value }})),
1919
)
2020
end
2121

0 commit comments

Comments
 (0)