tilt 0.6 → 1.1
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 +56 -4
- data/Rakefile +33 -49
- data/TEMPLATES.md +80 -53
- data/bin/tilt +45 -16
- data/lib/tilt.rb +511 -189
- data/test/contest.rb +68 -0
- data/test/markaby/locals.mab +1 -0
- data/test/markaby/markaby.mab +1 -0
- data/test/markaby/markaby_other_static.mab +1 -0
- data/test/markaby/render_twice.mab +1 -0
- data/test/markaby/scope.mab +1 -0
- data/test/markaby/yielding.mab +2 -0
- data/test/tilt_buildertemplate_test.rb +1 -1
- data/test/tilt_cache_test.rb +2 -3
- data/test/tilt_coffeescripttemplate_test.rb +25 -0
- 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_markaby_test.rb +73 -0
- data/test/tilt_nokogiritemplate_test.rb +54 -0
- data/test/tilt_radiustemplate_test.rb +70 -0
- data/test/tilt_rdiscounttemplate_test.rb +3 -3
- data/test/tilt_rdoctemplate_test.rb +1 -1
- data/test/tilt_sasstemplate_test.rb +13 -2
- data/test/tilt_stringtemplate_test.rb +87 -1
- data/test/tilt_template_test.rb +46 -24
- data/test/tilt_test.rb +9 -1
- data/tilt.gemspec +23 -8
- metadata +111 -19
- data/test/tilt_coffeetemplate_test.rb +0 -20
- data/test/tilt_mustache_views/external.rb +0 -9
- data/test/tilt_mustachetemplate_test.rb +0 -73
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
require 'contest'
|
|
2
|
+
require 'tilt'
|
|
3
|
+
|
|
4
|
+
begin
|
|
5
|
+
# Disable radius tests under Ruby versions >= 1.9.1 since it's still buggy.
|
|
6
|
+
# Remove when fixed upstream.
|
|
7
|
+
raise LoadError if RUBY_VERSION >= "1.9.1"
|
|
8
|
+
|
|
9
|
+
require 'radius'
|
|
10
|
+
|
|
11
|
+
class RadiusTemplateTest < Test::Unit::TestCase
|
|
12
|
+
test "registered for '.radius' files" do
|
|
13
|
+
assert_equal Tilt::RadiusTemplate, Tilt['test.radius']
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
test "preparing and evaluating templates on #render" do
|
|
17
|
+
template = Tilt::RadiusTemplate.new { |t| "Hello World!" }
|
|
18
|
+
assert_equal "Hello World!", template.render
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
test "passing locals" do
|
|
22
|
+
template = Tilt::RadiusTemplate.new { "Hey <r:name />!" }
|
|
23
|
+
assert_equal "Hey Joe!", template.render(nil, :name => 'Joe')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
class ExampleRadiusScope
|
|
27
|
+
def beer; 'wet'; end
|
|
28
|
+
def whisky; 'wetter'; end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
test "combining scope and locals when scope responds" do
|
|
32
|
+
template = Tilt::RadiusTemplate.new {
|
|
33
|
+
'Beer is <r:beer /> but Whisky is <r:whisky />.'
|
|
34
|
+
}
|
|
35
|
+
scope = ExampleRadiusScope.new
|
|
36
|
+
assert_equal "Beer is wet but Whisky is wetter.", template.render(scope)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
test "precedence when locals and scope define same variables" do
|
|
40
|
+
template = Tilt::RadiusTemplate.new {
|
|
41
|
+
'Beer is <r:beer /> but Whisky is <r:whisky />.'
|
|
42
|
+
}
|
|
43
|
+
scope = ExampleRadiusScope.new
|
|
44
|
+
assert_equal "Beer is great but Whisky is greater.",
|
|
45
|
+
template.render(scope, :beer => 'great', :whisky => 'greater')
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
#test "handles local scope" do
|
|
49
|
+
# beer = 'wet'
|
|
50
|
+
# whisky = 'wetter'
|
|
51
|
+
#
|
|
52
|
+
# template = Tilt::RadiusTemplate.new {
|
|
53
|
+
# 'Beer is <r:beer /> but Whisky is <r:whisky />.'
|
|
54
|
+
# }
|
|
55
|
+
# assert_equal "Beer is wet but Whisky is wetter.", template.render(self)
|
|
56
|
+
#end
|
|
57
|
+
|
|
58
|
+
test "passing a block for yield" do
|
|
59
|
+
template = Tilt::RadiusTemplate.new {
|
|
60
|
+
'Beer is <r:yield /> but Whisky is <r:yield />ter.'
|
|
61
|
+
}
|
|
62
|
+
assert_equal "Beer is wet but Whisky is wetter.",
|
|
63
|
+
template.render({}) { 'wet' }
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
rescue LoadError => boom
|
|
68
|
+
warn "Tilt::RadiusTemplate (disabled)\n"
|
|
69
|
+
end
|
|
70
|
+
|
|
@@ -17,20 +17,20 @@ begin
|
|
|
17
17
|
assert_equal Tilt::RDiscountTemplate, Tilt['test.mkd']
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
test "
|
|
20
|
+
test "preparing and evaluating templates on #render" do
|
|
21
21
|
template = Tilt::RDiscountTemplate.new { |t| "# Hello World!" }
|
|
22
22
|
assert_equal "<h1>Hello World!</h1>\n", template.render
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
test "smartypants when :smart is set" do
|
|
26
|
-
template = Tilt::RDiscountTemplate.new(
|
|
26
|
+
template = Tilt::RDiscountTemplate.new(:smart => true) { |t|
|
|
27
27
|
"OKAY -- 'Smarty Pants'" }
|
|
28
28
|
assert_equal "<p>OKAY — ‘Smarty Pants’</p>\n",
|
|
29
29
|
template.render
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
test "stripping HTML when :filter_html is set" do
|
|
33
|
-
template = Tilt::RDiscountTemplate.new(
|
|
33
|
+
template = Tilt::RDiscountTemplate.new(:filter_html => true) { |t|
|
|
34
34
|
"HELLO <blink>WORLD</blink>" }
|
|
35
35
|
assert_equal "<p>HELLO <blink>WORLD</blink></p>\n", template.render
|
|
36
36
|
end
|
|
@@ -9,7 +9,7 @@ begin
|
|
|
9
9
|
assert_equal Tilt::RDocTemplate, Tilt['test.rdoc']
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
test "
|
|
12
|
+
test "preparing and evaluating the template with #render" do
|
|
13
13
|
template = Tilt::RDocTemplate.new { |t| "= Hello World!" }
|
|
14
14
|
assert_equal "<h1>Hello World!</h1>\n", template.render
|
|
15
15
|
end
|
|
@@ -11,8 +11,19 @@ begin
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
test "compiles and evaluates the template on #render" do
|
|
14
|
-
template = Tilt::SassTemplate.new { |t| "#main\n :background-color #
|
|
15
|
-
assert_equal "#main {\n background-color: #
|
|
14
|
+
template = Tilt::SassTemplate.new { |t| "#main\n :background-color #0000f1" }
|
|
15
|
+
assert_equal "#main {\n background-color: #0000f1; }\n", template.render
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class ScssTemplateTest < Test::Unit::TestCase
|
|
20
|
+
test "is registered for '.scss' files" do
|
|
21
|
+
assert_equal Tilt::ScssTemplate, Tilt['test.scss']
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
test "compiles and evaluates the template on #render" do
|
|
25
|
+
template = Tilt::ScssTemplate.new { |t| "#main {\n background-color: #0000f1;\n}" }
|
|
26
|
+
assert_equal "#main {\n background-color: #0000f1; }\n", template.render
|
|
16
27
|
end
|
|
17
28
|
end
|
|
18
29
|
|
|
@@ -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,19 @@ 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
|
+
test "template which accesses a constant with Tilt::CompileSite" do
|
|
154
|
+
flunk "known broken under 1.9.1" if RUBY_VERSION =~ /^1.9.1/
|
|
155
|
+
inst = SourceGeneratingMockTemplate.new { |t| 'Hey #{CONSTANT}!' }
|
|
156
|
+
assert_equal "Hey Bob!", inst.render(FastPerson.new("Joe"))
|
|
157
|
+
end
|
|
136
158
|
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 = '
|
|
7
|
-
s.date = '2010-
|
|
6
|
+
s.version = '1.1'
|
|
7
|
+
s.date = '2010-09-10'
|
|
8
8
|
|
|
9
9
|
s.description = "Generic interface to multiple Ruby template engines"
|
|
10
10
|
s.summary = s.description
|
|
@@ -20,16 +20,25 @@ Gem::Specification.new do |s|
|
|
|
20
20
|
TEMPLATES.md
|
|
21
21
|
bin/tilt
|
|
22
22
|
lib/tilt.rb
|
|
23
|
+
test/contest.rb
|
|
24
|
+
test/markaby/locals.mab
|
|
25
|
+
test/markaby/markaby.mab
|
|
26
|
+
test/markaby/markaby_other_static.mab
|
|
27
|
+
test/markaby/render_twice.mab
|
|
28
|
+
test/markaby/scope.mab
|
|
29
|
+
test/markaby/yielding.mab
|
|
23
30
|
test/tilt_buildertemplate_test.rb
|
|
24
31
|
test/tilt_cache_test.rb
|
|
25
|
-
test/
|
|
32
|
+
test/tilt_coffeescripttemplate_test.rb
|
|
33
|
+
test/tilt_compilesite_test.rb
|
|
26
34
|
test/tilt_erbtemplate_test.rb
|
|
27
35
|
test/tilt_erubistemplate_test.rb
|
|
28
36
|
test/tilt_hamltemplate_test.rb
|
|
29
37
|
test/tilt_lesstemplate_test.rb
|
|
30
38
|
test/tilt_liquidtemplate_test.rb
|
|
31
|
-
test/
|
|
32
|
-
test/
|
|
39
|
+
test/tilt_markaby_test.rb
|
|
40
|
+
test/tilt_nokogiritemplate_test.rb
|
|
41
|
+
test/tilt_radiustemplate_test.rb
|
|
33
42
|
test/tilt_rdiscounttemplate_test.rb
|
|
34
43
|
test/tilt_rdoctemplate_test.rb
|
|
35
44
|
test/tilt_redclothtemplate_test.rb
|
|
@@ -41,15 +50,21 @@ Gem::Specification.new do |s|
|
|
|
41
50
|
]
|
|
42
51
|
# = MANIFEST =
|
|
43
52
|
|
|
44
|
-
s.
|
|
53
|
+
s.default_executable = 'tilt'
|
|
54
|
+
s.executables = ['tilt']
|
|
55
|
+
|
|
56
|
+
s.test_files = s.files.select {|path| path =~ /^test\/.*_test.rb/}
|
|
45
57
|
s.add_development_dependency 'contest'
|
|
46
58
|
s.add_development_dependency 'builder'
|
|
47
59
|
s.add_development_dependency 'erubis'
|
|
48
|
-
s.add_development_dependency 'haml'
|
|
49
|
-
s.add_development_dependency 'mustache'
|
|
60
|
+
s.add_development_dependency 'haml', '>= 2.2.11'
|
|
50
61
|
s.add_development_dependency 'rdiscount'
|
|
51
62
|
s.add_development_dependency 'liquid'
|
|
52
63
|
s.add_development_dependency 'less'
|
|
64
|
+
s.add_development_dependency 'radius'
|
|
65
|
+
s.add_development_dependency 'nokogiri'
|
|
66
|
+
s.add_development_dependency 'markaby'
|
|
67
|
+
s.add_development_dependency 'coffee-script'
|
|
53
68
|
|
|
54
69
|
s.extra_rdoc_files = %w[COPYING]
|
|
55
70
|
|