tilt 2.0.9 → 2.0.10

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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/lib/tilt.rb +1 -1
  3. data/lib/tilt/template.rb +7 -12
  4. metadata +3 -104
  5. data/CHANGELOG.md +0 -132
  6. data/Gemfile +0 -70
  7. data/HACKING +0 -16
  8. data/README.md +0 -233
  9. data/Rakefile +0 -106
  10. data/docs/TEMPLATES.md +0 -555
  11. data/docs/common.css +0 -14
  12. data/man/index.txt +0 -2
  13. data/man/tilt.1.ronn +0 -59
  14. data/test/markaby/locals.mab +0 -1
  15. data/test/markaby/markaby.mab +0 -1
  16. data/test/markaby/markaby_other_static.mab +0 -1
  17. data/test/markaby/render_twice.mab +0 -1
  18. data/test/markaby/scope.mab +0 -1
  19. data/test/markaby/yielding.mab +0 -2
  20. data/test/mytemplate.rb +0 -2
  21. data/test/test_helper.rb +0 -64
  22. data/test/tilt_asciidoctor_test.rb +0 -50
  23. data/test/tilt_babeltemplate.rb +0 -33
  24. data/test/tilt_blueclothtemplate_test.rb +0 -33
  25. data/test/tilt_buildertemplate_test.rb +0 -72
  26. data/test/tilt_cache_test.rb +0 -43
  27. data/test/tilt_coffeescripttemplate_test.rb +0 -141
  28. data/test/tilt_commonmarkertemplate_test.rb +0 -28
  29. data/test/tilt_compilesite_test.rb +0 -51
  30. data/test/tilt_creoletemplate_test.rb +0 -24
  31. data/test/tilt_csv_test.rb +0 -77
  32. data/test/tilt_erbtemplate_test.rb +0 -239
  33. data/test/tilt_erubistemplate_test.rb +0 -151
  34. data/test/tilt_erubitemplate_test.rb +0 -158
  35. data/test/tilt_etannitemplate_test.rb +0 -174
  36. data/test/tilt_hamltemplate_test.rb +0 -166
  37. data/test/tilt_kramdown_test.rb +0 -20
  38. data/test/tilt_lesstemplate_test.less +0 -1
  39. data/test/tilt_lesstemplate_test.rb +0 -42
  40. data/test/tilt_liquidtemplate_test.rb +0 -87
  41. data/test/tilt_livescripttemplate_test.rb +0 -37
  42. data/test/tilt_mapping_test.rb +0 -232
  43. data/test/tilt_markaby_test.rb +0 -88
  44. data/test/tilt_markdown_test.rb +0 -186
  45. data/test/tilt_marukutemplate_test.rb +0 -36
  46. data/test/tilt_metadata_test.rb +0 -42
  47. data/test/tilt_nokogiritemplate_test.rb +0 -87
  48. data/test/tilt_pandoctemplate_test.rb +0 -67
  49. data/test/tilt_prawntemplate.prawn +0 -1
  50. data/test/tilt_prawntemplate_test.rb +0 -75
  51. data/test/tilt_radiustemplate_test.rb +0 -75
  52. data/test/tilt_rdiscounttemplate_test.rb +0 -43
  53. data/test/tilt_rdoctemplate_test.rb +0 -29
  54. data/test/tilt_redcarpettemplate_test.rb +0 -54
  55. data/test/tilt_redclothtemplate_test.rb +0 -36
  56. data/test/tilt_rstpandoctemplate_test.rb +0 -32
  57. data/test/tilt_sasstemplate_test.rb +0 -42
  58. data/test/tilt_sigil_test.rb +0 -41
  59. data/test/tilt_stringtemplate_test.rb +0 -171
  60. data/test/tilt_template_test.rb +0 -314
  61. data/test/tilt_test.rb +0 -60
  62. data/test/tilt_typescript_test.rb +0 -38
  63. data/test/tilt_wikiclothtemplate_test.rb +0 -32
  64. data/test/tilt_yajltemplate_test.rb +0 -101
  65. data/tilt.gemspec +0 -130
@@ -1,158 +0,0 @@
1
- require 'test_helper'
2
- require 'tilt'
3
-
4
- begin
5
- require 'tilt/erubi'
6
- class ErubiTemplateTest < Minitest::Test
7
- test "registered for '.erubi' files" do
8
- assert_equal Tilt::ErubiTemplate, Tilt['test.erubi']
9
- assert_equal Tilt::ErubiTemplate, Tilt['test.html.erubi']
10
- end
11
-
12
- test "registered above ERB and Erubis" do
13
- %w[erb rhtml].each do |ext|
14
- lazy = Tilt.lazy_map[ext]
15
- erubi_idx = lazy.index { |klass, file| klass == 'Tilt::ErubiTemplate' }
16
- erubis_idx = lazy.index { |klass, file| klass == 'Tilt::ErubisTemplate' }
17
- erb_idx = lazy.index { |klass, file| klass == 'Tilt::ERBTemplate' }
18
- assert erubi_idx < erubis_idx,
19
- "#{erubi_idx} should be lower than #{erubis_idx}"
20
- assert erubi_idx < erb_idx,
21
- "#{erubi_idx} should be lower than #{erb_idx}"
22
- end
23
- end
24
-
25
- test "preparing and evaluating templates on #render" do
26
- template = Tilt::ErubiTemplate.new { |t| "Hello World!" }
27
- assert_equal "Hello World!", template.render
28
- end
29
-
30
- test "can be rendered more than once" do
31
- template = Tilt::ErubiTemplate.new { |t| "Hello World!" }
32
- 3.times { assert_equal "Hello World!", template.render }
33
- end
34
-
35
- test "passing locals" do
36
- template = Tilt::ErubiTemplate.new { 'Hey <%= name %>!' }
37
- assert_equal "Hey Joe!", template.render(Object.new, :name => 'Joe')
38
- end
39
-
40
- test "evaluating in an object scope" do
41
- template = Tilt::ErubiTemplate.new { 'Hey <%= @name %>!' }
42
- scope = Object.new
43
- scope.instance_variable_set :@name, 'Joe'
44
- assert_equal "Hey Joe!", template.render(scope)
45
- end
46
-
47
- class MockOutputVariableScope
48
- attr_accessor :exposed_buffer
49
- end
50
-
51
- test "exposing the buffer to the template by default" do
52
- template = Tilt::ErubiTemplate.new(nil, :bufvar=>'@_out_buf') { '<% self.exposed_buffer = @_out_buf %>hey' }
53
- scope = MockOutputVariableScope.new
54
- template.render(scope)
55
- refute_nil scope.exposed_buffer
56
- assert_equal scope.exposed_buffer, 'hey'
57
- end
58
-
59
- test "passing a block for yield" do
60
- template = Tilt::ErubiTemplate.new { 'Hey <%= yield %>!' }
61
- assert_equal "Hey Joe!", template.render { 'Joe' }
62
- end
63
-
64
- test "backtrace file and line reporting without locals" do
65
- data = File.read(__FILE__).split("\n__END__\n").last
66
- fail unless data[0] == ?<
67
- template = Tilt::ErubiTemplate.new('test.erubis', 11) { data }
68
- begin
69
- template.render
70
- fail 'should have raised an exception'
71
- rescue => boom
72
- assert_kind_of NameError, boom
73
- line = boom.backtrace.grep(/^test\.erubis:/).first
74
- assert line, "Backtrace didn't contain test.erubis"
75
- _file, line, _meth = line.split(":")
76
- assert_equal '13', line
77
- end
78
- end
79
-
80
- test "backtrace file and line reporting with locals" do
81
- data = File.read(__FILE__).split("\n__END__\n").last
82
- fail unless data[0] == ?<
83
- template = Tilt::ErubiTemplate.new('test.erubis', 1) { data }
84
- begin
85
- template.render(nil, :name => 'Joe', :foo => 'bar')
86
- fail 'should have raised an exception'
87
- rescue => boom
88
- assert_kind_of RuntimeError, boom
89
- line = boom.backtrace.first
90
- file, line, _meth = line.split(":")
91
- assert_equal 'test.erubis', file
92
- assert_equal '6', line
93
- end
94
- end
95
-
96
- test "erubis template options" do
97
- template = Tilt::ErubiTemplate.new(nil, :escapefunc=> 'h') { 'Hey <%== @name %>!' }
98
- scope = Object.new
99
- def scope.h(s) s * 2 end
100
- scope.instance_variable_set :@name, 'Joe'
101
- assert_equal "Hey JoeJoe!", template.render(scope)
102
- end
103
-
104
- test "using an instance variable as the outvar" do
105
- template = Tilt::ErubiTemplate.new(nil, :outvar => '@buf') { "<%= 1 + 1 %>" }
106
- scope = Object.new
107
- scope.instance_variable_set(:@buf, 'original value')
108
- assert_equal '2', template.render(scope)
109
- assert_equal 'original value', scope.instance_variable_get(:@buf)
110
- end
111
-
112
- test "using Erubi::CaptureEndEngine subclass via :engine_class option" do
113
- require 'erubi/capture_end'
114
- def self.bar
115
- @a << "a"
116
- yield
117
- @a << 'b'
118
- @a.upcase
119
- end
120
- template = Tilt::ErubiTemplate.new(nil, :engine_class => ::Erubi::CaptureEndEngine, :bufvar=>'@a') { 'c<%|= bar do %>d<%| end %>e' }
121
- assert_equal "cADBe", template.render(self)
122
- end
123
-
124
- test "using :escape_html => true option" do
125
- template = Tilt::ErubiTemplate.new(nil, :escape_html => true) { |t| %(<%= "<p>Hello World!</p>" %>) }
126
- assert_equal "&lt;p&gt;Hello World!&lt;/p&gt;", template.render
127
- end
128
-
129
- test "using :escape_html => false option" do
130
- template = Tilt::ErubiTemplate.new(nil, :escape_html => false) { |t| %(<%= "<p>Hello World!</p>" %>) }
131
- assert_equal "<p>Hello World!</p>", template.render
132
- end
133
-
134
- test "erubi default does not escape html" do
135
- template = Tilt::ErubiTemplate.new { |t| %(<%= "<p>Hello World!</p>" %>) }
136
- assert_equal "<p>Hello World!</p>", template.render
137
- end
138
-
139
- test "does not modify options argument" do
140
- options_hash = {:escape_html => true}
141
- Tilt::ErubiTemplate.new(nil, options_hash) { |t| "Hello World!" }
142
- assert_equal({:escape_html => true}, options_hash)
143
- end
144
- end
145
- rescue LoadError
146
- warn "Tilt::ErubiTemplate (disabled)"
147
- end
148
-
149
- __END__
150
- <html>
151
- <body>
152
- <h1>Hey <%= name %>!</h1>
153
-
154
-
155
- <p><% fail %></p>
156
- </body>
157
- </html>
158
-
@@ -1,174 +0,0 @@
1
- require 'test_helper'
2
- require 'tilt'
3
- require 'tilt/etanni'
4
-
5
- class EtanniTemplateTest < Minitest::Test
6
- test "registered for '.etn' files" do
7
- assert_equal Tilt::EtanniTemplate, Tilt['test.etn']
8
- end
9
-
10
- test "registered for '.etanni' files" do
11
- assert_equal Tilt::EtanniTemplate, Tilt['test.etanni']
12
- end
13
-
14
- test "loading and evaluating templates on #render" do
15
- template = Tilt::EtanniTemplate.new { |t| "Hello World!" }
16
- assert_equal "Hello World!", template.render
17
- end
18
-
19
- test "can be rendered more than once" do
20
- template = Tilt::EtanniTemplate.new { |t| "Hello World!" }
21
- 3.times { assert_equal "Hello World!", template.render }
22
- end
23
-
24
- test "passing locals" do
25
- template = Tilt::EtanniTemplate.new { 'Hey #{name}!' }
26
- assert_equal "Hey Joe!", template.render(Object.new, :name => 'Joe')
27
- end
28
-
29
- test "evaluating in an object scope" do
30
- template = Tilt::EtanniTemplate.new { 'Hey #{@name}!' }
31
- scope = Object.new
32
- scope.instance_variable_set :@name, 'Joe'
33
- assert_equal "Hey Joe!", template.render(scope)
34
- end
35
-
36
- test "passing a block for yield" do
37
- template = Tilt::EtanniTemplate.new { 'Hey #{yield}!' }
38
- assert_equal "Hey Joe!", template.render { 'Joe' }
39
- assert_equal "Hey Moe!", template.render { 'Moe' }
40
- end
41
-
42
- test "multiline templates" do
43
- template = Tilt::EtanniTemplate.new { "Hello\nWorld!\n" }
44
- assert_equal "Hello\nWorld!", template.render
45
- end
46
-
47
- test "backtrace file and line reporting without locals" do
48
- data = File.read(__FILE__).split("\n__END__\n").last
49
- fail unless data[0] == ?<
50
- template = Tilt::EtanniTemplate.new('test.etn', 11) { data }
51
- begin
52
- template.render
53
- fail 'should have raised an exception'
54
- rescue => boom
55
- assert_kind_of NameError, boom
56
- line = boom.backtrace.grep(/^test\.etn:/).first
57
- assert line, "Backtrace didn't contain test.etn"
58
- _file, line, _meth = line.split(":")
59
- assert_equal '13', line
60
- end
61
- end
62
-
63
- test "backtrace file and line reporting with locals" do
64
- data = File.read(__FILE__).split("\n__END__\n").last
65
- fail unless data[0] == ?<
66
- template = Tilt::EtanniTemplate.new('test.etn', 1) { data }
67
- begin
68
- template.render(nil, :name => 'Joe', :foo => 'bar')
69
- fail 'should have raised an exception'
70
- rescue => boom
71
- assert_kind_of RuntimeError, boom
72
- line = boom.backtrace.first
73
- file, line, _meth = line.split(":")
74
- assert_equal 'test.etn', file
75
- assert_equal '6', line
76
- end
77
- end
78
- end
79
-
80
-
81
- class CompiledEtanniTemplateTest < Minitest::Test
82
- def teardown
83
- GC.start
84
- end
85
-
86
- class Scope
87
- end
88
-
89
- test "compiling template source to a method" do
90
- template = Tilt::EtanniTemplate.new { |t| "Hello World!" }
91
- template.render(Scope.new)
92
- method = template.send(:compiled_method, [])
93
- assert_kind_of UnboundMethod, method
94
- end
95
-
96
- test "loading and evaluating templates on #render" do
97
- template = Tilt::EtanniTemplate.new { |t| "Hello World!" }
98
- assert_equal "Hello World!", template.render(Scope.new)
99
- end
100
-
101
- test "passing locals" do
102
- template = Tilt::EtanniTemplate.new { 'Hey #{name}!' }
103
- assert_equal "Hey Joe!", template.render(Scope.new, :name => 'Joe')
104
- assert_equal "Hey Moe!", template.render(Scope.new, :name => 'Moe')
105
- end
106
-
107
- test "evaluating in an object scope" do
108
- template = Tilt::EtanniTemplate.new { 'Hey #{@name}!' }
109
- scope = Scope.new
110
- scope.instance_variable_set :@name, 'Joe'
111
- assert_equal "Hey Joe!", template.render(scope)
112
- scope.instance_variable_set :@name, 'Moe'
113
- assert_equal "Hey Moe!", template.render(scope)
114
- end
115
-
116
- test "passing a block for yield" do
117
- template = Tilt::EtanniTemplate.new { 'Hey #{yield}!' }
118
- assert_equal "Hey Joe!", template.render(Scope.new) { 'Joe' }
119
- assert_equal "Hey Moe!", template.render(Scope.new) { 'Moe' }
120
- end
121
-
122
- test "multiline templates" do
123
- template = Tilt::EtanniTemplate.new { "Hello\nWorld!\n" }
124
- assert_equal "Hello\nWorld!", template.render(Scope.new)
125
- end
126
-
127
- test "template with '}'" do
128
- template = Tilt::EtanniTemplate.new { "Hello }" }
129
- assert_equal "Hello }", template.render
130
- end
131
-
132
- test "backtrace file and line reporting without locals" do
133
- data = File.read(__FILE__).split("\n__END__\n").last
134
- fail unless data[0] == ?<
135
- template = Tilt::EtanniTemplate.new('test.etn', 11) { data }
136
- begin
137
- template.render(Scope.new)
138
- fail 'should have raised an exception'
139
- rescue => boom
140
- assert_kind_of NameError, boom
141
- line = boom.backtrace.first
142
- line = boom.backtrace.grep(/^test\.etn:/).first
143
- assert line, "Backtrace didn't contain test.etn"
144
- _file, line, _meth = line.split(":")
145
- assert_equal '13', line
146
- end
147
- end
148
-
149
- test "backtrace file and line reporting with locals" do
150
- data = File.read(__FILE__).split("\n__END__\n").last
151
- fail unless data[0] == ?<
152
- template = Tilt::EtanniTemplate.new('test.etn') { data }
153
- begin
154
- template.render(Scope.new, :name => 'Joe', :foo => 'bar')
155
- fail 'should have raised an exception'
156
- rescue => boom
157
- assert_kind_of RuntimeError, boom
158
- line = boom.backtrace.first
159
- file, line, _meth = line.split(":")
160
- assert_equal 'test.etn', file
161
- assert_equal '6', line
162
- end
163
- end
164
- end
165
-
166
- __END__
167
- <html>
168
- <body>
169
- <h1>Hey #{name}!</h1>
170
-
171
-
172
- <p>#{fail}</p>
173
- </body>
174
- </html>
@@ -1,166 +0,0 @@
1
- require 'test_helper'
2
- require 'tilt'
3
-
4
- begin
5
- class ::MockError < NameError
6
- end
7
-
8
- require 'tilt/haml'
9
-
10
- class HamlTemplateTest < Minitest::Test
11
- test "registered for '.haml' files" do
12
- assert_equal Tilt::HamlTemplate, Tilt['test.haml']
13
- end
14
-
15
- test "preparing and evaluating templates on #render" do
16
- template = Tilt::HamlTemplate.new { |t| "%p Hello World!" }
17
- assert_equal "<p>Hello World!</p>\n", template.render
18
- end
19
-
20
- test "can be rendered more than once" do
21
- template = Tilt::HamlTemplate.new { |t| "%p Hello World!" }
22
- 3.times { assert_equal "<p>Hello World!</p>\n", template.render }
23
- end
24
-
25
- test "passing locals" do
26
- template = Tilt::HamlTemplate.new { "%p= 'Hey ' + name + '!'" }
27
- assert_equal "<p>Hey Joe!</p>\n", template.render(Object.new, :name => 'Joe')
28
- end
29
-
30
- test 'evaluating in default/nil scope' do
31
- template = Tilt::HamlTemplate.new { |t| '%p Hey unknown!' }
32
- assert_equal "<p>Hey unknown!</p>\n", template.render
33
- assert_equal "<p>Hey unknown!</p>\n", template.render(nil)
34
- end
35
-
36
- test 'evaluating in invalid, frozen scope' do
37
- template = Tilt::HamlTemplate.new { |t| '%p Hey unknown!' }
38
- assert_raises(ArgumentError) { template.render(Object.new.freeze) }
39
- end
40
-
41
- test "evaluating in an object scope" do
42
- template = Tilt::HamlTemplate.new { "%p= 'Hey ' + @name + '!'" }
43
- scope = Object.new
44
- scope.instance_variable_set :@name, 'Joe'
45
- assert_equal "<p>Hey Joe!</p>\n", template.render(scope)
46
- end
47
-
48
- test "passing a block for yield" do
49
- template = Tilt::HamlTemplate.new { "%p= 'Hey ' + yield + '!'" }
50
- assert_equal "<p>Hey Joe!</p>\n", template.render { 'Joe' }
51
- end
52
-
53
- test "backtrace file and line reporting without locals" do
54
- data = File.read(__FILE__).split("\n__END__\n").last
55
- fail unless data[0] == ?%
56
- template = Tilt::HamlTemplate.new('test.haml', 10) { data }
57
- begin
58
- template.render
59
- fail 'should have raised an exception'
60
- rescue => boom
61
- assert_kind_of NameError, boom
62
- line = boom.backtrace.grep(/^test\.haml:/).first
63
- assert line, "Backtrace didn't contain test.haml"
64
- _file, line, _meth = line.split(":")
65
- assert_equal '12', line
66
- end
67
- end
68
-
69
- test "backtrace file and line reporting with locals" do
70
- data = File.read(__FILE__).split("\n__END__\n").last
71
- fail unless data[0] == ?%
72
- template = Tilt::HamlTemplate.new('test.haml') { data }
73
- begin
74
- template.render(Object.new, :name => 'Joe', :foo => 'bar')
75
- rescue => boom
76
- assert_kind_of MockError, boom
77
- line = boom.backtrace.first
78
- file, line, _meth = line.split(":")
79
- assert_equal 'test.haml', file
80
- assert_equal '5', line
81
- end
82
- end
83
- end
84
-
85
- class CompiledHamlTemplateTest < Minitest::Test
86
- class Scope
87
- end
88
-
89
- test "compiling template source to a method" do
90
- template = Tilt::HamlTemplate.new { |t| "Hello World!" }
91
- template.render(Scope.new)
92
- method = template.send(:compiled_method, [])
93
- assert_kind_of UnboundMethod, method
94
- end
95
-
96
- test "passing locals" do
97
- template = Tilt::HamlTemplate.new { "%p= 'Hey ' + name + '!'" }
98
- assert_equal "<p>Hey Joe!</p>\n", template.render(Scope.new, :name => 'Joe')
99
- end
100
-
101
- test 'evaluating in default/nil scope' do
102
- template = Tilt::HamlTemplate.new { |t| '%p Hey unknown!' }
103
- assert_equal "<p>Hey unknown!</p>\n", template.render
104
- assert_equal "<p>Hey unknown!</p>\n", template.render(nil)
105
- end
106
-
107
- test 'evaluating in invalid, frozen scope' do
108
- template = Tilt::HamlTemplate.new { |t| '%p Hey unknown!' }
109
- assert_raises(ArgumentError) { template.render(Object.new.freeze) }
110
- end
111
-
112
- test "evaluating in an object scope" do
113
- template = Tilt::HamlTemplate.new { "%p= 'Hey ' + @name + '!'" }
114
- scope = Scope.new
115
- scope.instance_variable_set :@name, 'Joe'
116
- assert_equal "<p>Hey Joe!</p>\n", template.render(scope)
117
- end
118
-
119
- test "passing a block for yield" do
120
- template = Tilt::HamlTemplate.new { "%p= 'Hey ' + yield + '!'" }
121
- assert_equal "<p>Hey Joe!</p>\n", template.render(Scope.new) { 'Joe' }
122
- end
123
-
124
- test "backtrace file and line reporting without locals" do
125
- data = File.read(__FILE__).split("\n__END__\n").last
126
- fail unless data[0] == ?%
127
- template = Tilt::HamlTemplate.new('test.haml', 10) { data }
128
- begin
129
- template.render(Scope.new)
130
- fail 'should have raised an exception'
131
- rescue => boom
132
- assert_kind_of NameError, boom
133
- line = boom.backtrace.grep(/^test\.haml:/).first
134
- assert line, "Backtrace didn't contain test.haml"
135
- _file, line, _meth = line.split(":")
136
- assert_equal '12', line
137
- end
138
- end
139
-
140
- test "backtrace file and line reporting with locals" do
141
- data = File.read(__FILE__).split("\n__END__\n").last
142
- fail unless data[0] == ?%
143
- template = Tilt::HamlTemplate.new('test.haml') { data }
144
- begin
145
- template.render(Scope.new, :name => 'Joe', :foo => 'bar')
146
- rescue => boom
147
- assert_kind_of MockError, boom
148
- line = boom.backtrace.first
149
- file, line, _meth = line.split(":")
150
- assert_equal 'test.haml', file
151
- assert_equal '5', line
152
- end
153
- end
154
- end
155
- rescue LoadError
156
- warn "Tilt::HamlTemplate (disabled)"
157
- end
158
-
159
- __END__
160
- %html
161
- %body
162
- %h1= "Hey #{name}"
163
-
164
- = raise MockError
165
-
166
- %p we never get here