tilt 0.5 → 1.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/COPYING +1 -1
- data/README.md +53 -4
- data/Rakefile +33 -49
- data/TEMPLATES.md +79 -52
- data/bin/tilt +45 -16
- data/lib/tilt.rb +391 -187
- data/test/contest.rb +68 -0
- data/test/tilt_buildertemplate_test.rb +1 -1
- data/test/tilt_compilesite_test.rb +86 -0
- data/test/tilt_erbtemplate_test.rb +121 -2
- data/test/tilt_erubistemplate_test.rb +52 -1
- data/test/tilt_hamltemplate_test.rb +65 -1
- data/test/tilt_liquidtemplate_test.rb +1 -1
- data/test/tilt_radiustemplate_test.rb +66 -0
- data/test/tilt_rdiscounttemplate_test.rb +3 -3
- data/test/tilt_rdoctemplate_test.rb +1 -1
- data/test/tilt_sasstemplate_test.rb +2 -2
- data/test/tilt_stringtemplate_test.rb +87 -1
- data/test/tilt_template_test.rb +47 -24
- data/test/tilt_test.rb +9 -1
- data/tilt.gemspec +12 -5
- metadata +108 -43
- data/test/tilt_mustachetemplate_test.rb +0 -64
|
@@ -6,7 +6,7 @@ class StringTemplateTest < Test::Unit::TestCase
|
|
|
6
6
|
assert_equal Tilt::StringTemplate, Tilt['test.str']
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
test "
|
|
9
|
+
test "loading and evaluating templates on #render" do
|
|
10
10
|
template = Tilt::StringTemplate.new { |t| "Hello World!" }
|
|
11
11
|
assert_equal "Hello World!", template.render
|
|
12
12
|
end
|
|
@@ -26,6 +26,7 @@ class StringTemplateTest < Test::Unit::TestCase
|
|
|
26
26
|
test "passing a block for yield" do
|
|
27
27
|
template = Tilt::StringTemplate.new { 'Hey #{yield}!' }
|
|
28
28
|
assert_equal "Hey Joe!", template.render { 'Joe' }
|
|
29
|
+
assert_equal "Hey Moe!", template.render { 'Moe' }
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
test "multiline templates" do
|
|
@@ -66,6 +67,91 @@ class StringTemplateTest < Test::Unit::TestCase
|
|
|
66
67
|
end
|
|
67
68
|
end
|
|
68
69
|
|
|
70
|
+
|
|
71
|
+
class CompiledStringTemplateTest < Test::Unit::TestCase
|
|
72
|
+
def teardown
|
|
73
|
+
GC.start
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
class Scope
|
|
77
|
+
include Tilt::CompileSite
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
test "compiling template source to a method" do
|
|
81
|
+
template = Tilt::StringTemplate.new { |t| "Hello World!" }
|
|
82
|
+
template.render(Scope.new)
|
|
83
|
+
method_name = template.send(:compiled_method_name, [])
|
|
84
|
+
method_name = method_name.to_sym if Symbol === Kernel.methods.first
|
|
85
|
+
assert Tilt::CompileSite.instance_methods.include?(method_name),
|
|
86
|
+
"CompileSite.instance_methods.include?(#{method_name.inspect})"
|
|
87
|
+
assert Scope.new.respond_to?(method_name),
|
|
88
|
+
"scope.respond_to?(#{method_name.inspect})"
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
test "loading and evaluating templates on #render" do
|
|
92
|
+
template = Tilt::StringTemplate.new { |t| "Hello World!" }
|
|
93
|
+
assert_equal "Hello World!", template.render(Scope.new)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
test "passing locals" do
|
|
97
|
+
template = Tilt::StringTemplate.new { 'Hey #{name}!' }
|
|
98
|
+
assert_equal "Hey Joe!", template.render(Scope.new, :name => 'Joe')
|
|
99
|
+
assert_equal "Hey Moe!", template.render(Scope.new, :name => 'Moe')
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
test "evaluating in an object scope" do
|
|
103
|
+
template = Tilt::StringTemplate.new { 'Hey #{@name}!' }
|
|
104
|
+
scope = Scope.new
|
|
105
|
+
scope.instance_variable_set :@name, 'Joe'
|
|
106
|
+
assert_equal "Hey Joe!", template.render(scope)
|
|
107
|
+
scope.instance_variable_set :@name, 'Moe'
|
|
108
|
+
assert_equal "Hey Moe!", template.render(scope)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
test "passing a block for yield" do
|
|
112
|
+
template = Tilt::StringTemplate.new { 'Hey #{yield}!' }
|
|
113
|
+
assert_equal "Hey Joe!", template.render(Scope.new) { 'Joe' }
|
|
114
|
+
assert_equal "Hey Moe!", template.render(Scope.new) { 'Moe' }
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
test "multiline templates" do
|
|
118
|
+
template = Tilt::StringTemplate.new { "Hello\nWorld!\n" }
|
|
119
|
+
assert_equal "Hello\nWorld!\n", template.render(Scope.new)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
test "backtrace file and line reporting without locals" do
|
|
123
|
+
data = File.read(__FILE__).split("\n__END__\n").last
|
|
124
|
+
fail unless data[0] == ?<
|
|
125
|
+
template = Tilt::StringTemplate.new('test.str', 11) { data }
|
|
126
|
+
begin
|
|
127
|
+
template.render(Scope.new)
|
|
128
|
+
fail 'should have raised an exception'
|
|
129
|
+
rescue => boom
|
|
130
|
+
assert_kind_of NameError, boom
|
|
131
|
+
line = boom.backtrace.first
|
|
132
|
+
file, line, meth = line.split(":")
|
|
133
|
+
assert_equal 'test.str', file
|
|
134
|
+
assert_equal '13', line
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
test "backtrace file and line reporting with locals" do
|
|
139
|
+
data = File.read(__FILE__).split("\n__END__\n").last
|
|
140
|
+
fail unless data[0] == ?<
|
|
141
|
+
template = Tilt::StringTemplate.new('test.str') { data }
|
|
142
|
+
begin
|
|
143
|
+
template.render(Scope.new, :name => 'Joe', :foo => 'bar')
|
|
144
|
+
fail 'should have raised an exception'
|
|
145
|
+
rescue => boom
|
|
146
|
+
assert_kind_of RuntimeError, boom
|
|
147
|
+
line = boom.backtrace.first
|
|
148
|
+
file, line, meth = line.split(":")
|
|
149
|
+
assert_equal 'test.str', file
|
|
150
|
+
assert_equal '6', line
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
|
|
69
155
|
__END__
|
|
70
156
|
<html>
|
|
71
157
|
<body>
|
data/test/tilt_template_test.rb
CHANGED
|
@@ -2,44 +2,50 @@ require 'contest'
|
|
|
2
2
|
require 'tilt'
|
|
3
3
|
|
|
4
4
|
class TiltTemplateTest < Test::Unit::TestCase
|
|
5
|
+
|
|
6
|
+
class MockTemplate < Tilt::Template
|
|
7
|
+
def prepare
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
5
11
|
test "needs a file or block" do
|
|
6
12
|
assert_raise(ArgumentError) { Tilt::Template.new }
|
|
7
13
|
end
|
|
8
14
|
|
|
9
15
|
test "initializing with a file" do
|
|
10
|
-
inst =
|
|
16
|
+
inst = MockTemplate.new('foo.erb') {}
|
|
11
17
|
assert_equal 'foo.erb', inst.file
|
|
12
18
|
end
|
|
13
19
|
|
|
14
20
|
test "initializing with a file and line" do
|
|
15
|
-
inst =
|
|
21
|
+
inst = MockTemplate.new('foo.erb', 55) {}
|
|
16
22
|
assert_equal 'foo.erb', inst.file
|
|
17
23
|
assert_equal 55, inst.line
|
|
18
24
|
end
|
|
19
25
|
|
|
20
26
|
test "uses correct eval_file" do
|
|
21
|
-
inst =
|
|
27
|
+
inst = MockTemplate.new('foo.erb', 55) {}
|
|
22
28
|
assert_equal 'foo.erb', inst.eval_file
|
|
23
29
|
end
|
|
24
30
|
|
|
25
31
|
test "uses a default filename for #eval_file when no file provided" do
|
|
26
|
-
inst =
|
|
32
|
+
inst = MockTemplate.new { 'Hi' }
|
|
27
33
|
assert_not_nil inst.eval_file
|
|
28
34
|
assert !inst.eval_file.include?("\n")
|
|
29
35
|
end
|
|
30
36
|
|
|
31
37
|
test "calculating template's #basename" do
|
|
32
|
-
inst =
|
|
38
|
+
inst = MockTemplate.new('/tmp/templates/foo.html.erb') {}
|
|
33
39
|
assert_equal 'foo.html.erb', inst.basename
|
|
34
40
|
end
|
|
35
41
|
|
|
36
42
|
test "calculating the template's #name" do
|
|
37
|
-
inst =
|
|
43
|
+
inst = MockTemplate.new('/tmp/templates/foo.html.erb') {}
|
|
38
44
|
assert_equal 'foo', inst.name
|
|
39
45
|
end
|
|
40
46
|
|
|
41
47
|
test "initializing with a data loading block" do
|
|
42
|
-
|
|
48
|
+
MockTemplate.new { |template| "Hello World!" }
|
|
43
49
|
end
|
|
44
50
|
|
|
45
51
|
class InitializingMockTemplate < Tilt::Template
|
|
@@ -52,7 +58,7 @@ class TiltTemplateTest < Test::Unit::TestCase
|
|
|
52
58
|
@@initialized_count += 1
|
|
53
59
|
end
|
|
54
60
|
|
|
55
|
-
def
|
|
61
|
+
def prepare
|
|
56
62
|
end
|
|
57
63
|
end
|
|
58
64
|
|
|
@@ -68,44 +74,43 @@ class TiltTemplateTest < Test::Unit::TestCase
|
|
|
68
74
|
assert_equal 1, InitializingMockTemplate.initialized_count
|
|
69
75
|
end
|
|
70
76
|
|
|
71
|
-
class
|
|
77
|
+
class PreparingMockTemplate < Tilt::Template
|
|
72
78
|
include Test::Unit::Assertions
|
|
73
|
-
def
|
|
79
|
+
def prepare
|
|
74
80
|
assert !data.nil?
|
|
75
|
-
@
|
|
81
|
+
@prepared = true
|
|
76
82
|
end
|
|
77
|
-
def
|
|
83
|
+
def prepared? ; @prepared ; end
|
|
78
84
|
end
|
|
79
85
|
|
|
80
|
-
test "raises NotImplementedError when #
|
|
81
|
-
|
|
82
|
-
assert_raise(NotImplementedError) { inst.render }
|
|
86
|
+
test "raises NotImplementedError when #prepare not defined" do
|
|
87
|
+
assert_raise(NotImplementedError) { Tilt::Template.new { |template| "Hello World!" } }
|
|
83
88
|
end
|
|
84
89
|
|
|
85
90
|
test "raises NotImplementedError when #evaluate or #template_source not defined" do
|
|
86
|
-
inst =
|
|
91
|
+
inst = PreparingMockTemplate.new { |t| "Hello World!" }
|
|
87
92
|
assert_raise(NotImplementedError) { inst.render }
|
|
88
|
-
assert inst.
|
|
93
|
+
assert inst.prepared?
|
|
89
94
|
end
|
|
90
95
|
|
|
91
|
-
class SimpleMockTemplate <
|
|
96
|
+
class SimpleMockTemplate < PreparingMockTemplate
|
|
92
97
|
include Test::Unit::Assertions
|
|
93
98
|
def evaluate(scope, locals, &block)
|
|
94
|
-
assert
|
|
99
|
+
assert prepared?
|
|
95
100
|
assert !scope.nil?
|
|
96
101
|
assert !locals.nil?
|
|
97
102
|
"<em>#{@data}</em>"
|
|
98
103
|
end
|
|
99
104
|
end
|
|
100
105
|
|
|
101
|
-
test "
|
|
106
|
+
test "prepares and evaluates the template on #render" do
|
|
102
107
|
inst = SimpleMockTemplate.new { |t| "Hello World!" }
|
|
103
108
|
assert_equal "<em>Hello World!</em>", inst.render
|
|
104
|
-
assert inst.
|
|
109
|
+
assert inst.prepared?
|
|
105
110
|
end
|
|
106
111
|
|
|
107
|
-
class SourceGeneratingMockTemplate <
|
|
108
|
-
def
|
|
112
|
+
class SourceGeneratingMockTemplate < PreparingMockTemplate
|
|
113
|
+
def precompiled_template(locals)
|
|
109
114
|
"foo = [] ; foo << %Q{#{data}} ; foo.join"
|
|
110
115
|
end
|
|
111
116
|
end
|
|
@@ -113,10 +118,12 @@ class TiltTemplateTest < Test::Unit::TestCase
|
|
|
113
118
|
test "template_source with locals" do
|
|
114
119
|
inst = SourceGeneratingMockTemplate.new { |t| 'Hey #{name}!' }
|
|
115
120
|
assert_equal "Hey Joe!", inst.render(Object.new, :name => 'Joe')
|
|
116
|
-
assert inst.
|
|
121
|
+
assert inst.prepared?
|
|
117
122
|
end
|
|
118
123
|
|
|
119
124
|
class Person
|
|
125
|
+
CONSTANT = "Bob"
|
|
126
|
+
|
|
120
127
|
attr_accessor :name
|
|
121
128
|
def initialize(name)
|
|
122
129
|
@name = name
|
|
@@ -133,4 +140,20 @@ class TiltTemplateTest < Test::Unit::TestCase
|
|
|
133
140
|
inst = SourceGeneratingMockTemplate.new { |t| 'Hey #{yield}!' }
|
|
134
141
|
assert_equal "Hey Joe!", inst.render(Object.new){ 'Joe' }
|
|
135
142
|
end
|
|
143
|
+
|
|
144
|
+
test "template which accesses a constant" do
|
|
145
|
+
inst = SourceGeneratingMockTemplate.new { |t| 'Hey #{CONSTANT}!' }
|
|
146
|
+
assert_equal "Hey Bob!", inst.render(Person.new("Joe"))
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
class FastPerson < Person
|
|
150
|
+
include Tilt::CompileSite
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# FAILING CONSTANT TEST. DISABLED FOR 1.0.
|
|
154
|
+
|
|
155
|
+
# test "template which accesses a constant with Tilt::CompileSite" do
|
|
156
|
+
# inst = SourceGeneratingMockTemplate.new { |t| 'Hey #{CONSTANT}!' }
|
|
157
|
+
# assert_equal "Hey Bob!", inst.render(FastPerson.new("Joe"))
|
|
158
|
+
# end
|
|
136
159
|
end
|
data/test/tilt_test.rb
CHANGED
|
@@ -14,15 +14,23 @@ class TiltTest < Test::Unit::TestCase
|
|
|
14
14
|
Tilt.register('mock', MockTemplate)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
test "an extension is registered if explicit handle is found" do
|
|
18
|
+
Tilt.register('mock', MockTemplate)
|
|
19
|
+
assert Tilt.registered?('mock')
|
|
20
|
+
end
|
|
21
|
+
|
|
17
22
|
test "registering template classes by symbol file extension" do
|
|
18
23
|
Tilt.register(:mock, MockTemplate)
|
|
19
24
|
end
|
|
20
25
|
|
|
21
|
-
test "looking up template classes by file extension" do
|
|
26
|
+
test "looking up template classes by exact file extension" do
|
|
22
27
|
Tilt.register('mock', MockTemplate)
|
|
23
28
|
impl = Tilt['mock']
|
|
24
29
|
assert_equal MockTemplate, impl
|
|
30
|
+
end
|
|
25
31
|
|
|
32
|
+
test "looking up template classes by implicit file extension" do
|
|
33
|
+
Tilt.register('mock', MockTemplate)
|
|
26
34
|
impl = Tilt['.mock']
|
|
27
35
|
assert_equal MockTemplate, impl
|
|
28
36
|
end
|
data/tilt.gemspec
CHANGED
|
@@ -3,8 +3,8 @@ Gem::Specification.new do |s|
|
|
|
3
3
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
4
4
|
|
|
5
5
|
s.name = 'tilt'
|
|
6
|
-
s.version = '0
|
|
7
|
-
s.date = '2010-
|
|
6
|
+
s.version = '1.0'
|
|
7
|
+
s.date = '2010-06-15'
|
|
8
8
|
|
|
9
9
|
s.description = "Generic interface to multiple Ruby template engines"
|
|
10
10
|
s.summary = s.description
|
|
@@ -20,14 +20,16 @@ Gem::Specification.new do |s|
|
|
|
20
20
|
TEMPLATES.md
|
|
21
21
|
bin/tilt
|
|
22
22
|
lib/tilt.rb
|
|
23
|
+
test/contest.rb
|
|
23
24
|
test/tilt_buildertemplate_test.rb
|
|
24
25
|
test/tilt_cache_test.rb
|
|
26
|
+
test/tilt_compilesite_test.rb
|
|
25
27
|
test/tilt_erbtemplate_test.rb
|
|
26
28
|
test/tilt_erubistemplate_test.rb
|
|
27
29
|
test/tilt_hamltemplate_test.rb
|
|
28
30
|
test/tilt_lesstemplate_test.rb
|
|
29
31
|
test/tilt_liquidtemplate_test.rb
|
|
30
|
-
test/
|
|
32
|
+
test/tilt_radiustemplate_test.rb
|
|
31
33
|
test/tilt_rdiscounttemplate_test.rb
|
|
32
34
|
test/tilt_rdoctemplate_test.rb
|
|
33
35
|
test/tilt_redclothtemplate_test.rb
|
|
@@ -39,15 +41,20 @@ Gem::Specification.new do |s|
|
|
|
39
41
|
]
|
|
40
42
|
# = MANIFEST =
|
|
41
43
|
|
|
42
|
-
s.
|
|
44
|
+
s.default_executable = 'tilt'
|
|
45
|
+
s.executables = ['tilt']
|
|
46
|
+
|
|
47
|
+
s.test_files = s.files.select {|path| path =~ /^test\/.*_test.rb/}
|
|
43
48
|
s.add_development_dependency 'contest'
|
|
44
49
|
s.add_development_dependency 'builder'
|
|
45
50
|
s.add_development_dependency 'erubis'
|
|
46
|
-
s.add_development_dependency 'haml'
|
|
51
|
+
s.add_development_dependency 'haml', '>= 2.2.11'
|
|
47
52
|
s.add_development_dependency 'mustache'
|
|
48
53
|
s.add_development_dependency 'rdiscount'
|
|
49
54
|
s.add_development_dependency 'liquid'
|
|
50
55
|
s.add_development_dependency 'less'
|
|
56
|
+
s.add_development_dependency 'coffee-script'
|
|
57
|
+
s.add_development_dependency 'radius'
|
|
51
58
|
|
|
52
59
|
s.extra_rdoc_files = %w[COPYING]
|
|
53
60
|
|
metadata
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tilt
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
prerelease: false
|
|
5
|
+
segments:
|
|
6
|
+
- 1
|
|
7
|
+
- 0
|
|
8
|
+
version: "1.0"
|
|
5
9
|
platform: ruby
|
|
6
10
|
authors:
|
|
7
11
|
- Ryan Tomayko
|
|
@@ -9,93 +13,135 @@ autorequire:
|
|
|
9
13
|
bindir: bin
|
|
10
14
|
cert_chain: []
|
|
11
15
|
|
|
12
|
-
date: 2010-
|
|
13
|
-
default_executable:
|
|
16
|
+
date: 2010-06-15 00:00:00 -07:00
|
|
17
|
+
default_executable: tilt
|
|
14
18
|
dependencies:
|
|
15
19
|
- !ruby/object:Gem::Dependency
|
|
16
20
|
name: contest
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
21
|
+
prerelease: false
|
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
20
23
|
requirements:
|
|
21
24
|
- - ">="
|
|
22
25
|
- !ruby/object:Gem::Version
|
|
26
|
+
segments:
|
|
27
|
+
- 0
|
|
23
28
|
version: "0"
|
|
24
|
-
|
|
29
|
+
type: :development
|
|
30
|
+
version_requirements: *id001
|
|
25
31
|
- !ruby/object:Gem::Dependency
|
|
26
32
|
name: builder
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
33
|
+
prerelease: false
|
|
34
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
30
35
|
requirements:
|
|
31
36
|
- - ">="
|
|
32
37
|
- !ruby/object:Gem::Version
|
|
38
|
+
segments:
|
|
39
|
+
- 0
|
|
33
40
|
version: "0"
|
|
34
|
-
|
|
41
|
+
type: :development
|
|
42
|
+
version_requirements: *id002
|
|
35
43
|
- !ruby/object:Gem::Dependency
|
|
36
44
|
name: erubis
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
45
|
+
prerelease: false
|
|
46
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
40
47
|
requirements:
|
|
41
48
|
- - ">="
|
|
42
49
|
- !ruby/object:Gem::Version
|
|
50
|
+
segments:
|
|
51
|
+
- 0
|
|
43
52
|
version: "0"
|
|
44
|
-
|
|
53
|
+
type: :development
|
|
54
|
+
version_requirements: *id003
|
|
45
55
|
- !ruby/object:Gem::Dependency
|
|
46
56
|
name: haml
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
prerelease: false
|
|
58
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
50
59
|
requirements:
|
|
51
60
|
- - ">="
|
|
52
61
|
- !ruby/object:Gem::Version
|
|
53
|
-
|
|
54
|
-
|
|
62
|
+
segments:
|
|
63
|
+
- 2
|
|
64
|
+
- 2
|
|
65
|
+
- 11
|
|
66
|
+
version: 2.2.11
|
|
67
|
+
type: :development
|
|
68
|
+
version_requirements: *id004
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: mustache
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
+
prerelease: false
|
|
72
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
|
60
73
|
requirements:
|
|
61
74
|
- - ">="
|
|
62
75
|
- !ruby/object:Gem::Version
|
|
76
|
+
segments:
|
|
77
|
+
- 0
|
|
63
78
|
version: "0"
|
|
64
|
-
|
|
79
|
+
type: :development
|
|
80
|
+
version_requirements: *id005
|
|
65
81
|
- !ruby/object:Gem::Dependency
|
|
66
82
|
name: rdiscount
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
83
|
+
prerelease: false
|
|
84
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
|
70
85
|
requirements:
|
|
71
86
|
- - ">="
|
|
72
87
|
- !ruby/object:Gem::Version
|
|
88
|
+
segments:
|
|
89
|
+
- 0
|
|
73
90
|
version: "0"
|
|
74
|
-
|
|
91
|
+
type: :development
|
|
92
|
+
version_requirements: *id006
|
|
75
93
|
- !ruby/object:Gem::Dependency
|
|
76
94
|
name: liquid
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
95
|
+
prerelease: false
|
|
96
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
|
80
97
|
requirements:
|
|
81
98
|
- - ">="
|
|
82
99
|
- !ruby/object:Gem::Version
|
|
100
|
+
segments:
|
|
101
|
+
- 0
|
|
83
102
|
version: "0"
|
|
84
|
-
|
|
103
|
+
type: :development
|
|
104
|
+
version_requirements: *id007
|
|
85
105
|
- !ruby/object:Gem::Dependency
|
|
86
106
|
name: less
|
|
107
|
+
prerelease: false
|
|
108
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
|
109
|
+
requirements:
|
|
110
|
+
- - ">="
|
|
111
|
+
- !ruby/object:Gem::Version
|
|
112
|
+
segments:
|
|
113
|
+
- 0
|
|
114
|
+
version: "0"
|
|
87
115
|
type: :development
|
|
88
|
-
|
|
89
|
-
|
|
116
|
+
version_requirements: *id008
|
|
117
|
+
- !ruby/object:Gem::Dependency
|
|
118
|
+
name: coffee-script
|
|
119
|
+
prerelease: false
|
|
120
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
|
90
121
|
requirements:
|
|
91
122
|
- - ">="
|
|
92
123
|
- !ruby/object:Gem::Version
|
|
124
|
+
segments:
|
|
125
|
+
- 0
|
|
93
126
|
version: "0"
|
|
94
|
-
|
|
127
|
+
type: :development
|
|
128
|
+
version_requirements: *id009
|
|
129
|
+
- !ruby/object:Gem::Dependency
|
|
130
|
+
name: radius
|
|
131
|
+
prerelease: false
|
|
132
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
|
133
|
+
requirements:
|
|
134
|
+
- - ">="
|
|
135
|
+
- !ruby/object:Gem::Version
|
|
136
|
+
segments:
|
|
137
|
+
- 0
|
|
138
|
+
version: "0"
|
|
139
|
+
type: :development
|
|
140
|
+
version_requirements: *id010
|
|
95
141
|
description: Generic interface to multiple Ruby template engines
|
|
96
142
|
email: r@tomayko.com
|
|
97
|
-
executables:
|
|
98
|
-
|
|
143
|
+
executables:
|
|
144
|
+
- tilt
|
|
99
145
|
extensions: []
|
|
100
146
|
|
|
101
147
|
extra_rdoc_files:
|
|
@@ -107,14 +153,16 @@ files:
|
|
|
107
153
|
- TEMPLATES.md
|
|
108
154
|
- bin/tilt
|
|
109
155
|
- lib/tilt.rb
|
|
156
|
+
- test/contest.rb
|
|
110
157
|
- test/tilt_buildertemplate_test.rb
|
|
111
158
|
- test/tilt_cache_test.rb
|
|
159
|
+
- test/tilt_compilesite_test.rb
|
|
112
160
|
- test/tilt_erbtemplate_test.rb
|
|
113
161
|
- test/tilt_erubistemplate_test.rb
|
|
114
162
|
- test/tilt_hamltemplate_test.rb
|
|
115
163
|
- test/tilt_lesstemplate_test.rb
|
|
116
164
|
- test/tilt_liquidtemplate_test.rb
|
|
117
|
-
- test/
|
|
165
|
+
- test/tilt_radiustemplate_test.rb
|
|
118
166
|
- test/tilt_rdiscounttemplate_test.rb
|
|
119
167
|
- test/tilt_rdoctemplate_test.rb
|
|
120
168
|
- test/tilt_redclothtemplate_test.rb
|
|
@@ -141,20 +189,37 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
141
189
|
requirements:
|
|
142
190
|
- - ">="
|
|
143
191
|
- !ruby/object:Gem::Version
|
|
192
|
+
segments:
|
|
193
|
+
- 0
|
|
144
194
|
version: "0"
|
|
145
|
-
version:
|
|
146
195
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
196
|
requirements:
|
|
148
197
|
- - ">="
|
|
149
198
|
- !ruby/object:Gem::Version
|
|
199
|
+
segments:
|
|
200
|
+
- 0
|
|
150
201
|
version: "0"
|
|
151
|
-
version:
|
|
152
202
|
requirements: []
|
|
153
203
|
|
|
154
204
|
rubyforge_project: wink
|
|
155
|
-
rubygems_version: 1.3.
|
|
205
|
+
rubygems_version: 1.3.6
|
|
156
206
|
signing_key:
|
|
157
207
|
specification_version: 2
|
|
158
208
|
summary: Generic interface to multiple Ruby template engines
|
|
159
|
-
test_files:
|
|
160
|
-
|
|
209
|
+
test_files:
|
|
210
|
+
- test/tilt_buildertemplate_test.rb
|
|
211
|
+
- test/tilt_cache_test.rb
|
|
212
|
+
- test/tilt_compilesite_test.rb
|
|
213
|
+
- test/tilt_erbtemplate_test.rb
|
|
214
|
+
- test/tilt_erubistemplate_test.rb
|
|
215
|
+
- test/tilt_hamltemplate_test.rb
|
|
216
|
+
- test/tilt_lesstemplate_test.rb
|
|
217
|
+
- test/tilt_liquidtemplate_test.rb
|
|
218
|
+
- test/tilt_radiustemplate_test.rb
|
|
219
|
+
- test/tilt_rdiscounttemplate_test.rb
|
|
220
|
+
- test/tilt_rdoctemplate_test.rb
|
|
221
|
+
- test/tilt_redclothtemplate_test.rb
|
|
222
|
+
- test/tilt_sasstemplate_test.rb
|
|
223
|
+
- test/tilt_stringtemplate_test.rb
|
|
224
|
+
- test/tilt_template_test.rb
|
|
225
|
+
- test/tilt_test.rb
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
require 'contest'
|
|
2
|
-
require 'tilt'
|
|
3
|
-
|
|
4
|
-
begin
|
|
5
|
-
require 'mustache'
|
|
6
|
-
raise LoadError, "mustache version must be > 0.2.2" if !Mustache.respond_to?(:compiled?)
|
|
7
|
-
|
|
8
|
-
module Views
|
|
9
|
-
class Foo < Mustache
|
|
10
|
-
attr_reader :foo
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
class MustacheTemplateTest < Test::Unit::TestCase
|
|
15
|
-
test "registered for '.mustache' files" do
|
|
16
|
-
assert_equal Tilt::MustacheTemplate, Tilt['test.mustache']
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
test "compiling and evaluating templates on #render" do
|
|
20
|
-
template = Tilt::MustacheTemplate.new { |t| "Hello World!" }
|
|
21
|
-
assert_equal "Hello World!", template.render
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
test "passing locals" do
|
|
25
|
-
template = Tilt::MustacheTemplate.new { "<p>Hey {{name}}!</p>" }
|
|
26
|
-
assert_equal "<p>Hey Joe!</p>", template.render(nil, :name => 'Joe')
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
test "passing a block for yield" do
|
|
30
|
-
template = Tilt::MustacheTemplate.new { "<p>Hey {{yield}}!</p>" }
|
|
31
|
-
assert_equal "<p>Hey Joe!</p>", template.render { 'Joe' }
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
test "locating views defined at the top-level" do
|
|
35
|
-
template = Tilt::MustacheTemplate.new('foo.mustache') { "<p>Hey {{foo}}!</p>" }
|
|
36
|
-
template.compile
|
|
37
|
-
assert_equal Views::Foo, template.engine
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
module Bar
|
|
41
|
-
module Views
|
|
42
|
-
class Bizzle < Mustache
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
test "locating views defined in a custom namespace" do
|
|
48
|
-
template = Tilt::MustacheTemplate.new('bizzle.mustache', :namespace => Bar) { "<p>Hello World!</p>" }
|
|
49
|
-
template.compile
|
|
50
|
-
assert_equal Bar::Views::Bizzle, template.engine
|
|
51
|
-
assert_equal "<p>Hello World!</p>", template.render
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
test "copying instance variables from scope object" do
|
|
55
|
-
template = Tilt::MustacheTemplate.new('foo.mustache') { "<p>Hey {{foo}}!</p>" }
|
|
56
|
-
scope = Object.new
|
|
57
|
-
scope.instance_variable_set(:@foo, 'Jane!')
|
|
58
|
-
assert_equal "<p>Hey Jane!!</p>", template.render(scope)
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
rescue LoadError => boom
|
|
63
|
-
warn "Tilt::MustacheTemplate (disabled)\n"
|
|
64
|
-
end
|