diff options
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/liquid-4.0.4/lib/liquid/tokenizer.rb')
| -rw-r--r-- | vendor/bundle/ruby/3.4.0/gems/liquid-4.0.4/lib/liquid/tokenizer.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/liquid-4.0.4/lib/liquid/tokenizer.rb b/vendor/bundle/ruby/3.4.0/gems/liquid-4.0.4/lib/liquid/tokenizer.rb new file mode 100644 index 0000000..d03657e --- /dev/null +++ b/vendor/bundle/ruby/3.4.0/gems/liquid-4.0.4/lib/liquid/tokenizer.rb @@ -0,0 +1,31 @@ +module Liquid + class Tokenizer + attr_reader :line_number + + def initialize(source, line_numbers = false) + @source = source + @line_number = line_numbers ? 1 : nil + @tokens = tokenize + end + + def shift + token = @tokens.shift + @line_number += token.count("\n") if @line_number && token + token + end + + private + + def tokenize + @source = @source.source if @source.respond_to?(:source) + return [] if @source.to_s.empty? + + tokens = @source.split(TemplateParser) + + # removes the rogue empty element at the beginning of the array + tokens.shift if tokens[0] && tokens[0].empty? + + tokens + end + end +end |
