From f68fa84a2f506c09dcea49534ea15e0c7b9f070b Mon Sep 17 00:00:00 2001 From: Dylan Thacker-Smith Date: Tue, 16 Dec 2014 20:59:23 -0500 Subject: [PATCH] WIP: Add column number --- lib/liquid/template.rb | 11 +++++++++-- lib/liquid/token.rb | 5 +++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/liquid/template.rb b/lib/liquid/template.rb index c8ee0f8..1e4e458 100644 --- a/lib/liquid/template.rb +++ b/lib/liquid/template.rb @@ -246,9 +246,16 @@ module Liquid return raw_tokens unless @line_numbers current_line = 1 + current_column = 1 raw_tokens.map do |token| - Token.new(token, current_line).tap do - current_line += token.count("\n") + Token.new(token, current_line, current_column).tap do + new_line_count = token.count("\n") + if new_line_count > 0 + current_line += new_line_count + current_column = token.size - token.rindex("\n") + 1 + else + current_column += token.size + end end end end diff --git a/lib/liquid/token.rb b/lib/liquid/token.rb index acf8ef9..ce76bcb 100644 --- a/lib/liquid/token.rb +++ b/lib/liquid/token.rb @@ -1,10 +1,11 @@ module Liquid class Token < String - attr_reader :line_number + attr_reader :line_number, :column_number - def initialize(content, line_number) + def initialize(content, line_number, column_number=nil) super(content) @line_number = line_number + @column_number = column_number end def raw