liquid 1.9.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Manifest.txt +0 -31
- data/Rakefile +1 -1
- data/lib/extras/liquid_view.rb +15 -2
- data/lib/liquid.rb +15 -15
- data/lib/liquid/block.rb +1 -2
- data/lib/liquid/context.rb +89 -99
- data/lib/liquid/drop.rb +6 -4
- data/lib/liquid/errors.rb +1 -0
- data/lib/liquid/standardfilters.rb +56 -11
- data/lib/liquid/strainer.rb +1 -1
- data/lib/liquid/tags/assign.rb +1 -1
- data/lib/liquid/tags/case.rb +2 -2
- data/lib/liquid/tags/cycle.rb +3 -4
- data/lib/liquid/tags/for.rb +53 -35
- data/lib/liquid/tags/if.rb +3 -3
- data/lib/liquid/template.rb +8 -7
- data/lib/liquid/variable.rb +10 -11
- metadata +5 -35
- data/example/server/example_servlet.rb +0 -37
- data/example/server/liquid_servlet.rb +0 -28
- data/example/server/server.rb +0 -12
- data/example/server/templates/index.liquid +0 -6
- data/example/server/templates/products.liquid +0 -45
- data/test/block_test.rb +0 -58
- data/test/condition_test.rb +0 -109
- data/test/context_test.rb +0 -418
- data/test/drop_test.rb +0 -141
- data/test/error_handling_test.rb +0 -78
- data/test/extra/breakpoint.rb +0 -547
- data/test/extra/caller.rb +0 -80
- data/test/file_system_test.rb +0 -30
- data/test/filter_test.rb +0 -98
- data/test/helper.rb +0 -20
- data/test/html_tag_test.rb +0 -31
- data/test/if_else_test.rb +0 -127
- data/test/include_tag_test.rb +0 -114
- data/test/module_ex_test.rb +0 -89
- data/test/output_test.rb +0 -121
- data/test/parsing_quirks_test.rb +0 -29
- data/test/regexp_test.rb +0 -40
- data/test/security_test.rb +0 -41
- data/test/standard_filter_test.rb +0 -126
- data/test/standard_tag_test.rb +0 -383
- data/test/statements_test.rb +0 -137
- data/test/strainer_test.rb +0 -16
- data/test/template_test.rb +0 -26
- data/test/unless_else_test.rb +0 -27
- data/test/variable_test.rb +0 -135
data/test/strainer_test.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require File.dirname(__FILE__) + '/helper'
|
3
|
-
|
4
|
-
class StrainerTest < Test::Unit::TestCase
|
5
|
-
include Liquid
|
6
|
-
|
7
|
-
def test_strainer
|
8
|
-
strainer = Strainer.create(nil)
|
9
|
-
assert_equal false, strainer.respond_to?('__test__')
|
10
|
-
assert_equal false, strainer.respond_to?('test')
|
11
|
-
assert_equal false, strainer.respond_to?('instance_eval')
|
12
|
-
assert_equal false, strainer.respond_to?('__send__')
|
13
|
-
assert_equal true, strainer.respond_to?('size') # from the standard lib
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
data/test/template_test.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
|
3
|
-
class TemplateTest < Test::Unit::TestCase
|
4
|
-
include Liquid
|
5
|
-
|
6
|
-
def test_tokenize_strings
|
7
|
-
assert_equal [' '], Template.new.send(:tokenize, ' ')
|
8
|
-
assert_equal ['hello world'], Template.new.send(:tokenize, 'hello world')
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_tokenize_variables
|
12
|
-
assert_equal ['{{funk}}'], Template.new.send(:tokenize, '{{funk}}')
|
13
|
-
assert_equal [' ', '{{funk}}', ' '], Template.new.send(:tokenize, ' {{funk}} ')
|
14
|
-
assert_equal [' ', '{{funk}}', ' ', '{{so}}', ' ', '{{brother}}', ' '], Template.new.send(:tokenize, ' {{funk}} {{so}} {{brother}} ')
|
15
|
-
assert_equal [' ', '{{ funk }}', ' '], Template.new.send(:tokenize, ' {{ funk }} ')
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_tokenize_blocks
|
19
|
-
assert_equal ['{%comment%}'], Template.new.send(:tokenize, '{%comment%}')
|
20
|
-
assert_equal [' ', '{%comment%}', ' '], Template.new.send(:tokenize, ' {%comment%} ')
|
21
|
-
|
22
|
-
assert_equal [' ', '{%comment%}', ' ', '{%endcomment%}', ' '], Template.new.send(:tokenize, ' {%comment%} {%endcomment%} ')
|
23
|
-
assert_equal [' ', '{% comment %}', ' ', '{% endcomment %}', ' '], Template.new.send(:tokenize, " {% comment %} {% endcomment %} ")
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
data/test/unless_else_test.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/helper'
|
2
|
-
|
3
|
-
class UnlessElseTest < Test::Unit::TestCase
|
4
|
-
include Liquid
|
5
|
-
|
6
|
-
def test_unless
|
7
|
-
assert_template_result(' ',' {% unless true %} this text should not go into the output {% endunless %} ')
|
8
|
-
assert_template_result(' this text should go into the output ',
|
9
|
-
' {% unless false %} this text should go into the output {% endunless %} ')
|
10
|
-
assert_template_result(' you rock ?','{% unless true %} you suck {% endunless %} {% unless false %} you rock {% endunless %}?')
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_unless_else
|
14
|
-
assert_template_result(' YES ','{% unless true %} NO {% else %} YES {% endunless %}')
|
15
|
-
assert_template_result(' YES ','{% unless false %} YES {% else %} NO {% endunless %}')
|
16
|
-
assert_template_result(' YES ','{% unless "foo" %} NO {% else %} YES {% endunless %}')
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_unless_in_loop
|
20
|
-
assert_template_result '23', '{% for i in choices %}{% unless i %}{{ forloop.index }}{% endunless %}{% endfor %}', 'choices' => [1, nil, false]
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_unless_else_in_loop
|
24
|
-
assert_template_result ' TRUE 2 3 ', '{% for i in choices %}{% unless i %} {{ forloop.index }} {% else %} TRUE {% endunless %}{% endfor %}', 'choices' => [1, nil, false]
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
data/test/variable_test.rb
DELETED
@@ -1,135 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require File.dirname(__FILE__) + '/helper'
|
3
|
-
|
4
|
-
class VariableTest < Test::Unit::TestCase
|
5
|
-
include Liquid
|
6
|
-
|
7
|
-
def test_variable
|
8
|
-
var = Variable.new('hello')
|
9
|
-
assert_equal 'hello', var.name
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_filters
|
13
|
-
var = Variable.new('hello | textileze')
|
14
|
-
assert_equal 'hello', var.name
|
15
|
-
assert_equal [[:textileze,[]]], var.filters
|
16
|
-
|
17
|
-
var = Variable.new('hello | textileze | paragraph')
|
18
|
-
assert_equal 'hello', var.name
|
19
|
-
assert_equal [[:textileze,[]], [:paragraph,[]]], var.filters
|
20
|
-
|
21
|
-
var = Variable.new(%! hello | strftime: '%Y'!)
|
22
|
-
assert_equal 'hello', var.name
|
23
|
-
assert_equal [[:strftime,["'%Y'"]]], var.filters
|
24
|
-
|
25
|
-
var = Variable.new(%! 'typo' | link_to: 'Typo', true !)
|
26
|
-
assert_equal %!'typo'!, var.name
|
27
|
-
assert_equal [[:link_to,["'Typo'", "true"]]], var.filters
|
28
|
-
|
29
|
-
var = Variable.new(%! 'typo' | link_to: 'Typo', false !)
|
30
|
-
assert_equal %!'typo'!, var.name
|
31
|
-
assert_equal [[:link_to,["'Typo'", "false"]]], var.filters
|
32
|
-
|
33
|
-
var = Variable.new(%! 'foo' | repeat: 3 !)
|
34
|
-
assert_equal %!'foo'!, var.name
|
35
|
-
assert_equal [[:repeat,["3"]]], var.filters
|
36
|
-
|
37
|
-
var = Variable.new(%! 'foo' | repeat: 3, 3 !)
|
38
|
-
assert_equal %!'foo'!, var.name
|
39
|
-
assert_equal [[:repeat,["3","3"]]], var.filters
|
40
|
-
|
41
|
-
var = Variable.new(%! 'foo' | repeat: 3, 3, 3 !)
|
42
|
-
assert_equal %!'foo'!, var.name
|
43
|
-
assert_equal [[:repeat,["3","3","3"]]], var.filters
|
44
|
-
|
45
|
-
var = Variable.new(%! hello | strftime: '%Y, okay?'!)
|
46
|
-
assert_equal 'hello', var.name
|
47
|
-
assert_equal [[:strftime,["'%Y, okay?'"]]], var.filters
|
48
|
-
|
49
|
-
var = Variable.new(%! hello | things: "%Y, okay?", 'the other one'!)
|
50
|
-
assert_equal 'hello', var.name
|
51
|
-
assert_equal [[:things,["\"%Y, okay?\"","'the other one'"]]], var.filters
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_filter_with_date_parameter
|
55
|
-
|
56
|
-
var = Variable.new(%! '2006-06-06' | date: "%m/%d/%Y"!)
|
57
|
-
assert_equal "'2006-06-06'", var.name
|
58
|
-
assert_equal [[:date,["\"%m/%d/%Y\""]]], var.filters
|
59
|
-
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_filters_without_whitespace
|
63
|
-
var = Variable.new('hello | textileze | paragraph')
|
64
|
-
assert_equal 'hello', var.name
|
65
|
-
assert_equal [[:textileze,[]], [:paragraph,[]]], var.filters
|
66
|
-
|
67
|
-
var = Variable.new('hello|textileze|paragraph')
|
68
|
-
assert_equal 'hello', var.name
|
69
|
-
assert_equal [[:textileze,[]], [:paragraph,[]]], var.filters
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_symbol
|
73
|
-
var = Variable.new("http://disney.com/logo.gif | image: 'med' ")
|
74
|
-
assert_equal 'http://disney.com/logo.gif', var.name
|
75
|
-
assert_equal [[:image,["'med'"]]], var.filters
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_string_single_quoted
|
79
|
-
var = Variable.new(%| "hello" |)
|
80
|
-
assert_equal '"hello"', var.name
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_string_double_quoted
|
84
|
-
var = Variable.new(%| 'hello' |)
|
85
|
-
assert_equal "'hello'", var.name
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_integer
|
89
|
-
var = Variable.new(%| 1000 |)
|
90
|
-
assert_equal "1000", var.name
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_float
|
94
|
-
var = Variable.new(%| 1000.01 |)
|
95
|
-
assert_equal "1000.01", var.name
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_string_with_special_chars
|
99
|
-
var = Variable.new(%| 'hello! $!@.;"ddasd" ' |)
|
100
|
-
assert_equal %|'hello! $!@.;"ddasd" '|, var.name
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_string_dot
|
104
|
-
var = Variable.new(%| test.test |)
|
105
|
-
assert_equal 'test.test', var.name
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
|
110
|
-
class VariableResolutionTest < Test::Unit::TestCase
|
111
|
-
include Liquid
|
112
|
-
|
113
|
-
def test_simple_variable
|
114
|
-
template = Template.parse(%|{{test}}|)
|
115
|
-
assert_equal 'worked', template.render('test' => 'worked')
|
116
|
-
assert_equal 'worked wonderfully', template.render('test' => 'worked wonderfully')
|
117
|
-
end
|
118
|
-
|
119
|
-
def test_simple_with_whitespaces
|
120
|
-
template = Template.parse(%| {{ test }} |)
|
121
|
-
assert_equal ' worked ', template.render('test' => 'worked')
|
122
|
-
assert_equal ' worked wonderfully ', template.render('test' => 'worked wonderfully')
|
123
|
-
end
|
124
|
-
|
125
|
-
def test_ignore_unknown
|
126
|
-
template = Template.parse(%|{{ test }}|)
|
127
|
-
assert_equal '', template.render
|
128
|
-
end
|
129
|
-
|
130
|
-
def test_hash_scoping
|
131
|
-
template = Template.parse(%|{{ test.test }}|)
|
132
|
-
assert_equal 'worked', template.render('test' => {'test' => 'worked'})
|
133
|
-
end
|
134
|
-
|
135
|
-
end
|