Ruby compatibility issues

- regexp engines are different from 1.8 to 1.9, fixed the literal shorthand regexp accordingly
  - changed the shorthand regexp text from a match to a string scan
  - test_helper now loads rubygems unless RUBY_VERSION is > 1.9
This commit is contained in:
DBA
2010-08-24 08:17:42 +08:00
committed by Tobias Lütke
parent 772233d881
commit 3d43efe2bc
3 changed files with 4 additions and 2 deletions
+1 -1
View File
@@ -45,7 +45,7 @@ module Liquid
PartialTemplateParser = /#{TagStart}.*?#{TagEnd}|#{VariableStart}.*?#{VariableIncompleteEnd}/ PartialTemplateParser = /#{TagStart}.*?#{TagEnd}|#{VariableStart}.*?#{VariableIncompleteEnd}/
TemplateParser = /(#{PartialTemplateParser}|#{AnyStartingTag})/ TemplateParser = /(#{PartialTemplateParser}|#{AnyStartingTag})/
VariableParser = /\[[^\]]+\]|#{VariableSegment}+\??/ VariableParser = /\[[^\]]+\]|#{VariableSegment}+\??/
LiteralShorthand = /^(?:{{{\s?)(.*?)(?:\s*}}})$/ LiteralShorthand = /^(?:\{\{\{\s?)(.*?)(?:\s*\}\}\})$/
end end
require 'liquid/drop' require 'liquid/drop'
+2 -1
View File
@@ -43,6 +43,7 @@ class RegexpTest < Test::Unit::TestCase
end end
def test_literal_shorthand_regexp def test_literal_shorthand_regexp
assert_match "{{{ {% if 'gnomeslab' contains 'liquid' %}yes{% endif %} }}}", LiteralShorthand assert_equal [["{% if 'gnomeslab' contains 'liquid' %}yes{% endif %}"]],
"{{{ {% if 'gnomeslab' contains 'liquid' %}yes{% endif %} }}}".scan(LiteralShorthand)
end end
end # RegexpTest end # RegexpTest
+1
View File
@@ -2,6 +2,7 @@
extras_path = File.join File.dirname(__FILE__), 'extra' extras_path = File.join File.dirname(__FILE__), 'extra'
$LOAD_PATH.unshift(extras_path) unless $LOAD_PATH.include? extras_path $LOAD_PATH.unshift(extras_path) unless $LOAD_PATH.include? extras_path
require 'rubygems' unless RUBY_VERSION =~ /^(?:1.9.*)$/
require 'test/unit' require 'test/unit'
require 'test/unit/assertions' require 'test/unit/assertions'
require 'caller' require 'caller'