From be8d3a42b6721cbbeaef0cc8fccf4fcc961fdaa1 Mon Sep 17 00:00:00 2001 From: Michael Go Date: Fri, 25 Oct 2024 00:27:26 -0300 Subject: [PATCH] optimize line number counting --- lib/liquid/tokenizer.rb | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/lib/liquid/tokenizer.rb b/lib/liquid/tokenizer.rb index 313faf2b..61d1e555 100644 --- a/lib/liquid/tokenizer.rb +++ b/lib/liquid/tokenizer.rb @@ -16,14 +16,10 @@ module Liquid def initialize(source, line_numbers = false, line_number: nil, for_liquid_tag: false) @line_number = line_number || (line_numbers ? 1 : nil) - original_line_number = @line_number @for_liquid_tag = for_liquid_tag @tokens = [] - @line_numbers = [] tokenize(source) - - @line_number = original_line_number end private def tokenize(source) @@ -31,19 +27,11 @@ module Liquid while token = t_shift(ss) @tokens.push(token) - @line_numbers.push(@line_number) if @line_number end end def shift - @line_number = @line_numbers.shift if @line_number - @tokens.shift - end - - private def t_shift(ss) - return nil if ss.eos? - - token = @for_liquid_tag ? next_liquid_token(ss) : next_token(ss) + token = @tokens.shift return nil unless token @@ -54,6 +42,12 @@ module Liquid token end + private def t_shift(ss) + return nil if ss.eos? + + @for_liquid_tag ? next_liquid_token(ss) : next_token(ss) + end + private def next_liquid_token(ss)