tilt 2.0.0 → 2.4.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.
Files changed (96) hide show
  1. checksums.yaml +5 -5
  2. data/COPYING +2 -1
  3. data/bin/tilt +2 -110
  4. data/lib/tilt/_emacs_org.rb +2 -0
  5. data/lib/tilt/_handlebars.rb +2 -0
  6. data/lib/tilt/_jbuilder.rb +2 -0
  7. data/lib/tilt/_org.rb +2 -0
  8. data/lib/tilt/asciidoc.rb +11 -23
  9. data/lib/tilt/babel.rb +8 -0
  10. data/lib/tilt/builder.rb +23 -14
  11. data/lib/tilt/cli.rb +134 -0
  12. data/lib/tilt/coffee.rb +17 -25
  13. data/lib/tilt/commonmarker.rb +95 -0
  14. data/lib/tilt/creole.rb +9 -20
  15. data/lib/tilt/csv.rb +9 -21
  16. data/lib/tilt/erb.rb +27 -19
  17. data/lib/tilt/erubi.rb +55 -0
  18. data/lib/tilt/erubis.rb +20 -12
  19. data/lib/tilt/etanni.rb +5 -4
  20. data/lib/tilt/haml.rb +79 -42
  21. data/lib/tilt/kramdown.rb +8 -28
  22. data/lib/tilt/liquid.rb +11 -9
  23. data/lib/tilt/livescript.rb +11 -0
  24. data/lib/tilt/mapping.rb +242 -95
  25. data/lib/tilt/markaby.rb +5 -7
  26. data/lib/tilt/maruku.rb +6 -18
  27. data/lib/tilt/nokogiri.rb +11 -10
  28. data/lib/tilt/pandoc.rb +39 -0
  29. data/lib/tilt/pipeline.rb +19 -0
  30. data/lib/tilt/plain.rb +4 -19
  31. data/lib/tilt/prawn.rb +28 -0
  32. data/lib/tilt/radius.rb +15 -22
  33. data/lib/tilt/rdiscount.rb +17 -33
  34. data/lib/tilt/rdoc.rb +14 -35
  35. data/lib/tilt/redcarpet.rb +20 -93
  36. data/lib/tilt/redcloth.rb +9 -19
  37. data/lib/tilt/rst-pandoc.rb +10 -0
  38. data/lib/tilt/sass.rb +59 -22
  39. data/lib/tilt/slim.rb +5 -0
  40. data/lib/tilt/string.rb +9 -3
  41. data/lib/tilt/template.rb +246 -78
  42. data/lib/tilt/typescript.rb +19 -0
  43. data/lib/tilt/wikicloth.rb +8 -18
  44. data/lib/tilt/yajl.rb +5 -11
  45. data/lib/tilt.rb +91 -41
  46. metadata +39 -102
  47. data/CHANGELOG.md +0 -61
  48. data/Gemfile +0 -39
  49. data/HACKING +0 -16
  50. data/README.md +0 -206
  51. data/Rakefile +0 -95
  52. data/docs/TEMPLATES.md +0 -523
  53. data/docs/common.css +0 -14
  54. data/lib/tilt/bluecloth.rb +0 -24
  55. data/lib/tilt/less.rb +0 -38
  56. data/test/markaby/locals.mab +0 -1
  57. data/test/markaby/markaby.mab +0 -1
  58. data/test/markaby/markaby_other_static.mab +0 -1
  59. data/test/markaby/render_twice.mab +0 -1
  60. data/test/markaby/scope.mab +0 -1
  61. data/test/markaby/yielding.mab +0 -2
  62. data/test/test_helper.rb +0 -64
  63. data/test/tilt_asciidoctor_test.rb +0 -44
  64. data/test/tilt_blueclothtemplate_test.rb +0 -33
  65. data/test/tilt_buildertemplate_test.rb +0 -59
  66. data/test/tilt_cache_test.rb +0 -32
  67. data/test/tilt_coffeescripttemplate_test.rb +0 -104
  68. data/test/tilt_compilesite_test.rb +0 -51
  69. data/test/tilt_creoletemplate_test.rb +0 -24
  70. data/test/tilt_csv_test.rb +0 -65
  71. data/test/tilt_erbtemplate_test.rb +0 -239
  72. data/test/tilt_erubistemplate_test.rb +0 -151
  73. data/test/tilt_etannitemplate_test.rb +0 -174
  74. data/test/tilt_hamltemplate_test.rb +0 -144
  75. data/test/tilt_kramdown_test.rb +0 -20
  76. data/test/tilt_lesstemplate_test.less +0 -1
  77. data/test/tilt_lesstemplate_test.rb +0 -42
  78. data/test/tilt_liquidtemplate_test.rb +0 -78
  79. data/test/tilt_mapping_test.rb +0 -229
  80. data/test/tilt_markaby_test.rb +0 -88
  81. data/test/tilt_markdown_test.rb +0 -174
  82. data/test/tilt_marukutemplate_test.rb +0 -36
  83. data/test/tilt_metadata_test.rb +0 -42
  84. data/test/tilt_nokogiritemplate_test.rb +0 -87
  85. data/test/tilt_radiustemplate_test.rb +0 -75
  86. data/test/tilt_rdiscounttemplate_test.rb +0 -43
  87. data/test/tilt_rdoctemplate_test.rb +0 -29
  88. data/test/tilt_redcarpettemplate_test.rb +0 -59
  89. data/test/tilt_redclothtemplate_test.rb +0 -36
  90. data/test/tilt_sasstemplate_test.rb +0 -41
  91. data/test/tilt_stringtemplate_test.rb +0 -171
  92. data/test/tilt_template_test.rb +0 -316
  93. data/test/tilt_test.rb +0 -60
  94. data/test/tilt_wikiclothtemplate_test.rb +0 -32
  95. data/test/tilt_yajltemplate_test.rb +0 -101
  96. data/tilt.gemspec +0 -107
@@ -1,75 +0,0 @@
1
- require 'test_helper'
2
- require 'tilt'
3
-
4
- begin
5
- require 'tilt/radius'
6
-
7
- # Disable radius tests under Ruby versions >= 1.9.1 since it's still buggy.
8
- # Remove when fixed upstream.
9
- raise LoadError if RUBY_VERSION >= "1.9.1" and Radius.version < "0.7"
10
-
11
- class RadiusTemplateTest < Minitest::Test
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 "can be rendered more than once" do
22
- template = Tilt::RadiusTemplate.new { |t| "Hello World!" }
23
- 3.times { assert_equal "Hello World!", template.render }
24
- end
25
-
26
- test "passing locals" do
27
- template = Tilt::RadiusTemplate.new { "Hey <r:name />!" }
28
- assert_equal "Hey Joe!", template.render(nil, :name => 'Joe')
29
- end
30
-
31
- class ExampleRadiusScope
32
- def beer; 'wet'; end
33
- def whisky; 'wetter'; end
34
- end
35
-
36
- test "combining scope and locals when scope responds" do
37
- template = Tilt::RadiusTemplate.new {
38
- 'Beer is <r:beer /> but Whisky is <r:whisky />.'
39
- }
40
- scope = ExampleRadiusScope.new
41
- assert_equal "Beer is wet but Whisky is wetter.", template.render(scope)
42
- end
43
-
44
- test "precedence when locals and scope define same variables" do
45
- template = Tilt::RadiusTemplate.new {
46
- 'Beer is <r:beer /> but Whisky is <r:whisky />.'
47
- }
48
- scope = ExampleRadiusScope.new
49
- assert_equal "Beer is great but Whisky is greater.",
50
- template.render(scope, :beer => 'great', :whisky => 'greater')
51
- end
52
-
53
- #test "handles local scope" do
54
- # beer = 'wet'
55
- # whisky = 'wetter'
56
- #
57
- # template = Tilt::RadiusTemplate.new {
58
- # 'Beer is <r:beer /> but Whisky is <r:whisky />.'
59
- # }
60
- # assert_equal "Beer is wet but Whisky is wetter.", template.render(self)
61
- #end
62
-
63
- test "passing a block for yield" do
64
- template = Tilt::RadiusTemplate.new {
65
- 'Beer is <r:yield /> but Whisky is <r:yield />ter.'
66
- }
67
- assert_equal "Beer is wet but Whisky is wetter.",
68
- template.render({}) { 'wet' }
69
- end
70
- end
71
-
72
- rescue LoadError => boom
73
- warn "Tilt::RadiusTemplate (disabled)"
74
- end
75
-
@@ -1,43 +0,0 @@
1
- require 'test_helper'
2
- require 'tilt'
3
-
4
- begin
5
- require 'tilt/rdiscount'
6
-
7
- class RDiscountTemplateTest < Minitest::Test
8
- test "registered above BlueCloth" do
9
- %w[md mkd markdown].each do |ext|
10
- lazy = Tilt.lazy_map[ext]
11
- rdis_idx = lazy.index { |klass, file| klass == 'Tilt::RDiscountTemplate' }
12
- blue_idx = lazy.index { |klass, file| klass == 'Tilt::BlueClothTemplate' }
13
- assert rdis_idx < blue_idx,
14
- "#{rdis_idx} should be lower than #{blue_idx}"
15
- end
16
- end
17
-
18
- test "preparing and evaluating templates on #render" do
19
- template = Tilt::RDiscountTemplate.new { |t| "# Hello World!" }
20
- assert_equal "<h1>Hello World!</h1>\n", template.render
21
- end
22
-
23
- test "can be rendered more than once" do
24
- template = Tilt::RDiscountTemplate.new { |t| "# Hello World!" }
25
- 3.times { assert_equal "<h1>Hello World!</h1>\n", template.render }
26
- end
27
-
28
- test "smartypants when :smart is set" do
29
- template = Tilt::RDiscountTemplate.new(:smart => true) { |t|
30
- "OKAY -- 'Smarty Pants'" }
31
- assert_equal "<p>OKAY &ndash; &lsquo;Smarty Pants&rsquo;</p>\n",
32
- template.render
33
- end
34
-
35
- test "stripping HTML when :filter_html is set" do
36
- template = Tilt::RDiscountTemplate.new(:filter_html => true) { |t|
37
- "HELLO <blink>WORLD</blink>" }
38
- assert_equal "<p>HELLO &lt;blink>WORLD&lt;/blink></p>\n", template.render
39
- end
40
- end
41
- rescue LoadError => boom
42
- warn "Tilt::RDiscountTemplate (disabled)"
43
- end
@@ -1,29 +0,0 @@
1
- require 'test_helper'
2
- require 'tilt'
3
-
4
- begin
5
- require 'tilt/rdoc'
6
- class RDocTemplateTest < Minitest::Test
7
- test "is registered for '.rdoc' files" do
8
- assert_equal Tilt::RDocTemplate, Tilt['test.rdoc']
9
- end
10
-
11
- test "preparing and evaluating the template with #render" do
12
- template = Tilt::RDocTemplate.new { |t| "= Hello World!" }
13
- result = template.render.strip
14
- assert_match /<h1/, result
15
- assert_match />Hello World!</, result
16
- end
17
-
18
- test "can be rendered more than once" do
19
- template = Tilt::RDocTemplate.new { |t| "= Hello World!" }
20
- 3.times do
21
- result = template.render.strip
22
- assert_match /<h1/, result
23
- assert_match />Hello World!</, result
24
- end
25
- end
26
- end
27
- rescue LoadError => boom
28
- warn "Tilt::RDocTemplate (disabled) [#{boom}]"
29
- end
@@ -1,59 +0,0 @@
1
- require 'test_helper'
2
- require 'tilt'
3
-
4
- begin
5
- require 'tilt/redcarpet'
6
-
7
- class RedcarpetTemplateTest < Minitest::Test
8
- test "registered above BlueCloth" do
9
- %w[md mkd markdown].each do |ext|
10
- lazy = Tilt.lazy_map[ext]
11
- blue_idx = lazy.index { |klass, file| klass == 'Tilt::BlueClothTemplate' }
12
- redc_idx = lazy.index { |klass, file| klass == 'Tilt::RedcarpetTemplate' }
13
- assert redc_idx < blue_idx,
14
- "#{redc_idx} should be lower than #{blue_idx}"
15
- end
16
- end
17
-
18
- test "registered above RDiscount" do
19
- %w[md mkd markdown].each do |ext|
20
- lazy = Tilt.lazy_map[ext]
21
- rdis_idx = lazy.index { |klass, file| klass == 'Tilt::RDiscountTemplate' }
22
- redc_idx = lazy.index { |klass, file| klass == 'Tilt::RedcarpetTemplate' }
23
- assert redc_idx < rdis_idx,
24
- "#{redc_idx} should be lower than #{rdis_idx}"
25
- end
26
- end
27
-
28
- test "redcarpet2 is our default choice" do
29
- template = Tilt::RedcarpetTemplate.new {}
30
- assert_equal Tilt::RedcarpetTemplate::Redcarpet2, template.prepare.class
31
- end
32
-
33
- test "preparing and evaluating templates on #render" do
34
- template = Tilt::RedcarpetTemplate.new { |t| "# Hello World!" }
35
- assert_equal "<h1>Hello World!</h1>\n", template.render
36
- end
37
-
38
- test "can be rendered more than once" do
39
- template = Tilt::RedcarpetTemplate.new { |t| "# Hello World!" }
40
- 3.times { assert_equal "<h1>Hello World!</h1>\n", template.render }
41
- end
42
-
43
- test "smartypants when :smart is set" do
44
- template = Tilt::RedcarpetTemplate.new(:smartypants => true) { |t|
45
- "OKAY -- 'Smarty Pants'" }
46
- assert_match /<p>OKAY &ndash; (&#39;|&lsquo;)Smarty Pants(&#39;|&rsquo;)<\/p>/,
47
- template.render
48
- end
49
-
50
- test "smartypants with a rendererer instance" do
51
- template = Tilt::RedcarpetTemplate.new(:renderer => Redcarpet::Render::HTML.new(:hard_wrap => true), :smartypants => true) { |t|
52
- "OKAY -- 'Smarty Pants'" }
53
- assert_match /<p>OKAY &ndash; (&#39;|&lsquo;)Smarty Pants(&#39;|&rsquo;)<\/p>/,
54
- template.render
55
- end
56
- end
57
- rescue LoadError => boom
58
- warn "Tilt::RedcarpetTemplate (disabled)"
59
- end
@@ -1,36 +0,0 @@
1
- require 'test_helper'
2
- require 'tilt'
3
-
4
- begin
5
- require 'tilt/redcloth'
6
-
7
- class RedClothTemplateTest < Minitest::Test
8
- test "is registered for '.textile' files" do
9
- assert_equal Tilt::RedClothTemplate, Tilt['test.textile']
10
- end
11
-
12
- test "compiles and evaluates the template on #render" do
13
- template = Tilt::RedClothTemplate.new { |t| "h1. Hello World!" }
14
- assert_equal "<h1>Hello World!</h1>", template.render
15
- end
16
-
17
- test "can be rendered more than once" do
18
- template = Tilt::RedClothTemplate.new { |t| "h1. Hello World!" }
19
- 3.times { assert_equal "<h1>Hello World!</h1>", template.render }
20
- end
21
-
22
- test "ignores unknown options" do
23
- template = Tilt::RedClothTemplate.new(:foo => "bar") { |t| "h1. Hello World!" }
24
- 3.times { assert_equal "<h1>Hello World!</h1>", template.render }
25
- end
26
-
27
- test "passes in RedCloth options" do
28
- template = Tilt::RedClothTemplate.new { |t| "Hard breaks are\ninserted by default." }
29
- assert_equal "<p>Hard breaks are<br />\ninserted by default.</p>", template.render
30
- template = Tilt::RedClothTemplate.new(:hard_breaks => false) { |t| "But they can be\nturned off." }
31
- assert_equal "<p>But they can be\nturned off.</p>", template.render
32
- end
33
- end
34
- rescue LoadError => boom
35
- warn "Tilt::RedClothTemplate (disabled)"
36
- end
@@ -1,41 +0,0 @@
1
- require 'test_helper'
2
- require 'tilt'
3
-
4
- begin
5
- require 'tilt/sass'
6
-
7
- class SassTemplateTest < Minitest::Test
8
- test "is registered for '.sass' files" do
9
- assert_equal Tilt::SassTemplate, Tilt['test.sass']
10
- end
11
-
12
- test "compiles and evaluates the template on #render" do
13
- template = Tilt::SassTemplate.new { |t| "#main\n :background-color #0000f1" }
14
- assert_equal "#main {\n background-color: #0000f1; }\n", template.render
15
- end
16
-
17
- test "can be rendered more than once" do
18
- template = Tilt::SassTemplate.new { |t| "#main\n :background-color #0000f1" }
19
- 3.times { assert_equal "#main {\n background-color: #0000f1; }\n", template.render }
20
- end
21
- end
22
-
23
- class ScssTemplateTest < Minitest::Test
24
- test "is registered for '.scss' files" do
25
- assert_equal Tilt::ScssTemplate, Tilt['test.scss']
26
- end
27
-
28
- test "compiles and evaluates the template on #render" do
29
- template = Tilt::ScssTemplate.new { |t| "#main {\n background-color: #0000f1;\n}" }
30
- assert_equal "#main {\n background-color: #0000f1; }\n", template.render
31
- end
32
-
33
- test "can be rendered more than once" do
34
- template = Tilt::ScssTemplate.new { |t| "#main {\n background-color: #0000f1;\n}" }
35
- 3.times { assert_equal "#main {\n background-color: #0000f1; }\n", template.render }
36
- end
37
- end
38
-
39
- rescue LoadError => boom
40
- warn "Tilt::SassTemplate (disabled)"
41
- end
@@ -1,171 +0,0 @@
1
- require 'test_helper'
2
- require 'tilt'
3
- require 'tilt/string'
4
-
5
- class StringTemplateTest < Minitest::Test
6
- test "registered for '.str' files" do
7
- assert_equal Tilt::StringTemplate, Tilt['test.str']
8
- end
9
-
10
- test "loading and evaluating templates on #render" do
11
- template = Tilt::StringTemplate.new { |t| "Hello World!" }
12
- assert_equal "Hello World!", template.render
13
- end
14
-
15
- test "can be rendered more than once" do
16
- template = Tilt::StringTemplate.new { |t| "Hello World!" }
17
- 3.times { assert_equal "Hello World!", template.render }
18
- end
19
-
20
- test "passing locals" do
21
- template = Tilt::StringTemplate.new { 'Hey #{name}!' }
22
- assert_equal "Hey Joe!", template.render(Object.new, :name => 'Joe')
23
- end
24
-
25
- test "evaluating in an object scope" do
26
- template = Tilt::StringTemplate.new { 'Hey #{@name}!' }
27
- scope = Object.new
28
- scope.instance_variable_set :@name, 'Joe'
29
- assert_equal "Hey Joe!", template.render(scope)
30
- end
31
-
32
- test "passing a block for yield" do
33
- template = Tilt::StringTemplate.new { 'Hey #{yield}!' }
34
- assert_equal "Hey Joe!", template.render { 'Joe' }
35
- assert_equal "Hey Moe!", template.render { 'Moe' }
36
- end
37
-
38
- test "multiline templates" do
39
- template = Tilt::StringTemplate.new { "Hello\nWorld!\n" }
40
- assert_equal "Hello\nWorld!\n", template.render
41
- end
42
-
43
- test "backtrace file and line reporting without locals" do
44
- data = File.read(__FILE__).split("\n__END__\n").last
45
- fail unless data[0] == ?<
46
- template = Tilt::StringTemplate.new('test.str', 11) { data }
47
- begin
48
- template.render
49
- fail 'should have raised an exception'
50
- rescue => boom
51
- assert_kind_of NameError, boom
52
- line = boom.backtrace.grep(/^test\.str:/).first
53
- assert line, "Backtrace didn't contain test.str"
54
- file, line, meth = line.split(":")
55
- assert_equal '13', line
56
- end
57
- end
58
-
59
- test "backtrace file and line reporting with locals" do
60
- data = File.read(__FILE__).split("\n__END__\n").last
61
- fail unless data[0] == ?<
62
- template = Tilt::StringTemplate.new('test.str', 1) { data }
63
- begin
64
- template.render(nil, :name => 'Joe', :foo => 'bar')
65
- fail 'should have raised an exception'
66
- rescue => boom
67
- assert_kind_of RuntimeError, boom
68
- line = boom.backtrace.first
69
- file, line, meth = line.split(":")
70
- assert_equal 'test.str', file
71
- assert_equal '6', line
72
- end
73
- end
74
- end
75
-
76
-
77
- class CompiledStringTemplateTest < Minitest::Test
78
- def teardown
79
- GC.start
80
- end
81
-
82
- class Scope
83
- end
84
-
85
- test "compiling template source to a method" do
86
- template = Tilt::StringTemplate.new { |t| "Hello World!" }
87
- template.render(Scope.new)
88
- method = template.send(:compiled_method, [])
89
- assert_kind_of UnboundMethod, method
90
- end
91
-
92
- test "loading and evaluating templates on #render" do
93
- template = Tilt::StringTemplate.new { |t| "Hello World!" }
94
- assert_equal "Hello World!", template.render(Scope.new)
95
- end
96
-
97
- test "passing locals" do
98
- template = Tilt::StringTemplate.new { 'Hey #{name}!' }
99
- assert_equal "Hey Joe!", template.render(Scope.new, :name => 'Joe')
100
- assert_equal "Hey Moe!", template.render(Scope.new, :name => 'Moe')
101
- end
102
-
103
- test "evaluating in an object scope" do
104
- template = Tilt::StringTemplate.new { 'Hey #{@name}!' }
105
- scope = Scope.new
106
- scope.instance_variable_set :@name, 'Joe'
107
- assert_equal "Hey Joe!", template.render(scope)
108
- scope.instance_variable_set :@name, 'Moe'
109
- assert_equal "Hey Moe!", template.render(scope)
110
- end
111
-
112
- test "passing a block for yield" do
113
- template = Tilt::StringTemplate.new { 'Hey #{yield}!' }
114
- assert_equal "Hey Joe!", template.render(Scope.new) { 'Joe' }
115
- assert_equal "Hey Moe!", template.render(Scope.new) { 'Moe' }
116
- end
117
-
118
- test "multiline templates" do
119
- template = Tilt::StringTemplate.new { "Hello\nWorld!\n" }
120
- assert_equal "Hello\nWorld!\n", template.render(Scope.new)
121
- end
122
-
123
-
124
- test "template with '}'" do
125
- template = Tilt::StringTemplate.new { "Hello }" }
126
- assert_equal "Hello }", template.render
127
- end
128
-
129
- test "backtrace file and line reporting without locals" do
130
- data = File.read(__FILE__).split("\n__END__\n").last
131
- fail unless data[0] == ?<
132
- template = Tilt::StringTemplate.new('test.str', 11) { data }
133
- begin
134
- template.render(Scope.new)
135
- fail 'should have raised an exception'
136
- rescue => boom
137
- assert_kind_of NameError, boom
138
- line = boom.backtrace.first
139
- line = boom.backtrace.grep(/^test\.str:/).first
140
- assert line, "Backtrace didn't contain test.str"
141
- file, line, meth = line.split(":")
142
- assert_equal '13', line
143
- end
144
- end
145
-
146
- test "backtrace file and line reporting with locals" do
147
- data = File.read(__FILE__).split("\n__END__\n").last
148
- fail unless data[0] == ?<
149
- template = Tilt::StringTemplate.new('test.str') { data }
150
- begin
151
- template.render(Scope.new, :name => 'Joe', :foo => 'bar')
152
- fail 'should have raised an exception'
153
- rescue => boom
154
- assert_kind_of RuntimeError, boom
155
- line = boom.backtrace.first
156
- file, line, meth = line.split(":")
157
- assert_equal 'test.str', file
158
- assert_equal '6', line
159
- end
160
- end
161
- end
162
-
163
- __END__
164
- <html>
165
- <body>
166
- <h1>Hey #{name}!</h1>
167
-
168
-
169
- <p>#{fail}</p>
170
- </body>
171
- </html>