roger 1.4.6 → 1.5.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.
- checksums.yaml +13 -5
- data/.travis.yml +1 -1
- data/CHANGELOG.md +9 -0
- data/doc/templating.md +9 -4
- data/lib/roger/rack/roger.rb +4 -3
- data/lib/roger/release/processors/mockup.rb +25 -42
- data/lib/roger/renderer.rb +294 -0
- data/lib/roger/resolver.rb +118 -37
- data/lib/roger/template.rb +44 -115
- data/lib/roger/template/helpers/capture.rb +4 -2
- data/lib/roger/template/helpers/partial.rb +9 -20
- data/lib/roger/template/helpers/rendering.rb +15 -0
- data/lib/roger/template/template_context.rb +10 -4
- data/lib/roger/version.rb +1 -1
- data/test/project/html/formats/markdown-erb.md.erb +0 -0
- data/test/project/html/formats/preferred.html.erb +0 -0
- data/test/project/html/formats/preferred.json.erb +0 -0
- data/test/project/html/partials/_local.html.erb +1 -0
- data/test/project/html/renderer/file.html.erb +1 -0
- data/test/project/html/renderer/recursive.html.erb +1 -0
- data/test/project/partials/test/_underscored.html.erb +1 -0
- data/test/project/partials/test/deep_recursive.html.erb +1 -0
- data/test/project/partials/test/recursive.html.erb +1 -0
- data/test/unit/release/processors/mockup_test.rb +31 -15
- data/test/unit/renderer/renderer_base_test.rb +123 -0
- data/test/unit/renderer/renderer_content_for_test.rb +50 -0
- data/test/unit/renderer/renderer_helper_test.rb +54 -0
- data/test/unit/renderer/renderer_partial_test.rb +88 -0
- data/test/unit/resolver_test.rb +43 -22
- data/test/unit/template/template_base_test.rb +29 -0
- metadata +39 -11
- data/test/unit/template_test.rb +0 -208
data/test/unit/resolver_test.rb
CHANGED
@@ -10,46 +10,63 @@ module Roger
|
|
10
10
|
@resolver = Roger::Resolver.new(@base)
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
14
|
-
|
15
|
-
|
16
|
-
# This should not be found on it's own as it will be processed
|
17
|
-
assert_equal @resolver.find_template("formats/markdown.md"), nil
|
13
|
+
def assert_find(exp, search)
|
14
|
+
exp = @base + exp unless exp.nil?
|
15
|
+
assert_equal exp, @resolver.find_template(search)
|
18
16
|
end
|
19
17
|
|
20
18
|
def test_find_template_index_path
|
21
|
-
|
19
|
+
assert_find "formats/index.html", "formats"
|
22
20
|
end
|
23
21
|
|
24
22
|
def test_find_template_html_without_extension
|
25
|
-
|
26
|
-
|
23
|
+
assert_find "formats/index.html", "formats/index"
|
24
|
+
assert_find "formats/erb.html.erb", "formats/erb"
|
27
25
|
end
|
28
26
|
|
29
27
|
def test_find_template_with_template_extension
|
30
|
-
|
28
|
+
assert_find "formats/markdown.md", "formats/markdown"
|
31
29
|
end
|
32
30
|
|
33
31
|
def test_find_template_with_double_extensions
|
34
|
-
|
35
|
-
|
32
|
+
assert_find "formats/erb.html.erb", "formats/erb"
|
33
|
+
assert_find "formats/erb.html.erb", "formats/erb.html"
|
34
|
+
assert_find "formats/erb.html.erb", "formats/erb.html.erb"
|
35
|
+
|
36
|
+
assert_find "formats/markdown-erb.md.erb", "formats/markdown-erb"
|
37
|
+
assert_find "formats/markdown-erb.md.erb", "formats/markdown-erb.md"
|
38
|
+
assert_find "formats/markdown-erb.md.erb", "formats/markdown-erb.md.erb"
|
39
|
+
end
|
36
40
|
|
37
|
-
|
41
|
+
def test_not_find_template_with_non_matching_double_extension
|
42
|
+
assert_find "formats/json.json.erb", "formats/json.json"
|
43
|
+
assert_find nil, "formats/json.html"
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_find_template_with_aliassed_extension
|
47
|
+
assert_find "formats/markdown-erb.md.erb", "formats/markdown-erb.html"
|
48
|
+
assert_find "formats/markdown.md", "formats/markdown.html"
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_find_template_exact_match
|
52
|
+
assert_find "formats/index.html", "formats/index.html"
|
53
|
+
assert_find "formats/erb.html.erb", "formats/erb.html.erb"
|
38
54
|
end
|
39
55
|
|
40
56
|
def test_find_template_with_preferred_extension
|
41
57
|
assert_equal(
|
42
|
-
@resolver.find_template("formats/
|
43
|
-
@base + "formats/
|
58
|
+
@resolver.find_template("formats/preferred", prefer: "html"),
|
59
|
+
@base + "formats/preferred.html.erb"
|
44
60
|
)
|
45
|
-
end
|
46
61
|
|
47
|
-
|
48
|
-
|
62
|
+
assert_equal(
|
63
|
+
@resolver.find_template("formats/preferred", prefer: "json"),
|
64
|
+
@base + "formats/preferred.json.erb"
|
65
|
+
)
|
49
66
|
end
|
50
67
|
|
51
68
|
def test_path_to_url
|
52
|
-
assert_equal @resolver.path_to_url(@base + "formats/erb.html.erb")
|
69
|
+
assert_equal "/formats/erb.html.erb", @resolver.path_to_url(@base + "formats/erb.html.erb")
|
53
70
|
end
|
54
71
|
|
55
72
|
def test_path_to_url_relative_to_relative_path
|
@@ -77,6 +94,10 @@ module Roger
|
|
77
94
|
@resolver = Roger::Resolver.new([@base + "html", @base + "partials"])
|
78
95
|
end
|
79
96
|
|
97
|
+
def assert_find(exp, search)
|
98
|
+
assert_equal @base + exp, @resolver.find_template(search)
|
99
|
+
end
|
100
|
+
|
80
101
|
def test_add_load_path
|
81
102
|
@resolver.load_paths << @base + "henk"
|
82
103
|
|
@@ -84,16 +105,16 @@ module Roger
|
|
84
105
|
end
|
85
106
|
|
86
107
|
def test_find_template_path
|
87
|
-
|
88
|
-
|
108
|
+
assert_find "html/formats/index.html", "formats/index"
|
109
|
+
assert_find "partials/test/simple.html.erb", "test/simple"
|
89
110
|
end
|
90
111
|
|
91
112
|
def test_find_template_path_ordered
|
92
|
-
|
113
|
+
assert_find "html/formats/erb.html.erb", "formats/erb"
|
93
114
|
|
94
115
|
@resolver.load_paths.reverse!
|
95
116
|
|
96
|
-
|
117
|
+
assert_find "partials/formats/erb.html.erb", "formats/erb"
|
97
118
|
end
|
98
119
|
end
|
99
120
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# Generators register themself on the CLI module
|
3
|
+
require "test_helper"
|
4
|
+
require "./lib/roger/template.rb"
|
5
|
+
|
6
|
+
module Roger
|
7
|
+
# Roger template tests
|
8
|
+
class TemplateTest < ::Test::Unit::TestCase
|
9
|
+
def setup
|
10
|
+
@base = Pathname.new(File.dirname(__FILE__) + "/../../project")
|
11
|
+
@config = {
|
12
|
+
partials_path: @base + "partials",
|
13
|
+
layouts_path: @base + "layouts",
|
14
|
+
source_path: @base + "html/test.html.erb"
|
15
|
+
}
|
16
|
+
@template_path = @base + "html"
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_render
|
20
|
+
template = Template.new("<%= 'test' %>", {}, source_path: "test.erb")
|
21
|
+
assert_equal "test", template.render
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_render_with_block
|
25
|
+
template = Template.new("<%= yield %>", {}, source_path: "test.erb")
|
26
|
+
assert_equal "inner", template.render { "inner" }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Flurin Egger
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2016-01-07 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: thor
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
name: rack
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - '>='
|
33
|
+
- - ! '>='
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 1.0.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- - '>='
|
40
|
+
- - ! '>='
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 1.0.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
name: redcarpet
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- - '>='
|
89
|
+
- - ! '>='
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: 3.1.1
|
92
92
|
type: :runtime
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
|
-
- - '>='
|
96
|
+
- - ! '>='
|
97
97
|
- !ruby/object:Gem::Version
|
98
98
|
version: 3.1.1
|
99
99
|
- !ruby/object:Gem::Dependency
|
@@ -244,12 +244,14 @@ files:
|
|
244
244
|
- lib/roger/release/scm.rb
|
245
245
|
- lib/roger/release/scm/fixed.rb
|
246
246
|
- lib/roger/release/scm/git.rb
|
247
|
+
- lib/roger/renderer.rb
|
247
248
|
- lib/roger/resolver.rb
|
248
249
|
- lib/roger/rogerfile.rb
|
249
250
|
- lib/roger/server.rb
|
250
251
|
- lib/roger/template.rb
|
251
252
|
- lib/roger/template/helpers/capture.rb
|
252
253
|
- lib/roger/template/helpers/partial.rb
|
254
|
+
- lib/roger/template/helpers/rendering.rb
|
253
255
|
- lib/roger/template/template_context.rb
|
254
256
|
- lib/roger/test.rb
|
255
257
|
- lib/roger/testing/mock_project.rb
|
@@ -265,14 +267,20 @@ files:
|
|
265
267
|
- test/project/html/formats/erb.html.erb
|
266
268
|
- test/project/html/formats/index.html
|
267
269
|
- test/project/html/formats/json.json.erb
|
270
|
+
- test/project/html/formats/markdown-erb.md.erb
|
268
271
|
- test/project/html/formats/markdown.md
|
272
|
+
- test/project/html/formats/preferred.html.erb
|
273
|
+
- test/project/html/formats/preferred.json.erb
|
269
274
|
- test/project/html/front_matter/erb.html.erb
|
270
275
|
- test/project/html/front_matter/markdown.md
|
271
276
|
- test/project/html/layouts/content-for.html.erb
|
272
277
|
- test/project/html/layouts/erb.html.erb
|
273
278
|
- test/project/html/mockup/encoding.html
|
279
|
+
- test/project/html/partials/_local.html.erb
|
274
280
|
- test/project/html/partials/erb.html.erb
|
275
281
|
- test/project/html/partials/load_path.html.erb
|
282
|
+
- test/project/html/renderer/file.html.erb
|
283
|
+
- test/project/html/renderer/recursive.html.erb
|
276
284
|
- test/project/html/static/non-relative.html.erb
|
277
285
|
- test/project/html/static/relative.html.erb
|
278
286
|
- test/project/layouts/test.html.erb
|
@@ -285,10 +293,13 @@ files:
|
|
285
293
|
- test/project/lib/tests/succeed/succeed.rb
|
286
294
|
- test/project/partials/formats/erb.html.erb
|
287
295
|
- test/project/partials/partials-test.html.erb
|
296
|
+
- test/project/partials/test/_underscored.html.erb
|
297
|
+
- test/project/partials/test/deep_recursive.html.erb
|
288
298
|
- test/project/partials/test/erb.html.erb
|
289
299
|
- test/project/partials/test/front_matter.html.erb
|
290
300
|
- test/project/partials/test/json.json.erb
|
291
301
|
- test/project/partials/test/markdown.md
|
302
|
+
- test/project/partials/test/recursive.html.erb
|
292
303
|
- test/project/partials/test/simple.html.erb
|
293
304
|
- test/project/partials/test/yield.html.erb
|
294
305
|
- test/project/partials2/partials2-test.html.erb
|
@@ -315,9 +326,13 @@ files:
|
|
315
326
|
- test/unit/release/scm/fixed_test.rb
|
316
327
|
- test/unit/release/scm/git_test.rb
|
317
328
|
- test/unit/release_test.rb
|
329
|
+
- test/unit/renderer/renderer_base_test.rb
|
330
|
+
- test/unit/renderer/renderer_content_for_test.rb
|
331
|
+
- test/unit/renderer/renderer_helper_test.rb
|
332
|
+
- test/unit/renderer/renderer_partial_test.rb
|
318
333
|
- test/unit/resolver_test.rb
|
319
334
|
- test/unit/server_test.rb
|
320
|
-
- test/unit/
|
335
|
+
- test/unit/template/template_base_test.rb
|
321
336
|
- test/unit/test_helper.rb
|
322
337
|
- test/unit/test_test.rb
|
323
338
|
homepage: http://github.com/digitpaint/roger
|
@@ -331,17 +346,17 @@ require_paths:
|
|
331
346
|
- lib
|
332
347
|
required_ruby_version: !ruby/object:Gem::Requirement
|
333
348
|
requirements:
|
334
|
-
- - '>='
|
349
|
+
- - ! '>='
|
335
350
|
- !ruby/object:Gem::Version
|
336
351
|
version: '0'
|
337
352
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
338
353
|
requirements:
|
339
|
-
- - '>='
|
354
|
+
- - ! '>='
|
340
355
|
- !ruby/object:Gem::Version
|
341
356
|
version: '0'
|
342
357
|
requirements: []
|
343
358
|
rubyforge_project:
|
344
|
-
rubygems_version: 2.
|
359
|
+
rubygems_version: 2.4.8
|
345
360
|
signing_key:
|
346
361
|
specification_version: 4
|
347
362
|
summary: Roger is a set of tools to create self-containing HTML mockups.
|
@@ -355,14 +370,20 @@ test_files:
|
|
355
370
|
- test/project/html/formats/erb.html.erb
|
356
371
|
- test/project/html/formats/index.html
|
357
372
|
- test/project/html/formats/json.json.erb
|
373
|
+
- test/project/html/formats/markdown-erb.md.erb
|
358
374
|
- test/project/html/formats/markdown.md
|
375
|
+
- test/project/html/formats/preferred.html.erb
|
376
|
+
- test/project/html/formats/preferred.json.erb
|
359
377
|
- test/project/html/front_matter/erb.html.erb
|
360
378
|
- test/project/html/front_matter/markdown.md
|
361
379
|
- test/project/html/layouts/content-for.html.erb
|
362
380
|
- test/project/html/layouts/erb.html.erb
|
363
381
|
- test/project/html/mockup/encoding.html
|
382
|
+
- test/project/html/partials/_local.html.erb
|
364
383
|
- test/project/html/partials/erb.html.erb
|
365
384
|
- test/project/html/partials/load_path.html.erb
|
385
|
+
- test/project/html/renderer/file.html.erb
|
386
|
+
- test/project/html/renderer/recursive.html.erb
|
366
387
|
- test/project/html/static/non-relative.html.erb
|
367
388
|
- test/project/html/static/relative.html.erb
|
368
389
|
- test/project/layouts/test.html.erb
|
@@ -375,10 +396,13 @@ test_files:
|
|
375
396
|
- test/project/lib/tests/succeed/succeed.rb
|
376
397
|
- test/project/partials/formats/erb.html.erb
|
377
398
|
- test/project/partials/partials-test.html.erb
|
399
|
+
- test/project/partials/test/_underscored.html.erb
|
400
|
+
- test/project/partials/test/deep_recursive.html.erb
|
378
401
|
- test/project/partials/test/erb.html.erb
|
379
402
|
- test/project/partials/test/front_matter.html.erb
|
380
403
|
- test/project/partials/test/json.json.erb
|
381
404
|
- test/project/partials/test/markdown.md
|
405
|
+
- test/project/partials/test/recursive.html.erb
|
382
406
|
- test/project/partials/test/simple.html.erb
|
383
407
|
- test/project/partials/test/yield.html.erb
|
384
408
|
- test/project/partials2/partials2-test.html.erb
|
@@ -405,8 +429,12 @@ test_files:
|
|
405
429
|
- test/unit/release/scm/fixed_test.rb
|
406
430
|
- test/unit/release/scm/git_test.rb
|
407
431
|
- test/unit/release_test.rb
|
432
|
+
- test/unit/renderer/renderer_base_test.rb
|
433
|
+
- test/unit/renderer/renderer_content_for_test.rb
|
434
|
+
- test/unit/renderer/renderer_helper_test.rb
|
435
|
+
- test/unit/renderer/renderer_partial_test.rb
|
408
436
|
- test/unit/resolver_test.rb
|
409
437
|
- test/unit/server_test.rb
|
410
|
-
- test/unit/
|
438
|
+
- test/unit/template/template_base_test.rb
|
411
439
|
- test/unit/test_helper.rb
|
412
440
|
- test/unit/test_test.rb
|
data/test/unit/template_test.rb
DELETED
@@ -1,208 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
# Generators register themself on the CLI module
|
3
|
-
require "test_helper"
|
4
|
-
require "./lib/roger/template.rb"
|
5
|
-
|
6
|
-
module Roger
|
7
|
-
# A simple template helper to use for testing
|
8
|
-
module TemplateHelper
|
9
|
-
def a
|
10
|
-
"a"
|
11
|
-
end
|
12
|
-
|
13
|
-
def from_env(key)
|
14
|
-
env[key]
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# Roger template tests
|
19
|
-
class TemplateTest < ::Test::Unit::TestCase
|
20
|
-
def setup
|
21
|
-
@base = Pathname.new(File.dirname(__FILE__) + "/../project")
|
22
|
-
@config = {
|
23
|
-
partials_path: @base + "partials",
|
24
|
-
layouts_path: @base + "layouts",
|
25
|
-
source_path: @base + "html/test.html.erb"
|
26
|
-
}
|
27
|
-
@template_path = @base + "html"
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_encoding
|
31
|
-
end
|
32
|
-
|
33
|
-
# Extension
|
34
|
-
def test_source_extension
|
35
|
-
mime_types = {
|
36
|
-
"html" => "html",
|
37
|
-
"html.erb" => "html.erb",
|
38
|
-
"css.erb" => "css.erb",
|
39
|
-
"json.erb" => "json.erb",
|
40
|
-
"sjon.json.erb" => "json.erb",
|
41
|
-
"js.erb" => "js.erb"
|
42
|
-
}
|
43
|
-
|
44
|
-
mime_types.each do |ext, ext_out|
|
45
|
-
assert_equal(
|
46
|
-
ext_out,
|
47
|
-
Template.new("", @config.update(source_path: @base + "html/file.#{ext}")).source_extension
|
48
|
-
)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_target_extension
|
53
|
-
mime_types = {
|
54
|
-
"html" => "html",
|
55
|
-
"html.erb" => "html",
|
56
|
-
"css.erb" => "css",
|
57
|
-
"json.erb" => "json",
|
58
|
-
"js.erb" => "js"
|
59
|
-
}
|
60
|
-
|
61
|
-
mime_types.each do |ext, ext_out|
|
62
|
-
assert_equal(
|
63
|
-
ext_out,
|
64
|
-
Template.new("", @config.update(source_path: @base + "html/file.#{ext}")).target_extension
|
65
|
-
)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
# Mime type
|
70
|
-
def test_target_mime_type
|
71
|
-
mime_types = {
|
72
|
-
"html" => "text/html",
|
73
|
-
"html.erb" => "text/html",
|
74
|
-
"css.erb" => "text/css",
|
75
|
-
"json.erb" => "application/json"
|
76
|
-
}
|
77
|
-
|
78
|
-
mime_types.each do |ext, mime|
|
79
|
-
assert_equal(
|
80
|
-
mime,
|
81
|
-
Template.new("", @config.update(source_path: @base + "html/file.#{ext}")).target_mime_type
|
82
|
-
)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
# Front-matter
|
87
|
-
|
88
|
-
def test_front_matter_partial_access
|
89
|
-
template = Template.new("---\ntest: yay!\n---\n<%= partial 'test/front_matter' %>", @config)
|
90
|
-
assert_equal template.render, "yay!"
|
91
|
-
end
|
92
|
-
|
93
|
-
# Partials
|
94
|
-
|
95
|
-
def test_encoding_in_partials
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_partial
|
99
|
-
template = Template.new("<%= partial 'test/simple' %>", @config)
|
100
|
-
assert_equal template.render, "ERB"
|
101
|
-
|
102
|
-
template = Template.new(
|
103
|
-
"<%= partial 'test/simple.html' %>",
|
104
|
-
@config.update(source_path: @base + "html/test.erb")
|
105
|
-
)
|
106
|
-
assert_equal template.render, "ERB"
|
107
|
-
end
|
108
|
-
|
109
|
-
def test_partial_with_double_template_extensions
|
110
|
-
template = Template.new(
|
111
|
-
"<%= partial 'test/json.json' %>",
|
112
|
-
@config.update(source_path: @base + "html/test.erb")
|
113
|
-
)
|
114
|
-
assert_equal template.render, "{ key: value }"
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_partial_with_preferred_extension
|
118
|
-
template = Template.new("<%= partial 'test/json' %>", @config)
|
119
|
-
assert_raise(ArgumentError) do
|
120
|
-
template.render
|
121
|
-
end
|
122
|
-
template = Template.new(
|
123
|
-
"<%= partial 'test/json' %>",
|
124
|
-
@config.update(source_path: @base + "html/test.json.erb")
|
125
|
-
)
|
126
|
-
assert_equal template.render, "{ key: value }"
|
127
|
-
end
|
128
|
-
|
129
|
-
def test_partial_with_block
|
130
|
-
template = Template.new("<% partial 'test/yield' do %>CONTENT<% end %>", @config)
|
131
|
-
assert_equal template.render, "B-CONTENT-A"
|
132
|
-
|
133
|
-
template = Template.new("<% partial 'test/yield' do %><%= 'CONTENT' %><% end %>", @config)
|
134
|
-
assert_equal template.render, "B-CONTENT-A"
|
135
|
-
end
|
136
|
-
|
137
|
-
def test_partial_with_block_without_yield
|
138
|
-
template = Template.new("<% partial 'test/simple' do %>CONTENT<% end %>", @config)
|
139
|
-
assert_equal template.render, "ERB"
|
140
|
-
end
|
141
|
-
|
142
|
-
# Content for parts
|
143
|
-
|
144
|
-
def test_content_for_not_returning_in_template
|
145
|
-
content_for_block = 'B<% content_for :one do %><%= "one" %><% end %>A'
|
146
|
-
|
147
|
-
template = Template.new(
|
148
|
-
content_for_block,
|
149
|
-
@config.update(source_path: @base + "html/test.erb")
|
150
|
-
)
|
151
|
-
assert_equal template.render, "BA"
|
152
|
-
end
|
153
|
-
|
154
|
-
def test_content_for_yield_in_layout
|
155
|
-
content_for_block = "---\nlayout: \"yield\"\n---\n"
|
156
|
-
content_for_block << "B<% content_for :one do %><%= \"one\" %><% end %>A"
|
157
|
-
|
158
|
-
template = Template.new(content_for_block, @config)
|
159
|
-
assert_equal template.render, "BAone"
|
160
|
-
end
|
161
|
-
|
162
|
-
def test_content_for_yield_in_layout_without_content_for
|
163
|
-
content_for_block = "---\nlayout: \"yield\"\n---\nBA"
|
164
|
-
|
165
|
-
template = Template.new(content_for_block, @config)
|
166
|
-
assert_equal template.render, "BA"
|
167
|
-
end
|
168
|
-
|
169
|
-
def test_content_for_yield_with_partial_with_block
|
170
|
-
template_string = "---\nlayout: \"yield\"\n---\nB"
|
171
|
-
template_string << "<% content_for :one do %>"
|
172
|
-
template_string << "<% partial 'test/yield' do %>CONTENT<% end %>"
|
173
|
-
template_string << "<% end %>A"
|
174
|
-
|
175
|
-
template = Template.new(template_string, @config)
|
176
|
-
assert_equal template.render, "BAB-CONTENT-A"
|
177
|
-
end
|
178
|
-
|
179
|
-
# Environment
|
180
|
-
|
181
|
-
def test_template_env
|
182
|
-
template = Template.new("<%= env[:test] %>", @config)
|
183
|
-
assert_equal template.render(test: "test"), "test"
|
184
|
-
end
|
185
|
-
|
186
|
-
# Helpers
|
187
|
-
|
188
|
-
def test_register_helper
|
189
|
-
Roger::Template.helper TemplateHelper
|
190
|
-
|
191
|
-
assert Roger::Template.helpers.include?(TemplateHelper)
|
192
|
-
end
|
193
|
-
|
194
|
-
def test_helper_works
|
195
|
-
Roger::Template.helper TemplateHelper
|
196
|
-
|
197
|
-
template = Roger::Template.new("<%= a %>", @config)
|
198
|
-
assert_equal template.render, "a"
|
199
|
-
end
|
200
|
-
|
201
|
-
def test_helper_has_access_to_env
|
202
|
-
Roger::Template.helper TemplateHelper
|
203
|
-
|
204
|
-
template = Roger::Template.new("<%= from_env(:test) %>", @config)
|
205
|
-
assert_equal template.render(test: "test"), "test"
|
206
|
-
end
|
207
|
-
end
|
208
|
-
end
|