liquid 5.2.0 → 5.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +11 -2
- data/lib/liquid/condition.rb +7 -1
- data/lib/liquid/standardfilters.rb +2 -1
- data/lib/liquid/static_registers.rb +5 -1
- data/lib/liquid/version.rb +1 -1
- data/test/integration/context_test.rb +12 -14
- data/test/integration/profiler_test.rb +33 -6
- data/test/integration/standard_filter_test.rb +38 -12
- data/test/unit/condition_unit_test.rb +27 -14
- metadata +49 -49
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0e965825a9194672f6d2b9c3011db0125eb3dbbb6d44cacf67559140c3f0f9b
|
4
|
+
data.tar.gz: d1d98d881037c5ff8cc2b9da99d3b3e002eb1ca1d2bda593c806830c1607a98a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa9caca36072ca79bb727b7bdb9a671e082039c3c999d6cbb79bf8b1feec0d514159daedf2b54f561e66ca5ab7e11273956fb49afbae3580004d3e1d3780b9ab
|
7
|
+
data.tar.gz: a766a7b068287a7db0a70222a149f8a52a659e93c6593bb53a31e5cee279cbc65b7db14eaa1cc0e89e816bd76020bf352814cd9c2c6b4e32436f743ab0c8e629
|
data/History.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
# Liquid Change Log
|
2
2
|
|
3
|
-
## 5.
|
3
|
+
## 5.3.0 2022-03-22
|
4
|
+
|
5
|
+
### Fixes
|
6
|
+
* StandardFilter: Fix missing @context on iterations (#1525) [Thierry Joyal]
|
7
|
+
* Test under Ruby 3.1 (#1533) [petergoldstein]
|
8
|
+
* Fix warning about block and default value in `static_registers.rb` (#1531) [Peter Zhu]
|
9
|
+
|
10
|
+
### Deprecation
|
11
|
+
* Condition#evaluate to require mandatory context argument in Liquid 6.0.0 (#1527) [Thierry Joyal]
|
12
|
+
|
13
|
+
## 5.2.0 2022-03-01
|
4
14
|
|
5
15
|
### Features
|
6
16
|
* Add `remove_last`, and `replace_last` filters (#1422) [Anders Hagbard]
|
@@ -10,7 +20,6 @@
|
|
10
20
|
* Fix some internal errors in filters from invalid input (#1476) [Dylan Thacker-Smith]
|
11
21
|
* Allow dash in filter kwarg name for consistency with Liquid::C (#1518) [CP Clermont]
|
12
22
|
|
13
|
-
|
14
23
|
## 5.1.0 / 2021-09-09
|
15
24
|
|
16
25
|
### Features
|
data/lib/liquid/condition.rb
CHANGED
@@ -61,7 +61,7 @@ module Liquid
|
|
61
61
|
@child_condition = nil
|
62
62
|
end
|
63
63
|
|
64
|
-
def evaluate(context =
|
64
|
+
def evaluate(context = deprecated_default_context)
|
65
65
|
condition = self
|
66
66
|
result = nil
|
67
67
|
loop do
|
@@ -150,6 +150,12 @@ module Liquid
|
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
153
|
+
def deprecated_default_context
|
154
|
+
warn("DEPRECATION WARNING: Condition#evaluate without a context argument is deprecated" \
|
155
|
+
" and will be removed from Liquid 6.0.0.")
|
156
|
+
Context.new
|
157
|
+
end
|
158
|
+
|
153
159
|
class ParseTreeVisitor < Liquid::ParseTreeVisitor
|
154
160
|
def children
|
155
161
|
[
|
@@ -582,8 +582,9 @@ module Liquid
|
|
582
582
|
|
583
583
|
def each
|
584
584
|
@input.each do |e|
|
585
|
+
e = e.respond_to?(:to_liquid) ? e.to_liquid : e
|
585
586
|
e.context = @context if e.respond_to?(:context=)
|
586
|
-
yield(e
|
587
|
+
yield(e)
|
587
588
|
end
|
588
589
|
end
|
589
590
|
end
|
@@ -31,7 +31,11 @@ module Liquid
|
|
31
31
|
if @registers.key?(key)
|
32
32
|
@registers.fetch(key)
|
33
33
|
elsif default != UNDEFINED
|
34
|
-
|
34
|
+
if block_given?
|
35
|
+
@static.fetch(key, &block)
|
36
|
+
else
|
37
|
+
@static.fetch(key, default)
|
38
|
+
end
|
35
39
|
else
|
36
40
|
@static.fetch(key, &block)
|
37
41
|
end
|
data/lib/liquid/version.rb
CHANGED
@@ -24,7 +24,7 @@ class ContextSensitiveDrop < Liquid::Drop
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
class Category
|
27
|
+
class Category
|
28
28
|
attr_accessor :name
|
29
29
|
|
30
30
|
def initialize(name)
|
@@ -36,8 +36,9 @@ class Category < Liquid::Drop
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
class CategoryDrop
|
39
|
+
class CategoryDrop < Liquid::Drop
|
40
40
|
attr_accessor :category, :context
|
41
|
+
|
41
42
|
def initialize(category)
|
42
43
|
@category = category
|
43
44
|
end
|
@@ -405,45 +406,42 @@ class ContextTest < Minitest::Test
|
|
405
406
|
end
|
406
407
|
|
407
408
|
def test_lambda_is_called_once
|
409
|
+
@global = 0
|
410
|
+
|
408
411
|
@context['callcount'] = proc {
|
409
|
-
@global
|
410
|
-
@global += 1
|
412
|
+
@global += 1
|
411
413
|
@global.to_s
|
412
414
|
}
|
413
415
|
|
414
416
|
assert_equal('1', @context['callcount'])
|
415
417
|
assert_equal('1', @context['callcount'])
|
416
418
|
assert_equal('1', @context['callcount'])
|
417
|
-
|
418
|
-
@global = nil
|
419
419
|
end
|
420
420
|
|
421
421
|
def test_nested_lambda_is_called_once
|
422
|
+
@global = 0
|
423
|
+
|
422
424
|
@context['callcount'] = { "lambda" => proc {
|
423
|
-
@global
|
424
|
-
@global += 1
|
425
|
+
@global += 1
|
425
426
|
@global.to_s
|
426
427
|
} }
|
427
428
|
|
428
429
|
assert_equal('1', @context['callcount.lambda'])
|
429
430
|
assert_equal('1', @context['callcount.lambda'])
|
430
431
|
assert_equal('1', @context['callcount.lambda'])
|
431
|
-
|
432
|
-
@global = nil
|
433
432
|
end
|
434
433
|
|
435
434
|
def test_lambda_in_array_is_called_once
|
435
|
+
@global = 0
|
436
|
+
|
436
437
|
@context['callcount'] = [1, 2, proc {
|
437
|
-
@global
|
438
|
-
@global += 1
|
438
|
+
@global += 1
|
439
439
|
@global.to_s
|
440
440
|
}, 4, 5]
|
441
441
|
|
442
442
|
assert_equal('1', @context['callcount[2]'])
|
443
443
|
assert_equal('1', @context['callcount[2]'])
|
444
444
|
assert_equal('1', @context['callcount[2]'])
|
445
|
-
|
446
|
-
@global = nil
|
447
445
|
end
|
448
446
|
|
449
447
|
def test_access_to_context_from_proc
|
@@ -3,6 +3,27 @@
|
|
3
3
|
require 'test_helper'
|
4
4
|
|
5
5
|
class ProfilerTest < Minitest::Test
|
6
|
+
class TestDrop < Liquid::Drop
|
7
|
+
def initialize(value)
|
8
|
+
super()
|
9
|
+
@value = value
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_s
|
13
|
+
artificial_execution_time
|
14
|
+
|
15
|
+
@value
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
# Monotonic clock precision fluctuate based on the operating system
|
21
|
+
# By introducing a small sleep we ensure ourselves to register a non zero unit of time
|
22
|
+
def artificial_execution_time
|
23
|
+
sleep(Process.clock_getres(Process::CLOCK_MONOTONIC))
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
6
27
|
include Liquid
|
7
28
|
|
8
29
|
class ProfilingFileSystem
|
@@ -198,16 +219,22 @@ class ProfilerTest < Minitest::Test
|
|
198
219
|
|
199
220
|
def test_profiling_supports_self_time
|
200
221
|
t = Template.parse("{% for item in collection %} {{ item }} {% endfor %}", profile: true)
|
201
|
-
|
202
|
-
|
222
|
+
collection = [
|
223
|
+
TestDrop.new("one"),
|
224
|
+
TestDrop.new("two"),
|
225
|
+
]
|
226
|
+
output = t.render!("collection" => collection)
|
227
|
+
assert_equal(" one two ", output)
|
203
228
|
|
204
|
-
|
229
|
+
leaf = t.profiler[0].children[0]
|
230
|
+
assert_operator(leaf.self_time, :>, 0.0)
|
205
231
|
end
|
206
232
|
|
207
233
|
def test_profiling_supports_total_time
|
208
|
-
t = Template.parse("{% if true %} {
|
209
|
-
t.render!
|
234
|
+
t = Template.parse("{% if true %} {{ test }} {% endif %}", profile: true)
|
235
|
+
output = t.render!("test" => TestDrop.new("one"))
|
236
|
+
assert_equal(" one ", output)
|
210
237
|
|
211
|
-
assert_operator(t.profiler[0].total_time, :>, 0)
|
238
|
+
assert_operator(t.profiler[0].total_time, :>, 0.0)
|
212
239
|
end
|
213
240
|
end
|
@@ -3,10 +3,6 @@
|
|
3
3
|
|
4
4
|
require 'test_helper'
|
5
5
|
|
6
|
-
class Filters
|
7
|
-
include Liquid::StandardFilters
|
8
|
-
end
|
9
|
-
|
10
6
|
class TestThing
|
11
7
|
attr_reader :foo
|
12
8
|
|
@@ -29,8 +25,24 @@ class TestThing
|
|
29
25
|
end
|
30
26
|
|
31
27
|
class TestDrop < Liquid::Drop
|
32
|
-
def
|
33
|
-
|
28
|
+
def initialize(value:)
|
29
|
+
@value = value
|
30
|
+
end
|
31
|
+
|
32
|
+
attr_reader :value
|
33
|
+
|
34
|
+
def registers
|
35
|
+
@context.registers
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
class TestModel
|
40
|
+
def initialize(value:)
|
41
|
+
@value = value
|
42
|
+
end
|
43
|
+
|
44
|
+
def to_liquid
|
45
|
+
TestDrop.new(value: @value)
|
34
46
|
end
|
35
47
|
end
|
36
48
|
|
@@ -53,10 +65,13 @@ class NumberLikeThing < Liquid::Drop
|
|
53
65
|
end
|
54
66
|
|
55
67
|
class StandardFiltersTest < Minitest::Test
|
68
|
+
Filters = Class.new(Liquid::StrainerTemplate)
|
69
|
+
Filters.add_filter(Liquid::StandardFilters)
|
70
|
+
|
56
71
|
include Liquid
|
57
72
|
|
58
73
|
def setup
|
59
|
-
@filters = Filters.new
|
74
|
+
@filters = Filters.new(Context.new)
|
60
75
|
end
|
61
76
|
|
62
77
|
def test_size
|
@@ -363,8 +378,9 @@ class StandardFiltersTest < Minitest::Test
|
|
363
378
|
assert_equal(["foo"], @filters.uniq("foo"))
|
364
379
|
assert_equal([1, 3, 2, 4], @filters.uniq([1, 1, 3, 2, 3, 1, 4, 3, 2, 1]))
|
365
380
|
assert_equal([{ "a" => 1 }, { "a" => 3 }, { "a" => 2 }], @filters.uniq([{ "a" => 1 }, { "a" => 3 }, { "a" => 1 }, { "a" => 2 }], "a"))
|
366
|
-
|
367
|
-
|
381
|
+
test_drop = TestDrop.new(value: "test")
|
382
|
+
test_drop_alternate = TestDrop.new(value: "test")
|
383
|
+
assert_equal([test_drop], @filters.uniq([test_drop, test_drop_alternate], 'value'))
|
368
384
|
end
|
369
385
|
|
370
386
|
def test_uniq_empty_array
|
@@ -423,6 +439,16 @@ class StandardFiltersTest < Minitest::Test
|
|
423
439
|
assert_template_result("woot: 1", '{{ foo | map: "whatever" }}', "foo" => [t])
|
424
440
|
end
|
425
441
|
|
442
|
+
def test_map_calls_context=
|
443
|
+
model = TestModel.new(value: "test")
|
444
|
+
|
445
|
+
template = Template.parse('{{ foo | map: "registers" }}')
|
446
|
+
template.registers[:test] = 1234
|
447
|
+
template.assigns['foo'] = [model]
|
448
|
+
|
449
|
+
assert_template_result("{:test=>1234}", template.render!)
|
450
|
+
end
|
451
|
+
|
426
452
|
def test_map_on_hashes
|
427
453
|
assert_template_result("4217", '{{ thing | map: "foo" | map: "bar" }}',
|
428
454
|
"thing" => { "foo" => [{ "bar" => 42 }, { "bar" => 17 }] })
|
@@ -441,9 +467,9 @@ class StandardFiltersTest < Minitest::Test
|
|
441
467
|
end
|
442
468
|
|
443
469
|
def test_map_over_proc
|
444
|
-
drop = TestDrop.new
|
470
|
+
drop = TestDrop.new(value: "testfoo")
|
445
471
|
p = proc { drop }
|
446
|
-
templ = '{{ procs | map: "
|
472
|
+
templ = '{{ procs | map: "value" }}'
|
447
473
|
assert_template_result("testfoo", templ, "procs" => [p])
|
448
474
|
end
|
449
475
|
|
@@ -839,7 +865,7 @@ class StandardFiltersTest < Minitest::Test
|
|
839
865
|
end
|
840
866
|
|
841
867
|
def test_all_filters_never_raise_non_liquid_exception
|
842
|
-
test_drop = TestDrop.new
|
868
|
+
test_drop = TestDrop.new(value: "test")
|
843
869
|
test_drop.context = Context.new
|
844
870
|
test_enum = TestEnumerable.new
|
845
871
|
test_enum.context = Context.new
|
@@ -10,8 +10,8 @@ class ConditionUnitTest < Minitest::Test
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def test_basic_condition
|
13
|
-
assert_equal(false, Condition.new(1, '==', 2).evaluate)
|
14
|
-
assert_equal(true, Condition.new(1, '==', 1).evaluate)
|
13
|
+
assert_equal(false, Condition.new(1, '==', 2).evaluate(Context.new))
|
14
|
+
assert_equal(true, Condition.new(1, '==', 1).evaluate(Context.new))
|
15
15
|
end
|
16
16
|
|
17
17
|
def test_default_operators_evalute_true
|
@@ -67,11 +67,11 @@ class ConditionUnitTest < Minitest::Test
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def test_hash_compare_backwards_compatibility
|
70
|
-
assert_nil(Condition.new({}, '>', 2).evaluate)
|
71
|
-
assert_nil(Condition.new(2, '>', {}).evaluate)
|
72
|
-
assert_equal(false, Condition.new({}, '==', 2).evaluate)
|
73
|
-
assert_equal(true, Condition.new({ 'a' => 1 }, '==', 'a' => 1).evaluate)
|
74
|
-
assert_equal(true, Condition.new({ 'a' => 2 }, 'contains', 'a').evaluate)
|
70
|
+
assert_nil(Condition.new({}, '>', 2).evaluate(Context.new))
|
71
|
+
assert_nil(Condition.new(2, '>', {}).evaluate(Context.new))
|
72
|
+
assert_equal(false, Condition.new({}, '==', 2).evaluate(Context.new))
|
73
|
+
assert_equal(true, Condition.new({ 'a' => 1 }, '==', 'a' => 1).evaluate(Context.new))
|
74
|
+
assert_equal(true, Condition.new({ 'a' => 2 }, 'contains', 'a').evaluate(Context.new))
|
75
75
|
end
|
76
76
|
|
77
77
|
def test_contains_works_on_arrays
|
@@ -106,30 +106,29 @@ class ConditionUnitTest < Minitest::Test
|
|
106
106
|
|
107
107
|
def test_or_condition
|
108
108
|
condition = Condition.new(1, '==', 2)
|
109
|
-
|
110
|
-
assert_equal(false, condition.evaluate)
|
109
|
+
assert_equal(false, condition.evaluate(Context.new))
|
111
110
|
|
112
111
|
condition.or(Condition.new(2, '==', 1))
|
113
112
|
|
114
|
-
assert_equal(false, condition.evaluate)
|
113
|
+
assert_equal(false, condition.evaluate(Context.new))
|
115
114
|
|
116
115
|
condition.or(Condition.new(1, '==', 1))
|
117
116
|
|
118
|
-
assert_equal(true, condition.evaluate)
|
117
|
+
assert_equal(true, condition.evaluate(Context.new))
|
119
118
|
end
|
120
119
|
|
121
120
|
def test_and_condition
|
122
121
|
condition = Condition.new(1, '==', 1)
|
123
122
|
|
124
|
-
assert_equal(true, condition.evaluate)
|
123
|
+
assert_equal(true, condition.evaluate(Context.new))
|
125
124
|
|
126
125
|
condition.and(Condition.new(2, '==', 2))
|
127
126
|
|
128
|
-
assert_equal(true, condition.evaluate)
|
127
|
+
assert_equal(true, condition.evaluate(Context.new))
|
129
128
|
|
130
129
|
condition.and(Condition.new(2, '==', 1))
|
131
130
|
|
132
|
-
assert_equal(false, condition.evaluate)
|
131
|
+
assert_equal(false, condition.evaluate(Context.new))
|
133
132
|
end
|
134
133
|
|
135
134
|
def test_should_allow_custom_proc_operator
|
@@ -148,6 +147,20 @@ class ConditionUnitTest < Minitest::Test
|
|
148
147
|
assert_evaluates_true(VariableLookup.new("one"), '==', VariableLookup.new("another"))
|
149
148
|
end
|
150
149
|
|
150
|
+
def test_default_context_is_deprecated
|
151
|
+
if Gem::Version.new(Liquid::VERSION) >= Gem::Version.new('6.0.0')
|
152
|
+
flunk("Condition#evaluate without a context argument is to be removed")
|
153
|
+
end
|
154
|
+
|
155
|
+
_out, err = capture_io do
|
156
|
+
assert_equal(true, Condition.new(1, '==', 1).evaluate)
|
157
|
+
end
|
158
|
+
|
159
|
+
expected = "DEPRECATION WARNING: Condition#evaluate without a context argument is deprecated" \
|
160
|
+
" and will be removed from Liquid 6.0.0."
|
161
|
+
assert_includes(err.lines.map(&:strip), expected)
|
162
|
+
end
|
163
|
+
|
151
164
|
private
|
152
165
|
|
153
166
|
def assert_evaluates_true(left, op, right)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: liquid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Lütke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -193,61 +193,61 @@ signing_key:
|
|
193
193
|
specification_version: 4
|
194
194
|
summary: A secure, non-evaling end user template engine with aesthetic markup.
|
195
195
|
test_files:
|
196
|
-
- test/
|
197
|
-
- test/
|
198
|
-
- test/
|
196
|
+
- test/unit/parser_unit_test.rb
|
197
|
+
- test/unit/static_registers_unit_test.rb
|
198
|
+
- test/unit/tag_unit_test.rb
|
199
|
+
- test/unit/strainer_factory_unit_test.rb
|
200
|
+
- test/unit/partial_cache_unit_test.rb
|
201
|
+
- test/unit/strainer_template_unit_test.rb
|
202
|
+
- test/unit/lexer_unit_test.rb
|
203
|
+
- test/unit/parse_tree_visitor_test.rb
|
204
|
+
- test/unit/i18n_unit_test.rb
|
205
|
+
- test/unit/tokenizer_unit_test.rb
|
206
|
+
- test/unit/template_factory_unit_test.rb
|
207
|
+
- test/unit/condition_unit_test.rb
|
208
|
+
- test/unit/block_unit_test.rb
|
209
|
+
- test/unit/file_system_unit_test.rb
|
210
|
+
- test/unit/variable_unit_test.rb
|
211
|
+
- test/unit/template_unit_test.rb
|
212
|
+
- test/unit/tags/if_tag_unit_test.rb
|
213
|
+
- test/unit/tags/case_tag_unit_test.rb
|
214
|
+
- test/unit/tags/for_tag_unit_test.rb
|
215
|
+
- test/unit/regexp_unit_test.rb
|
216
|
+
- test/test_helper.rb
|
217
|
+
- test/integration/document_test.rb
|
218
|
+
- test/integration/tag_test.rb
|
199
219
|
- test/integration/filter_kwarg_test.rb
|
200
|
-
- test/integration/capture_test.rb
|
201
220
|
- test/integration/trim_mode_test.rb
|
221
|
+
- test/integration/profiler_test.rb
|
222
|
+
- test/integration/security_test.rb
|
223
|
+
- test/integration/capture_test.rb
|
224
|
+
- test/integration/parsing_quirks_test.rb
|
225
|
+
- test/integration/blank_test.rb
|
226
|
+
- test/integration/template_test.rb
|
227
|
+
- test/integration/tag/disableable_test.rb
|
228
|
+
- test/integration/variable_test.rb
|
202
229
|
- test/integration/output_test.rb
|
203
|
-
- test/integration/
|
204
|
-
- test/integration/
|
205
|
-
- test/integration/
|
206
|
-
- test/integration/
|
207
|
-
- test/integration/
|
208
|
-
- test/integration/
|
230
|
+
- test/integration/drop_test.rb
|
231
|
+
- test/integration/standard_filter_test.rb
|
232
|
+
- test/integration/expression_test.rb
|
233
|
+
- test/integration/block_test.rb
|
234
|
+
- test/integration/hash_ordering_test.rb
|
235
|
+
- test/integration/filter_test.rb
|
209
236
|
- test/integration/tags/break_tag_test.rb
|
210
|
-
- test/integration/tags/unless_else_tag_test.rb
|
211
237
|
- test/integration/tags/standard_tag_test.rb
|
212
|
-
- test/integration/tags/for_tag_test.rb
|
213
|
-
- test/integration/tags/statements_test.rb
|
214
238
|
- test/integration/tags/liquid_tag_test.rb
|
239
|
+
- test/integration/tags/table_row_test.rb
|
215
240
|
- test/integration/tags/render_tag_test.rb
|
241
|
+
- test/integration/tags/include_tag_test.rb
|
242
|
+
- test/integration/tags/increment_tag_test.rb
|
243
|
+
- test/integration/tags/if_else_tag_test.rb
|
244
|
+
- test/integration/tags/continue_tag_test.rb
|
216
245
|
- test/integration/tags/echo_test.rb
|
217
|
-
- test/integration/
|
246
|
+
- test/integration/tags/raw_tag_test.rb
|
247
|
+
- test/integration/tags/for_tag_test.rb
|
248
|
+
- test/integration/tags/statements_test.rb
|
249
|
+
- test/integration/tags/unless_else_tag_test.rb
|
250
|
+
- test/integration/context_test.rb
|
218
251
|
- test/integration/error_handling_test.rb
|
219
|
-
- test/integration/template_test.rb
|
220
|
-
- test/integration/expression_test.rb
|
221
|
-
- test/integration/standard_filter_test.rb
|
222
|
-
- test/integration/tag_test.rb
|
223
|
-
- test/integration/hash_ordering_test.rb
|
224
|
-
- test/integration/security_test.rb
|
225
|
-
- test/integration/blank_test.rb
|
226
|
-
- test/integration/filter_test.rb
|
227
|
-
- test/integration/document_test.rb
|
228
|
-
- test/integration/block_test.rb
|
229
|
-
- test/integration/profiler_test.rb
|
230
|
-
- test/integration/variable_test.rb
|
231
252
|
- test/integration/assign_test.rb
|
232
|
-
- test/unit/template_unit_test.rb
|
233
|
-
- test/unit/tag_unit_test.rb
|
234
|
-
- test/unit/condition_unit_test.rb
|
235
|
-
- test/unit/strainer_template_unit_test.rb
|
236
|
-
- test/unit/lexer_unit_test.rb
|
237
|
-
- test/unit/partial_cache_unit_test.rb
|
238
|
-
- test/unit/template_factory_unit_test.rb
|
239
|
-
- test/unit/tags/if_tag_unit_test.rb
|
240
|
-
- test/unit/tags/case_tag_unit_test.rb
|
241
|
-
- test/unit/tags/for_tag_unit_test.rb
|
242
|
-
- test/unit/static_registers_unit_test.rb
|
243
|
-
- test/unit/regexp_unit_test.rb
|
244
|
-
- test/unit/i18n_unit_test.rb
|
245
|
-
- test/unit/parse_tree_visitor_test.rb
|
246
|
-
- test/unit/variable_unit_test.rb
|
247
|
-
- test/unit/tokenizer_unit_test.rb
|
248
|
-
- test/unit/file_system_unit_test.rb
|
249
|
-
- test/unit/block_unit_test.rb
|
250
|
-
- test/unit/strainer_factory_unit_test.rb
|
251
|
-
- test/unit/parser_unit_test.rb
|
252
|
-
- test/test_helper.rb
|
253
253
|
- test/fixtures/en_locale.yml
|