Change Tokenizer test to fetch tokens instead of exposing ivar

This commit is contained in:
Gaurav Chande
2015-06-04 05:48:39 +00:00
parent 79d7dd06df
commit fc8e6c8d3a
2 changed files with 11 additions and 11 deletions

View File

@@ -1,7 +1,5 @@
module Liquid
class Tokenizer
attr_reader :tokens
def initialize(source, line_numbers = false)
@source, @line_numbers = source, line_numbers
@tokens = tokenize

View File

@@ -22,18 +22,20 @@ class TokenizerTest < Minitest::Test
end
def test_calculate_line_numbers_per_token_with_profiling
template = Liquid::Template.parse("", :profile => true)
assert_equal [1], template.send(:tokenize, "{{funk}}").tokens.map(&:line_number)
assert_equal [1, 1, 1], template.send(:tokenize, " {{funk}} ").tokens.map(&:line_number)
assert_equal [1, 2, 2], template.send(:tokenize, "\n{{funk}}\n").tokens.map(&:line_number)
assert_equal [1, 1, 3], template.send(:tokenize, " {{\n funk \n}} ").tokens.map(&:line_number)
assert_equal [1], tokenize("{{funk}}", true).map(&:line_number)
assert_equal [1, 1, 1], tokenize(" {{funk}} ", true).map(&:line_number)
assert_equal [1, 2, 2], tokenize("\n{{funk}}\n", true).map(&:line_number)
assert_equal [1, 1, 3], tokenize(" {{\n funk \n}} ", true).map(&:line_number)
end
private
def tokenize(source)
tokenizer = Liquid::Tokenizer.new(source)
tokenizer.tokens
def tokenize(source, line_numbers = false)
tokenizer = Liquid::Tokenizer.new(source, line_numbers)
tokens = []
while t = tokenizer.shift
tokens << t
end
tokens
end
end