lib/liquid/expression.rb in liquid-4.0.0 vs lib/liquid/expression.rb in liquid-4.0.1

- old
+ new

@@ -19,23 +19,27 @@ 'false'.freeze => false, 'blank'.freeze => MethodLiteral.new(:blank?, '').freeze, 'empty'.freeze => MethodLiteral.new(:empty?, '').freeze } + SINGLE_QUOTED_STRING = /\A'(.*)'\z/m + DOUBLE_QUOTED_STRING = /\A"(.*)"\z/m + INTEGERS_REGEX = /\A(-?\d+)\z/ + FLOATS_REGEX = /\A(-?\d[\d\.]+)\z/ + RANGES_REGEX = /\A\((\S+)\.\.(\S+)\)\z/ + def self.parse(markup) if LITERALS.key?(markup) LITERALS[markup] else case markup - when /\A'(.*)'\z/m # Single quoted strings + when SINGLE_QUOTED_STRING, DOUBLE_QUOTED_STRING $1 - when /\A"(.*)"\z/m # Double quoted strings - $1 - when /\A(-?\d+)\z/ # Integer and floats + when INTEGERS_REGEX $1.to_i - when /\A\((\S+)\.\.(\S+)\)\z/ # Ranges + when RANGES_REGEX RangeLookup.parse($1, $2) - when /\A(-?\d[\d\.]+)\z/ # Floats + when FLOATS_REGEX $1.to_f else VariableLookup.parse(markup) end end