Refactor variable lookup strict parsing to reduce coupling on dot lookup

This commit is contained in:
Dylan Thacker-Smith
2020-10-19 12:10:32 -04:00
parent 6d39050e1e
commit 420a1c79e1

View File

@@ -50,7 +50,8 @@ module Liquid
token = @tokens[@p]
case token[0]
when :id
variable_signature
str = consume
str << variable_lookups
when :string, :number
consume
when :open_round
@@ -76,16 +77,19 @@ module Liquid
str
end
def variable_signature
str = consume(:id)
while look(:open_square)
str << consume
str << expression
str << consume(:close_square)
end
if look(:dot)
str << consume
str << variable_signature
def variable_lookups
str = +""
loop do
if look(:open_square)
str << consume
str << expression
str << consume(:close_square)
elsif look(:dot)
str << consume
str << consume(:id)
else
break
end
end
str
end