diff --git a/lib/liquid.rb b/lib/liquid.rb
index 363a633..679d1c2 100644
--- a/lib/liquid.rb
+++ b/lib/liquid.rb
@@ -33,7 +33,8 @@ module Liquid
VariableStart = /\{\{/
VariableEnd = /\}\}/
VariableIncompleteEnd = /\}\}?/
- QuotedFragment = /"[^"]+"|'[^']+'|[^\s,\|]+/
+ QuotedString = /"[^"]+"|'[^']+'/
+ QuotedFragment = /#{QuotedString}|(?:[^\s,\|'"]|#{QuotedString})+/
StrictQuotedFragment = /"[^"]+"|'[^']+'|[^\s,\|,\:,\,]+/
FirstFilterArgument = /#{FilterArgumentSeparator}(?:#{StrictQuotedFragment})/
OtherFilterArgument = /#{ArgumentSeparator}(?:#{StrictQuotedFragment})/
diff --git a/lib/liquid/tags/cycle.rb b/lib/liquid/tags/cycle.rb
index 71965ca..64d6d20 100644
--- a/lib/liquid/tags/cycle.rb
+++ b/lib/liquid/tags/cycle.rb
@@ -13,8 +13,8 @@ module Liquid
#
Item five
#
class Cycle < Tag
- SimpleSyntax = /#{Expression}/
- NamedSyntax = /(#{Expression})\s*\:\s*(.*)/
+ SimpleSyntax = /^#{Expression}/
+ NamedSyntax = /^(#{Expression})\s*\:\s*(.*)/
def initialize(tag_name, markup, tokens)
case markup
@@ -27,7 +27,6 @@ module Liquid
else
raise SyntaxError.new("Syntax Error in 'cycle' - Valid syntax: cycle [name :] var [, var2, var3 ...]")
end
-
super
end
diff --git a/test/standard_tag_test.rb b/test/standard_tag_test.rb
index aae09bd..7b33253 100644
--- a/test/standard_tag_test.rb
+++ b/test/standard_tag_test.rb
@@ -212,6 +212,11 @@ HERE
assert_template_result('a-b:1 a-b:2','a-b:{{a-b}} {%assign a-b = 2 %}a-b:{{a-b}}',assigns)
end
+
+ def test_assign_with_colon_and_spaces
+ assigns = {'var' => {'a:b c' => {'paged' => '1' }}}
+ assert_template_result('var2: 1','{%assign var2 = var["a:b c"].paged %}var2: {{var2}}',assigns)
+ end
def test_capture
assigns = {'var' => 'content' }
@@ -348,6 +353,9 @@ HERE
assert_template_result('one two','{%cycle "one", "two"%} {%cycle "one", "two"%}')
assert_template_result('one two one','{%cycle "one", "two"%} {%cycle "one", "two"%} {%cycle "one", "two"%}')
+
+ assert_template_result('text-align: left text-align: right','{%cycle "text-align: left", "text-align: right" %} {%cycle "text-align: left", "text-align: right"%}')
+
end
def test_multiple_cycles