Merge pull request #1470 from Shopify/fix/range-parse-tree-visitor

Add ParseTreeVisitor to RangeLookup
This commit is contained in:
Charles-Philippe Clermont
2021-09-09 11:39:14 -04:00
committed by GitHub
3 changed files with 16 additions and 1 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ module Liquid
# c = Condition.new(1, '==', 1) # c = Condition.new(1, '==', 1)
# c.evaluate #=> true # c.evaluate #=> true
# #
class Condition #:nodoc: class Condition # :nodoc:
@@operators = { @@operators = {
'==' => ->(cond, left, right) { cond.send(:equal_variables, left, right) }, '==' => ->(cond, left, right) { cond.send(:equal_variables, left, right) },
'!=' => ->(cond, left, right) { !cond.send(:equal_variables, left, right) }, '!=' => ->(cond, left, right) { !cond.send(:equal_variables, left, right) },
+8
View File
@@ -12,6 +12,8 @@ module Liquid
end end
end end
attr_reader :start_obj, :end_obj
def initialize(start_obj, end_obj) def initialize(start_obj, end_obj)
@start_obj = start_obj @start_obj = start_obj
@end_obj = end_obj @end_obj = end_obj
@@ -35,5 +37,11 @@ module Liquid
Utils.to_integer(input) Utils.to_integer(input)
end end
end end
class ParseTreeVisitor < Liquid::ParseTreeVisitor
def children
[@node.start_obj, @node.end_obj]
end
end
end end
end end
+7
View File
@@ -159,6 +159,13 @@ class ParseTreeVisitorTest < Minitest::Test
) )
end end
def test_for_range
assert_equal(
["test"],
visit(%({% for x in (1..test) %}{% endfor %}))
)
end
def test_tablerow_in def test_tablerow_in
assert_equal( assert_equal(
["test"], ["test"],