temple 0.1.8 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +7 -19
- data/lib/temple/engine.rb +32 -21
- data/lib/temple/erb/engine.rb +1 -1
- data/lib/temple/erb/parser.rb +2 -2
- data/lib/temple/filters/debugger.rb +1 -1
- data/lib/temple/filters/dynamic_inliner.rb +1 -1
- data/lib/temple/filters/escape_html.rb +16 -13
- data/lib/temple/filters/multi_flattener.rb +2 -2
- data/lib/temple/filters/static_merger.rb +1 -1
- data/lib/temple/generators.rb +10 -6
- data/lib/temple/html/dispatcher.rb +17 -0
- data/lib/temple/html/fast.rb +44 -19
- data/lib/temple/html/pretty.rb +19 -15
- data/lib/temple/mixins.rb +174 -23
- data/lib/temple/templates/rails.rb +34 -0
- data/lib/temple/templates/tilt.rb +30 -0
- data/lib/temple/templates.rb +13 -0
- data/lib/temple/utils.rb +54 -1
- data/lib/temple/version.rb +1 -1
- data/lib/temple.rb +2 -2
- data/temple.gemspec +10 -10
- data/test/filters/test_dynamic_inliner.rb +10 -10
- data/test/filters/test_escape_html.rb +10 -11
- data/test/filters/test_multi_flattener.rb +2 -2
- data/test/filters/test_static_merger.rb +3 -3
- data/test/html/test_fast.rb +26 -21
- data/test/html/test_pretty.rb +2 -2
- data/test/test_engine.rb +144 -0
- data/test/test_erb.rb +3 -2
- data/test/test_generator.rb +7 -7
- data/test/test_utils.rb +38 -0
- metadata +12 -5
- data/lib/temple/erb/template.rb +0 -7
- data/lib/temple/template.rb +0 -35
data/test/html/test_fast.rb
CHANGED
@@ -6,22 +6,22 @@ describe Temple::HTML::Fast do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
it 'should compile html doctype' do
|
9
|
-
@html.
|
10
|
-
@html.
|
11
|
-
@html.
|
9
|
+
@html.call([:multi, [:html, :doctype, '5']]).should.equal [:multi, [:static, '<!DOCTYPE html>']]
|
10
|
+
@html.call([:multi, [:html, :doctype, 'html']]).should.equal [:multi, [:static, '<!DOCTYPE html>']]
|
11
|
+
@html.call([:multi, [:html, :doctype, '1.1']]).should.equal [:multi,
|
12
12
|
[:static, '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">']]
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'should compile xml encoding' do
|
16
|
-
@html.
|
16
|
+
@html.call([:html, :doctype, 'xml latin1']).should.equal [:static, "<?xml version='1.0' encoding='latin1' ?>"]
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'should compile html comment' do
|
20
|
-
@html.
|
20
|
+
@html.call([:html, :comment, 'test']).should.equal [:multi, [:static, "<!--"], "test", [:static, "-->"]]
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'should compile autoclosed html tag' do
|
24
|
-
@html.
|
24
|
+
@html.call([:html, :tag,
|
25
25
|
'img', [:attrs],
|
26
26
|
false, [:multi]
|
27
27
|
]).should.equal [:multi,
|
@@ -32,7 +32,7 @@ describe Temple::HTML::Fast do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'should compile explicitly closed html tag' do
|
35
|
-
@html.
|
35
|
+
@html.call([:html, :tag,
|
36
36
|
'closed', [:attrs],
|
37
37
|
true, [:multi]
|
38
38
|
]).should.equal [:multi,
|
@@ -44,7 +44,7 @@ describe Temple::HTML::Fast do
|
|
44
44
|
|
45
45
|
it 'should raise error on closed tag with content' do
|
46
46
|
lambda {
|
47
|
-
@html.
|
47
|
+
@html.call([:html, :tag,
|
48
48
|
'img', [:attrs],
|
49
49
|
false, [:content]
|
50
50
|
])
|
@@ -52,7 +52,7 @@ describe Temple::HTML::Fast do
|
|
52
52
|
end
|
53
53
|
|
54
54
|
it 'should compile html with content' do
|
55
|
-
@html.
|
55
|
+
@html.call([:html, :tag,
|
56
56
|
'div', [:attrs],
|
57
57
|
false, [:content]
|
58
58
|
]).should.equal [:multi,
|
@@ -64,7 +64,7 @@ describe Temple::HTML::Fast do
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it 'should compile html with static attrs' do
|
67
|
-
@html.
|
67
|
+
@html.call([:html, :tag,
|
68
68
|
'div',
|
69
69
|
[:html, :staticattrs,
|
70
70
|
['id', [:static, 'test']],
|
@@ -75,12 +75,17 @@ describe Temple::HTML::Fast do
|
|
75
75
|
"<div"],
|
76
76
|
[:multi,
|
77
77
|
[:multi,
|
78
|
-
[:
|
79
|
-
|
80
|
-
[:
|
81
|
-
[:
|
82
|
-
|
83
|
-
|
78
|
+
[:capture, "_temple_htmlattr1",
|
79
|
+
[:dynamic, "block"]],
|
80
|
+
[:block, "unless _temple_htmlattr1.empty?"],
|
81
|
+
[:multi,
|
82
|
+
[:static, " "],
|
83
|
+
[:static, "class"],
|
84
|
+
[:static, "="],
|
85
|
+
[:static, "'"],
|
86
|
+
[:dynamic, "_temple_htmlattr1"],
|
87
|
+
[:static, "'"]],
|
88
|
+
[:block, "end"]],
|
84
89
|
[:multi,
|
85
90
|
[:static, " "],
|
86
91
|
[:static, "id"],
|
@@ -94,7 +99,7 @@ describe Temple::HTML::Fast do
|
|
94
99
|
end
|
95
100
|
|
96
101
|
it 'should compile html with merged ids' do
|
97
|
-
@html.
|
102
|
+
@html.call([:html, :tag,
|
98
103
|
'div', [:html, :staticattrs, ['id', [:static, 'a']], ['id', [:dynamic, 'b']]],
|
99
104
|
false, [:content]
|
100
105
|
]).should.equal [:multi,
|
@@ -116,7 +121,7 @@ describe Temple::HTML::Fast do
|
|
116
121
|
end
|
117
122
|
|
118
123
|
it 'should compile html with merged classes' do
|
119
|
-
@html.
|
124
|
+
@html.call([:html, :tag,
|
120
125
|
'div', [:html, :staticattrs, ['class', [:static, 'a']], ['class', [:dynamic, 'b']]],
|
121
126
|
false, [:content]
|
122
127
|
]).should.equal [:multi,
|
@@ -139,16 +144,16 @@ describe Temple::HTML::Fast do
|
|
139
144
|
|
140
145
|
it 'should keep blocks intact' do
|
141
146
|
exp = [:multi, [:block, 'foo']]
|
142
|
-
@html.
|
147
|
+
@html.call(exp).should.equal exp
|
143
148
|
end
|
144
149
|
|
145
150
|
it 'should keep statics intact' do
|
146
151
|
exp = [:multi, [:static, '<']]
|
147
|
-
@html.
|
152
|
+
@html.call(exp).should.equal exp
|
148
153
|
end
|
149
154
|
|
150
155
|
it 'should keep dynamic intact' do
|
151
156
|
exp = [:multi, [:dynamic, 'foo']]
|
152
|
-
@html.
|
157
|
+
@html.call(exp).should.equal exp
|
153
158
|
end
|
154
159
|
end
|
data/test/html/test_pretty.rb
CHANGED
@@ -6,7 +6,7 @@ describe Temple::HTML::Pretty do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
it 'should indent nested tags' do
|
9
|
-
@html.
|
9
|
+
@html.call([:html, :tag, 'div', [:multi], false,
|
10
10
|
[:html, :tag, 'p', [:multi], false, [:multi, [:static, 'text'], [:dynamic, 'code']]]
|
11
11
|
]).should.equal [:multi,
|
12
12
|
[:block, "_temple_pre_tags = /<pre|<textarea/"],
|
@@ -27,7 +27,7 @@ describe Temple::HTML::Pretty do
|
|
27
27
|
|
28
28
|
|
29
29
|
it 'should not indent preformatted tags' do
|
30
|
-
@html.
|
30
|
+
@html.call([:html, :tag, 'pre', [:multi], false,
|
31
31
|
[:html, :tag, 'p', [:multi], false, [:static, 'text']]
|
32
32
|
]).should.equal [:multi,
|
33
33
|
[:block, "_temple_pre_tags = /<pre|<textarea/"],
|
data/test/test_engine.rb
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
class OtherCallable
|
5
|
+
def call(exp)
|
6
|
+
exp
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
class TestEngine < Temple::Engine
|
11
|
+
use(:Parser) do |input|
|
12
|
+
[:static, input]
|
13
|
+
end
|
14
|
+
use :MyFilter1, proc {|exp| exp }
|
15
|
+
use :MyFilter2, proc {|exp| exp }
|
16
|
+
use Temple::HTML::Pretty, :format, :pretty => true
|
17
|
+
filter :MultiFlattener
|
18
|
+
generator :ArrayBuffer
|
19
|
+
use :FinalFilter, OtherCallable.new
|
20
|
+
end
|
21
|
+
|
22
|
+
describe Temple::Engine do
|
23
|
+
it 'should build chain' do
|
24
|
+
TestEngine.chain.size.should.equal 7
|
25
|
+
|
26
|
+
TestEngine.chain[0].first.should.equal :Parser
|
27
|
+
TestEngine.chain[0].size.should.equal 2
|
28
|
+
TestEngine.chain[0].last.should.be.instance_of UnboundMethod
|
29
|
+
|
30
|
+
TestEngine.chain[1].first.should.equal :MyFilter1
|
31
|
+
TestEngine.chain[1].size.should.equal 2
|
32
|
+
TestEngine.chain[1].last.should.be.instance_of UnboundMethod
|
33
|
+
|
34
|
+
TestEngine.chain[2].first.should.equal :MyFilter2
|
35
|
+
TestEngine.chain[2].size.should.equal 2
|
36
|
+
TestEngine.chain[2].last.should.be.instance_of UnboundMethod
|
37
|
+
|
38
|
+
TestEngine.chain[3].size.should.equal 4
|
39
|
+
TestEngine.chain[3].should.equal [:'Temple::HTML::Pretty', Temple::HTML::Pretty, [:format], {:pretty => true}]
|
40
|
+
|
41
|
+
TestEngine.chain[4].size.should.equal 4
|
42
|
+
TestEngine.chain[4].should.equal [:MultiFlattener, Temple::Filters::MultiFlattener, [], nil]
|
43
|
+
|
44
|
+
TestEngine.chain[5].size.should.equal 4
|
45
|
+
TestEngine.chain[5].should.equal [:ArrayBuffer, Temple::Generators::ArrayBuffer, [], nil]
|
46
|
+
|
47
|
+
TestEngine.chain[6].size.should.equal 2
|
48
|
+
TestEngine.chain[6][0].should.equal :FinalFilter
|
49
|
+
TestEngine.chain[6][1].should.be.instance_of OtherCallable
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should instantiate chain' do
|
53
|
+
e = TestEngine.new
|
54
|
+
e.chain[0].should.be.instance_of Method
|
55
|
+
e.chain[1].should.be.instance_of Method
|
56
|
+
e.chain[2].should.be.instance_of Method
|
57
|
+
e.chain[3].should.be.instance_of Temple::HTML::Pretty
|
58
|
+
e.chain[4].should.be.instance_of Temple::Filters::MultiFlattener
|
59
|
+
e.chain[5].should.be.instance_of Temple::Generators::ArrayBuffer
|
60
|
+
e.chain[6].should.be.instance_of OtherCallable
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should have #append' do
|
64
|
+
e = TestEngine.new do |engine|
|
65
|
+
engine.append :MyFilter3 do |exp|
|
66
|
+
exp
|
67
|
+
end
|
68
|
+
engine.chain.size.should.equal 8
|
69
|
+
engine.chain[7].first.should.equal :MyFilter3
|
70
|
+
engine.chain[7].size.should.equal 2
|
71
|
+
engine.chain[7].last.should.be.instance_of Method
|
72
|
+
end
|
73
|
+
e.chain.size.should.equal 8
|
74
|
+
e.chain[7].should.be.instance_of Method
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'should have #prepend' do
|
78
|
+
e = TestEngine.new do |engine|
|
79
|
+
engine.prepend :MyFilter0 do |exp|
|
80
|
+
exp
|
81
|
+
end
|
82
|
+
engine.chain.size.should.equal 8
|
83
|
+
engine.chain[0].first.should.equal :MyFilter0
|
84
|
+
engine.chain[0].size.should.equal 2
|
85
|
+
engine.chain[0].last.should.be.instance_of Method
|
86
|
+
engine.chain[1].first.should.equal :Parser
|
87
|
+
end
|
88
|
+
e.chain.size.should.equal 8
|
89
|
+
e.chain[0].should.be.instance_of Method
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'should have #after' do
|
93
|
+
e = TestEngine.new do |engine|
|
94
|
+
engine.after :Parser, :MyFilter0 do |exp|
|
95
|
+
exp
|
96
|
+
end
|
97
|
+
engine.chain.size.should.equal 8
|
98
|
+
engine.chain[0].first.should.equal :Parser
|
99
|
+
engine.chain[1].first.should.equal :MyFilter0
|
100
|
+
engine.chain[2].first.should.equal :MyFilter1
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'should have #before' do
|
105
|
+
e = TestEngine.new do |engine|
|
106
|
+
engine.before :MyFilter1, :MyFilter0 do |exp|
|
107
|
+
exp
|
108
|
+
end
|
109
|
+
engine.chain.size.should.equal 8
|
110
|
+
engine.chain[0].first.should.equal :Parser
|
111
|
+
engine.chain[1].first.should.equal :MyFilter0
|
112
|
+
engine.chain[2].first.should.equal :MyFilter1
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'should have #remove' do
|
117
|
+
e = TestEngine.new do |engine|
|
118
|
+
engine.remove :MyFilter1
|
119
|
+
engine.chain.size.should.equal 6
|
120
|
+
engine.chain[0].first.should.equal :Parser
|
121
|
+
engine.chain[1].first.should.equal :MyFilter2
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
it 'should have #replace' do
|
126
|
+
e = TestEngine.new do |engine|
|
127
|
+
engine.before :Parser, :MyParser do |exp|
|
128
|
+
exp
|
129
|
+
end
|
130
|
+
engine.chain.size.should.equal 8
|
131
|
+
engine.chain[0].first.should.equal :MyParser
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'should work with inheritance' do
|
136
|
+
inherited_engine = Class.new(TestEngine)
|
137
|
+
inherited_engine.chain.size.should.equal 7
|
138
|
+
inherited_engine.append :MyFilter3 do |exp|
|
139
|
+
exp
|
140
|
+
end
|
141
|
+
inherited_engine.chain.size.should.equal 8
|
142
|
+
TestEngine.chain.size.should.equal 7
|
143
|
+
end
|
144
|
+
end
|
data/test/test_erb.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
require 'helper'
|
2
2
|
require 'erb'
|
3
|
+
require 'tilt'
|
3
4
|
|
4
5
|
class Bacon::Context
|
5
6
|
def erb(src, options = {})
|
6
|
-
Temple::ERB::
|
7
|
+
Temple::Templates::Tilt(Temple::ERB::Engine).new(options) { src }.render
|
7
8
|
end
|
8
9
|
end
|
9
10
|
|
10
|
-
describe Temple::ERB::
|
11
|
+
describe Temple::ERB::Engine do
|
11
12
|
|
12
13
|
it 'should compile erb' do
|
13
14
|
src = %q{
|
data/test/test_generator.rb
CHANGED
@@ -26,14 +26,14 @@ describe Temple::Generator do
|
|
26
26
|
it 'should compile simple expressions' do
|
27
27
|
gen = SimpleGenerator.new
|
28
28
|
|
29
|
-
gen.
|
30
|
-
gen.
|
31
|
-
gen.
|
29
|
+
gen.call([:static, "test"]).should.match(/ << \(S:test\)/)
|
30
|
+
gen.call([:dynamic, "test"]).should.match(/ << \(D:test\)/)
|
31
|
+
gen.call([:block, "test"]).should.match(/B:test/)
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'should compile multi expression' do
|
35
35
|
gen = SimpleGenerator.new(:buffer => "VAR")
|
36
|
-
str = gen.
|
36
|
+
str = gen.call([:multi,
|
37
37
|
[:static, "static"],
|
38
38
|
[:dynamic, "dynamic"],
|
39
39
|
[:block, "block"]
|
@@ -47,7 +47,7 @@ describe Temple::Generator do
|
|
47
47
|
|
48
48
|
it 'should compile capture' do
|
49
49
|
gen = SimpleGenerator.new(:buffer => "VAR", :capture_generator => SimpleGenerator)
|
50
|
-
str = gen.
|
50
|
+
str = gen.call([:capture, "foo", [:static, "test"]])
|
51
51
|
|
52
52
|
str.should.match(/foo = BUFFER/)
|
53
53
|
str.should.match(/foo << \(S:test\)/)
|
@@ -56,7 +56,7 @@ describe Temple::Generator do
|
|
56
56
|
|
57
57
|
it 'should compile capture with multi' do
|
58
58
|
gen = SimpleGenerator.new(:buffer => "VAR", :capture_generator => SimpleGenerator)
|
59
|
-
str = gen.
|
59
|
+
str = gen.call([:multi,
|
60
60
|
[:static, "before"],
|
61
61
|
|
62
62
|
[:capture, "foo", [:multi,
|
@@ -78,7 +78,7 @@ describe Temple::Generator do
|
|
78
78
|
|
79
79
|
it 'should compile newlines' do
|
80
80
|
gen = SimpleGenerator.new(:buffer => "VAR")
|
81
|
-
str = gen.
|
81
|
+
str = gen.call([:multi,
|
82
82
|
[:static, "static"],
|
83
83
|
[:newline],
|
84
84
|
[:dynamic, "dynamic"],
|
data/test/test_utils.rb
CHANGED
@@ -26,3 +26,41 @@ describe Temple::Utils do
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
29
|
+
|
30
|
+
describe Temple::Utils::ImmutableHash do
|
31
|
+
it 'has read accessor' do
|
32
|
+
hash = Temple::Utils::ImmutableHash.new({:a => 1},{:b => 2, :a => 3})
|
33
|
+
hash[:a].should.equal 1
|
34
|
+
hash[:b].should.equal 2
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'has include?' do
|
38
|
+
hash = Temple::Utils::ImmutableHash.new({:a => 1},{:b => 2, :a => 3})
|
39
|
+
hash.should.include :a
|
40
|
+
hash.should.include :b
|
41
|
+
hash.should.not.include :c
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'has values' do
|
45
|
+
Temple::Utils::ImmutableHash.new({:a => 1},{:b => 2, :a => 3}).values.sort.should.equal [1,2]
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'has keys' do
|
49
|
+
Temple::Utils::ImmutableHash.new({:a => 1},{:b => 2, :a => 3}).keys.should.equal [:a,:b]
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'has to_a' do
|
53
|
+
Temple::Utils::ImmutableHash.new({:a => 1},{:b => 2, :a => 3}).to_a.should.equal [[:a, 1], [:b, 2]]
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe Temple::Utils::MutableHash do
|
58
|
+
it 'has write accessor' do
|
59
|
+
parent = {:a => 1}
|
60
|
+
hash = Temple::Utils::MutableHash.new(parent)
|
61
|
+
hash[:a].should.equal 1
|
62
|
+
hash[:a] = 2
|
63
|
+
hash[:a].should.equal 2
|
64
|
+
parent[:a].should.equal 1
|
65
|
+
end
|
66
|
+
end
|
metadata
CHANGED
@@ -2,15 +2,16 @@
|
|
2
2
|
name: temple
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.2.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Magnus Holm
|
9
|
+
- Daniel Mendler
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
13
|
|
13
|
-
date: 2011-03-
|
14
|
+
date: 2011-03-30 00:00:00 +02:00
|
14
15
|
default_executable:
|
15
16
|
dependencies:
|
16
17
|
- !ruby/object:Gem::Dependency
|
@@ -36,7 +37,9 @@ dependencies:
|
|
36
37
|
type: :development
|
37
38
|
version_requirements: *id002
|
38
39
|
description:
|
39
|
-
email:
|
40
|
+
email:
|
41
|
+
- judofyr@gmail.com
|
42
|
+
- mail@daniel-mendler.de
|
40
43
|
executables: []
|
41
44
|
|
42
45
|
extensions: []
|
@@ -53,7 +56,6 @@ files:
|
|
53
56
|
- lib/temple/engine.rb
|
54
57
|
- lib/temple/erb/engine.rb
|
55
58
|
- lib/temple/erb/parser.rb
|
56
|
-
- lib/temple/erb/template.rb
|
57
59
|
- lib/temple/erb/trimming.rb
|
58
60
|
- lib/temple/filter.rb
|
59
61
|
- lib/temple/filters/debugger.rb
|
@@ -62,10 +64,13 @@ files:
|
|
62
64
|
- lib/temple/filters/multi_flattener.rb
|
63
65
|
- lib/temple/filters/static_merger.rb
|
64
66
|
- lib/temple/generators.rb
|
67
|
+
- lib/temple/html/dispatcher.rb
|
65
68
|
- lib/temple/html/fast.rb
|
66
69
|
- lib/temple/html/pretty.rb
|
67
70
|
- lib/temple/mixins.rb
|
68
|
-
- lib/temple/
|
71
|
+
- lib/temple/templates.rb
|
72
|
+
- lib/temple/templates/rails.rb
|
73
|
+
- lib/temple/templates/tilt.rb
|
69
74
|
- lib/temple/utils.rb
|
70
75
|
- lib/temple/version.rb
|
71
76
|
- temple.gemspec
|
@@ -76,6 +81,7 @@ files:
|
|
76
81
|
- test/helper.rb
|
77
82
|
- test/html/test_fast.rb
|
78
83
|
- test/html/test_pretty.rb
|
84
|
+
- test/test_engine.rb
|
79
85
|
- test/test_erb.rb
|
80
86
|
- test/test_generator.rb
|
81
87
|
- test/test_utils.rb
|
@@ -115,6 +121,7 @@ test_files:
|
|
115
121
|
- test/helper.rb
|
116
122
|
- test/html/test_fast.rb
|
117
123
|
- test/html/test_pretty.rb
|
124
|
+
- test/test_engine.rb
|
118
125
|
- test/test_erb.rb
|
119
126
|
- test/test_generator.rb
|
120
127
|
- test/test_utils.rb
|
data/lib/temple/erb/template.rb
DELETED
data/lib/temple/template.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
require 'tilt'
|
2
|
-
|
3
|
-
module Temple
|
4
|
-
# Tilt template implementation for Temple
|
5
|
-
class Template < Tilt::Template
|
6
|
-
class << self
|
7
|
-
def engine(engine = nil)
|
8
|
-
if engine
|
9
|
-
@engine = engine
|
10
|
-
elsif @engine
|
11
|
-
@engine
|
12
|
-
else
|
13
|
-
raise 'No engine configured'
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# Prepare Temple template
|
19
|
-
#
|
20
|
-
# Called immediately after template data is loaded.
|
21
|
-
#
|
22
|
-
# @return [void]
|
23
|
-
def prepare
|
24
|
-
@src = self.class.engine.new(options.merge(:file => eval_file)).compile(data)
|
25
|
-
end
|
26
|
-
|
27
|
-
# A string containing the (Ruby) source code for the template.
|
28
|
-
#
|
29
|
-
# @param [Hash] locals Local variables
|
30
|
-
# @return [String] Compiled template ruby code
|
31
|
-
def precompiled_template(locals = {})
|
32
|
-
@src
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|