class Liquid::Tokenizer

Attributes

line_number[R]

Public Class Methods

new(source, line_numbers = false) click to toggle source
# File lib/liquid/tokenizer.rb, line 5
def initialize(source, line_numbers = false)
  @source = source
  @line_number = line_numbers ? 1 : nil
  @tokens = tokenize
end

Public Instance Methods

shift() click to toggle source
# File lib/liquid/tokenizer.rb, line 11
def shift
  token = @tokens.shift
  @line_number += token.count("\n") if @line_number && token
  token
end

Private Instance Methods

tokenize() click to toggle source
# File lib/liquid/tokenizer.rb, line 19
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