diff --git a/lib/liquid/variable.rb b/lib/liquid/variable.rb index 3381010..d502259 100644 --- a/lib/liquid/variable.rb +++ b/lib/liquid/variable.rb @@ -16,9 +16,9 @@ module Liquid capture_filters = /(#{FilterSeparator}.*)/o VariableSyntax = /\A\s*#{capture_ignored_variable_prefix}\s*#{capture_expression}\s*(?:#{capture_ignored_filter_prefix}\s*#{capture_filters})?\z/om - capture_lax_seperator = /(['"\|]+?)/ + capture_lax_separator = /(['"\|]+?)/ capture_filter = /((?:\s+|#{QuotedFragment}|#{ArgumentSeparator})+)/o - FilterParser = /\s*(?:#{FilterSeparator}|#{capture_lax_seperator})\s*#{capture_filter}/o + FilterParser = /\s*(?:#{FilterSeparator}|#{capture_lax_separator})\s*#{capture_filter}/o attr_accessor :filters, :name, :line_number attr_reader :parse_context @@ -48,12 +48,12 @@ module Liquid add_syntax_warning("variable prefixed with ignored characters: #{$1.inspect}") if $1 name_markup = $2 - add_syntax_warning("variable filter seperator prefixed with ignored characters: #{$3.inspect}") if $3 + add_syntax_warning("variable filter separator prefixed with ignored characters: #{$3.inspect}") if $3 filters_markup = $4 @name = Expression.parse(name_markup) if filters_markup filters_markup.scan(FilterParser) do |lax_sep, f| - add_syntax_warning("unterminated quote or multiple pipe characters used as a filter seperator: #{lax_sep.inspect}") if lax_sep + add_syntax_warning("unterminated quote or multiple pipe characters used as a filter separator: #{lax_sep.inspect}") if lax_sep next unless f =~ /\A\s*(\W+)??(\w+)/ add_syntax_warning("ignored characters before filter name: #{$1.inspect}") if $1 filtername = $2 diff --git a/test/integration/variable_test.rb b/test/integration/variable_test.rb index 38bf644..1df7b0e 100644 --- a/test/integration/variable_test.rb +++ b/test/integration/variable_test.rb @@ -101,13 +101,13 @@ class VariableTest < Minitest::Test ignored_chars = ",wat? lax!" template = Liquid::Template.parse("{{ test#{ignored_chars} | noop }}", error_mode: :lax_warn) assert_equal "works", template.render!('test' => 'works') - assert_equal [Liquid::SyntaxError.new("variable filter seperator prefixed with ignored characters: #{ignored_chars.inspect}")], template.warnings + assert_equal [Liquid::SyntaxError.new("variable filter separator prefixed with ignored characters: #{ignored_chars.inspect}")], template.warnings end def test_lax_warnings_for_weird_filter_chars template = Liquid::Template.parse("{{ test | upcase \" prepend: 'it ' || append: ' surprisingly' }}", error_mode: :lax_warn) assert_equal "it WORKS surprisingly", template.render!('test' => 'works') - expected_warnings = ['"', '||'].map{ |sep| Liquid::SyntaxError.new("unterminated quote or multiple pipe characters used as a filter seperator: #{sep.inspect}") } + expected_warnings = ['"', '||'].map{ |sep| Liquid::SyntaxError.new("unterminated quote or multiple pipe characters used as a filter separator: #{sep.inspect}") } assert_equal expected_warnings, template.warnings end