From adb7d2bbb89916a26003733ec21f8fb83eaaad09 Mon Sep 17 00:00:00 2001 From: Jason Hiltz-Laforge Date: Mon, 21 Jul 2014 19:09:28 +0000 Subject: [PATCH] Reduce temporary objects during variable/filter parsing --- lib/liquid/variable.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/liquid/variable.rb b/lib/liquid/variable.rb index 9a9e387..6a35122 100644 --- a/lib/liquid/variable.rb +++ b/lib/liquid/variable.rb @@ -36,13 +36,13 @@ module Liquid def lax_parse(markup) @filters = [] - if match = markup.match(/\s*(#{QuotedFragment})(.*)/om) - @name = match[1] - if match[2].match(/#{FilterSeparator}\s*(.*)/om) + if markup =~ /\s*(#{QuotedFragment})(.*)/om + @name = Regexp.last_match(1) + if Regexp.last_match(2) =~ /#{FilterSeparator}\s*(.*)/om filters = Regexp.last_match(1).scan(FilterParser) filters.each do |f| - if matches = f.match(/\s*(\w+)/) - filtername = matches[1] + if f =~ /\s*(\w+)/ + filtername = Regexp.last_match(1) filterargs = f.scan(/(?:#{FilterArgumentSeparator}|#{ArgumentSeparator})\s*((?:\w+\s*\:\s*)?#{QuotedFragment})/o).flatten @filters << [filtername, filterargs] end