diff --git a/lib/liquid/condition.rb b/lib/liquid/condition.rb index 3dd433d6..786f9bc9 100644 --- a/lib/liquid/condition.rb +++ b/lib/liquid/condition.rb @@ -8,7 +8,7 @@ module Liquid # c = Condition.new(1, '==', 1) # c.evaluate #=> true # - class Condition #:nodoc: + class Condition # :nodoc: @@operators = { '==' => ->(cond, left, right) { cond.send(:equal_variables, left, right) }, '!=' => ->(cond, left, right) { !cond.send(:equal_variables, left, right) }, diff --git a/lib/liquid/range_lookup.rb b/lib/liquid/range_lookup.rb index 57bccd00..7e159be6 100644 --- a/lib/liquid/range_lookup.rb +++ b/lib/liquid/range_lookup.rb @@ -12,6 +12,8 @@ module Liquid end end + attr_reader :start_obj, :end_obj + def initialize(start_obj, end_obj) @start_obj = start_obj @end_obj = end_obj @@ -35,5 +37,11 @@ module Liquid Utils.to_integer(input) end end + + class ParseTreeVisitor < Liquid::ParseTreeVisitor + def children + [@node.start_obj, @node.end_obj] + end + end end end diff --git a/test/unit/parse_tree_visitor_test.rb b/test/unit/parse_tree_visitor_test.rb index 2c085b38..c3e74487 100644 --- a/test/unit/parse_tree_visitor_test.rb +++ b/test/unit/parse_tree_visitor_test.rb @@ -159,6 +159,13 @@ class ParseTreeVisitorTest < Minitest::Test ) end + def test_for_range + assert_equal( + ["test"], + visit(%({% for x in (1..test) %}{% endfor %})) + ) + end + def test_tablerow_in assert_equal( ["test"],