diff --git a/lib/liquid/variable.rb b/lib/liquid/variable.rb index 6a35122a..15c60cb7 100644 --- a/lib/liquid/variable.rb +++ b/lib/liquid/variable.rb @@ -11,7 +11,7 @@ module Liquid # {{ user | link }} # class Variable - FilterParser = /(?:#{FilterSeparator}|(?:\s*(?:#{QuotedFragment}|#{ArgumentSeparator})\s*)+)/o + FilterParser = /(?:\s+|#{QuotedFragment}|#{ArgumentSeparator})+/o EasyParse = /\A *(\w+(?:\.\w+)*) *\z/ attr_accessor :filters, :name, :warnings @@ -41,8 +41,8 @@ module Liquid if Regexp.last_match(2) =~ /#{FilterSeparator}\s*(.*)/om filters = Regexp.last_match(1).scan(FilterParser) filters.each do |f| - if f =~ /\s*(\w+)/ - filtername = Regexp.last_match(1) + if f =~ /\w+/ + filtername = Regexp.last_match(0) filterargs = f.scan(/(?:#{FilterArgumentSeparator}|#{ArgumentSeparator})\s*((?:\w+\s*\:\s*)?#{QuotedFragment})/o).flatten @filters << [filtername, filterargs] end