tilt 1.4.1 → 2.0.11

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 (91) hide show
  1. checksums.yaml +7 -0
  2. data/COPYING +1 -1
  3. data/bin/tilt +18 -8
  4. data/lib/tilt/asciidoc.rb +1 -8
  5. data/lib/tilt/babel.rb +16 -0
  6. data/lib/tilt/bluecloth.rb +24 -0
  7. data/lib/tilt/builder.rb +12 -15
  8. data/lib/tilt/coffee.rb +10 -6
  9. data/lib/tilt/commonmarker.rb +88 -0
  10. data/lib/tilt/creole.rb +25 -0
  11. data/lib/tilt/csv.rb +12 -18
  12. data/lib/tilt/dummy.rb +3 -0
  13. data/lib/tilt/erb.rb +9 -56
  14. data/lib/tilt/erubi.rb +32 -0
  15. data/lib/tilt/erubis.rb +43 -0
  16. data/lib/tilt/haml.rb +66 -44
  17. data/lib/tilt/kramdown.rb +25 -0
  18. data/lib/tilt/less.rb +30 -0
  19. data/lib/tilt/liquid.rb +9 -10
  20. data/lib/tilt/livescript.rb +23 -0
  21. data/lib/tilt/mapping.rb +293 -0
  22. data/lib/tilt/markaby.rb +1 -8
  23. data/lib/tilt/maruku.rb +22 -0
  24. data/lib/tilt/nokogiri.rb +1 -8
  25. data/lib/tilt/pandoc.rb +57 -0
  26. data/lib/tilt/plain.rb +0 -4
  27. data/lib/tilt/prawn.rb +43 -0
  28. data/lib/tilt/radius.rb +1 -8
  29. data/lib/tilt/rdiscount.rb +39 -0
  30. data/lib/tilt/rdoc.rb +3 -10
  31. data/lib/tilt/redcarpet.rb +86 -0
  32. data/lib/tilt/{textile.rb → redcloth.rb} +1 -8
  33. data/lib/tilt/rst-pandoc.rb +23 -0
  34. data/lib/tilt/sass.rb +78 -0
  35. data/lib/tilt/sigil.rb +34 -0
  36. data/lib/tilt/string.rb +1 -1
  37. data/lib/tilt/template.rb +121 -105
  38. data/lib/tilt/typescript.rb +26 -0
  39. data/lib/tilt/wikicloth.rb +22 -0
  40. data/lib/tilt/yajl.rb +1 -8
  41. data/lib/tilt.rb +118 -155
  42. metadata +38 -469
  43. data/CHANGELOG.md +0 -44
  44. data/Gemfile +0 -32
  45. data/HACKING +0 -16
  46. data/README.md +0 -232
  47. data/Rakefile +0 -104
  48. data/TEMPLATES.md +0 -516
  49. data/lib/tilt/css.rb +0 -80
  50. data/lib/tilt/markdown.rb +0 -214
  51. data/lib/tilt/wiki.rb +0 -58
  52. data/test/contest.rb +0 -68
  53. data/test/markaby/locals.mab +0 -1
  54. data/test/markaby/markaby.mab +0 -1
  55. data/test/markaby/markaby_other_static.mab +0 -1
  56. data/test/markaby/render_twice.mab +0 -1
  57. data/test/markaby/scope.mab +0 -1
  58. data/test/markaby/yielding.mab +0 -2
  59. data/test/tilt_asciidoctor_test.rb +0 -44
  60. data/test/tilt_blueclothtemplate_test.rb +0 -45
  61. data/test/tilt_buildertemplate_test.rb +0 -59
  62. data/test/tilt_cache_test.rb +0 -32
  63. data/test/tilt_coffeescripttemplate_test.rb +0 -114
  64. data/test/tilt_compilesite_test.rb +0 -51
  65. data/test/tilt_creoletemplate_test.rb +0 -28
  66. data/test/tilt_csv_test.rb +0 -69
  67. data/test/tilt_erbtemplate_test.rb +0 -239
  68. data/test/tilt_erubistemplate_test.rb +0 -151
  69. data/test/tilt_etannitemplate_test.rb +0 -173
  70. data/test/tilt_fallback_test.rb +0 -122
  71. data/test/tilt_hamltemplate_test.rb +0 -144
  72. data/test/tilt_kramdown_test.rb +0 -42
  73. data/test/tilt_lesstemplate_test.less +0 -1
  74. data/test/tilt_lesstemplate_test.rb +0 -42
  75. data/test/tilt_liquidtemplate_test.rb +0 -78
  76. data/test/tilt_markaby_test.rb +0 -88
  77. data/test/tilt_markdown_test.rb +0 -172
  78. data/test/tilt_marukutemplate_test.rb +0 -48
  79. data/test/tilt_nokogiritemplate_test.rb +0 -87
  80. data/test/tilt_radiustemplate_test.rb +0 -75
  81. data/test/tilt_rdiscounttemplate_test.rb +0 -55
  82. data/test/tilt_rdoctemplate_test.rb +0 -31
  83. data/test/tilt_redcarpettemplate_test.rb +0 -71
  84. data/test/tilt_redclothtemplate_test.rb +0 -36
  85. data/test/tilt_sasstemplate_test.rb +0 -41
  86. data/test/tilt_stringtemplate_test.rb +0 -170
  87. data/test/tilt_template_test.rb +0 -323
  88. data/test/tilt_test.rb +0 -65
  89. data/test/tilt_wikiclothtemplate_test.rb +0 -32
  90. data/test/tilt_yajltemplate_test.rb +0 -101
  91. data/tilt.gemspec +0 -120
@@ -1,172 +0,0 @@
1
- # coding: UTF-8
2
- require 'tilt'
3
-
4
- begin
5
- require 'nokogiri'
6
-
7
- module MarkdownTests
8
- def self.included(mod)
9
- class << mod
10
- def template(t = nil)
11
- t.nil? ? @template : @template = t
12
- end
13
- end
14
- end
15
-
16
- def render(text, options = {})
17
- self.class.template.new(options) { text }.render
18
- end
19
-
20
- def normalize(html)
21
- Nokogiri::HTML.fragment(html).to_s.strip
22
- end
23
-
24
- def nrender(text, options = {})
25
- html = render(text, options)
26
- html.encode!("UTF-8") if html.respond_to?(:encode)
27
- normalize(html)
28
- end
29
-
30
- def test_escape_html
31
- html = nrender "Hello <b>World</b>"
32
- assert_equal "<p>Hello <b>World</b></p>", html
33
- end
34
-
35
- def test_escape_html_false
36
- html = nrender "Hello <b>World</b>", :escape_html => false
37
- assert_equal "<p>Hello <b>World</b></p>", html
38
- end
39
-
40
- def test_escape_html_true
41
- if self.class.template == Tilt::RedcarpetTemplate
42
- flunk "redcarpet doesn't support :escape_html yet"
43
- end
44
- html = nrender "Hello <b>World</b>", :escape_html => true
45
- assert_equal "<p>Hello &lt;b&gt;World&lt;/b&gt;</p>", html
46
- end
47
-
48
- def test_smart_quotes
49
- html = nrender 'Hello "World"'
50
- assert_equal '<p>Hello "World"</p>', html
51
- end
52
-
53
- def test_smart_quotes_false
54
- html = nrender 'Hello "World"', :smartypants => false
55
- assert_equal '<p>Hello "World"</p>', html
56
- end
57
-
58
- def test_smart_quotes_true
59
- html = nrender 'Hello "World"', :smartypants => true
60
- assert_equal '<p>Hello “World”</p>', html
61
- end
62
-
63
- def test_smarty_pants
64
- html = nrender "Hello ``World'' -- This is --- a test ..."
65
- assert_equal "<p>Hello ``World'' -- This is --- a test ...</p>", html
66
- end
67
-
68
- def test_smarty_pants_false
69
- html = nrender "Hello ``World'' -- This is --- a test ...", :smartypants => false
70
- assert_equal "<p>Hello ``World'' -- This is --- a test ...</p>", html
71
- end
72
-
73
- def test_smarty_pants_true
74
- html = nrender "Hello ``World'' -- This is --- a test ...", :smartypants => true
75
- assert_equal "<p>Hello “World” — This is —– a test …</p>", html
76
- end
77
- end
78
-
79
- begin
80
- require 'rdiscount'
81
-
82
- class MarkdownRDiscountTest < Test::Unit::TestCase
83
- include MarkdownTests
84
- template Tilt::RDiscountTemplate
85
- end
86
- rescue LoadError => boom
87
- # It should already be warned in the main tests
88
- end
89
-
90
- begin
91
- require 'redcarpet'
92
-
93
- class MarkdownRedcarpetTest < Test::Unit::TestCase
94
- include MarkdownTests
95
- template Tilt::RedcarpetTemplate
96
- # Doesn't support escaping
97
- undef test_escape_html_true
98
-
99
- def test_smarty_pants_true
100
- html = nrender "Hello ``World'' -- This is --- a test ...", :smartypants => true
101
- assert_equal "<p>Hello “World'' – This is — a test …</p>", html
102
- end
103
-
104
- def test_fenced_code_blocks_with_lang
105
- code = <<-COD.gsub(/^\s+/,"")
106
- ```ruby
107
- puts "hello world"
108
- ```
109
- COD
110
-
111
- html = nrender code, :fenced_code_blocks => true
112
- assert_equal %Q{<pre><code class="ruby">puts "hello world"\n</code></pre>}, html
113
- end
114
- end
115
- rescue LoadError => boom
116
- # It should already be warned in the main tests
117
- end
118
-
119
- begin
120
- require 'bluecloth'
121
-
122
- class MarkdownBlueClothTest < Test::Unit::TestCase
123
- include MarkdownTests
124
- template Tilt::BlueClothTemplate
125
- end
126
- rescue LoadError => boom
127
- # It should already be warned in the main tests
128
- end
129
-
130
- begin
131
- require 'kramdown'
132
-
133
- class MarkdownKramdownTest < Test::Unit::TestCase
134
- include MarkdownTests
135
- template Tilt::KramdownTemplate
136
- # Doesn't support escaping
137
- undef test_escape_html_true
138
- # Smarty Pants is *always* on, but doesn't support it fully
139
- undef test_smarty_pants
140
- undef test_smarty_pants_false
141
- undef test_smarty_pants_true
142
- end
143
- rescue LoadError => boom
144
- # It should already be warned in the main tests
145
- end
146
-
147
-
148
- begin
149
- require 'maruku'
150
-
151
- class MarkdownMarukuTest < Test::Unit::TestCase
152
- include MarkdownTests
153
- template Tilt::MarukuTemplate
154
- # Doesn't support escaping
155
- undef test_escape_html_true
156
- # Doesn't support Smarty Pants, and even fails on ``Foobar''
157
- undef test_smarty_pants
158
- undef test_smarty_pants_false
159
- undef test_smarty_pants_true
160
- # Smart Quotes is always on
161
- undef test_smart_quotes
162
- undef test_smart_quotes_false
163
- end
164
- rescue LoadError => boom
165
- # It should already be warned in the main tests
166
- end
167
-
168
- rescue LoadError
169
- warn "Markdown tests need Nokogiri"
170
- end
171
-
172
-
@@ -1,48 +0,0 @@
1
- require 'contest'
2
- require 'tilt'
3
-
4
- begin
5
- require 'maruku'
6
-
7
- class MarukuTemplateTest < Test::Unit::TestCase
8
- test "registered for '.md' files" do
9
- assert Tilt.mappings['md'].include?(Tilt::MarukuTemplate)
10
- end
11
-
12
- test "registered for '.mkd' files" do
13
- assert Tilt.mappings['mkd'].include?(Tilt::MarukuTemplate)
14
- end
15
-
16
- test "registered for '.markdown' files" do
17
- assert Tilt.mappings['markdown'].include?(Tilt::MarukuTemplate)
18
- end
19
-
20
- test "registered below Kramdown" do
21
- %w[md mkd markdown].each do |ext|
22
- mappings = Tilt.mappings[ext]
23
- kram_idx = mappings.index(Tilt::KramdownTemplate)
24
- maru_idx = mappings.index(Tilt::MarukuTemplate)
25
- assert maru_idx > kram_idx,
26
- "#{maru_idx} should be higher than #{kram_idx}"
27
- end
28
- end
29
-
30
- test "preparing and evaluating templates on #render" do
31
- template = Tilt::MarukuTemplate.new { |t| "# Hello World!" }
32
- assert_equal "<h1 id='hello_world'>Hello World!</h1>", template.render
33
- end
34
-
35
- test "can be rendered more than once" do
36
- template = Tilt::MarukuTemplate.new { |t| "# Hello World!" }
37
- 3.times { assert_equal "<h1 id='hello_world'>Hello World!</h1>", template.render }
38
- end
39
-
40
- test "removes HTML when :filter_html is set" do
41
- template = Tilt::MarukuTemplate.new(:filter_html => true) { |t|
42
- "HELLO <blink>WORLD</blink>" }
43
- assert_equal "<p>HELLO </p>", template.render
44
- end
45
- end
46
- rescue LoadError => boom
47
- warn "Tilt::MarukuTemplate (disabled)"
48
- end
@@ -1,87 +0,0 @@
1
- require 'contest'
2
- require 'tilt'
3
-
4
- begin
5
- require 'nokogiri'
6
- class NokogiriTemplateTest < Test::Unit::TestCase
7
- test "registered for '.nokogiri' files" do
8
- assert_equal Tilt::NokogiriTemplate, Tilt['test.nokogiri']
9
- assert_equal Tilt::NokogiriTemplate, Tilt['test.xml.nokogiri']
10
- end
11
-
12
- test "preparing and evaluating the template on #render" do
13
- template = Tilt::NokogiriTemplate.new { |t| "xml.em 'Hello World!'" }
14
- doc = Nokogiri.XML template.render
15
- assert_equal 'Hello World!', doc.root.text
16
- assert_equal 'em', doc.root.name
17
- end
18
-
19
- test "can be rendered more than once" do
20
- template = Tilt::NokogiriTemplate.new { |t| "xml.em 'Hello World!'" }
21
- 3.times do
22
- doc = Nokogiri.XML template.render
23
- assert_equal 'Hello World!', doc.root.text
24
- assert_equal 'em', doc.root.name
25
- end
26
- end
27
-
28
- test "passing locals" do
29
- template = Tilt::NokogiriTemplate.new { "xml.em('Hey ' + name + '!')" }
30
- doc = Nokogiri.XML template.render(Object.new, :name => 'Joe')
31
- assert_equal 'Hey Joe!', doc.root.text
32
- assert_equal 'em', doc.root.name
33
- end
34
-
35
- test "evaluating in an object scope" do
36
- template = Tilt::NokogiriTemplate.new { "xml.em('Hey ' + @name + '!')" }
37
- scope = Object.new
38
- scope.instance_variable_set :@name, 'Joe'
39
- doc = Nokogiri.XML template.render(scope)
40
- assert_equal 'Hey Joe!', doc.root.text
41
- assert_equal 'em', doc.root.name
42
- end
43
-
44
- test "passing a block for yield" do
45
- template = Tilt::NokogiriTemplate.new { "xml.em('Hey ' + yield + '!')" }
46
- 3.times do
47
- doc = Nokogiri.XML template.render { 'Joe' }
48
- assert_equal 'Hey Joe!', doc.root.text
49
- assert_equal 'em', doc.root.name
50
- end
51
- end
52
-
53
- test "block style templates" do
54
- template =
55
- Tilt::NokogiriTemplate.new do |t|
56
- lambda { |xml| xml.em('Hey Joe!') }
57
- end
58
- doc = Nokogiri.XML template.render
59
- assert_equal 'Hey Joe!', doc.root.text
60
- assert_equal 'em', doc.root.name
61
- end
62
-
63
- test "allows nesting raw XML, API-compatible to Builder" do
64
- subtemplate = Tilt::NokogiriTemplate.new { "xml.em 'Hello World!'" }
65
- template = Tilt::NokogiriTemplate.new { "xml.strong { xml << yield }" }
66
- 3.times do
67
- options = { :xml => Nokogiri::XML::Builder.new }
68
- doc = Nokogiri.XML(template.render(options) { subtemplate.render(options) })
69
- assert_equal 'Hello World!', doc.root.text.strip
70
- assert_equal 'strong', doc.root.name
71
- end
72
- end
73
-
74
- test "doesn't modify self when template is a string" do
75
- template = Tilt::NokogiriTemplate.new { "xml.root { xml.child @hello }" }
76
- scope = Object.new
77
- scope.instance_variable_set(:@hello, "Hello World!")
78
-
79
- 3.times do
80
- doc = Nokogiri.XML(template.render(scope))
81
- assert_equal "Hello World!", doc.text.strip
82
- end
83
- end
84
- end
85
- rescue LoadError
86
- warn "Tilt::NokogiriTemplate (disabled)"
87
- end
@@ -1,75 +0,0 @@
1
- require 'contest'
2
- require 'tilt'
3
-
4
- begin
5
- require '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 < 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 "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,55 +0,0 @@
1
- require 'contest'
2
- require 'tilt'
3
-
4
- begin
5
- require 'rdiscount'
6
-
7
- class RDiscountTemplateTest < Test::Unit::TestCase
8
- test "registered for '.md' files" do
9
- assert Tilt.mappings['md'].include?(Tilt::RDiscountTemplate)
10
- end
11
-
12
- test "registered for '.mkd' files" do
13
- assert Tilt.mappings['mkd'].include?(Tilt::RDiscountTemplate)
14
- end
15
-
16
- test "registered for '.markdown' files" do
17
- assert Tilt.mappings['markdown'].include?(Tilt::RDiscountTemplate)
18
- end
19
-
20
- test "registered above BlueCloth" do
21
- %w[md mkd markdown].each do |ext|
22
- mappings = Tilt.mappings[ext]
23
- blue_idx = mappings.index(Tilt::BlueClothTemplate)
24
- rdis_idx = mappings.index(Tilt::RDiscountTemplate)
25
- assert rdis_idx < blue_idx,
26
- "#{rdis_idx} should be lower than #{blue_idx}"
27
- end
28
- end
29
-
30
- test "preparing and evaluating templates on #render" do
31
- template = Tilt::RDiscountTemplate.new { |t| "# Hello World!" }
32
- assert_equal "<h1>Hello World!</h1>\n", template.render
33
- end
34
-
35
- test "can be rendered more than once" do
36
- template = Tilt::RDiscountTemplate.new { |t| "# Hello World!" }
37
- 3.times { assert_equal "<h1>Hello World!</h1>\n", template.render }
38
- end
39
-
40
- test "smartypants when :smart is set" do
41
- template = Tilt::RDiscountTemplate.new(:smart => true) { |t|
42
- "OKAY -- 'Smarty Pants'" }
43
- assert_equal "<p>OKAY &mdash; &lsquo;Smarty Pants&rsquo;</p>\n",
44
- template.render
45
- end
46
-
47
- test "stripping HTML when :filter_html is set" do
48
- template = Tilt::RDiscountTemplate.new(:filter_html => true) { |t|
49
- "HELLO <blink>WORLD</blink>" }
50
- assert_equal "<p>HELLO &lt;blink>WORLD&lt;/blink></p>\n", template.render
51
- end
52
- end
53
- rescue LoadError => boom
54
- warn "Tilt::RDiscountTemplate (disabled)"
55
- end
@@ -1,31 +0,0 @@
1
- require 'contest'
2
- require 'tilt'
3
-
4
- begin
5
- require 'rdoc'
6
- require 'rdoc/markup'
7
- require 'rdoc/markup/to_html'
8
- class RDocTemplateTest < Test::Unit::TestCase
9
- test "is registered for '.rdoc' files" do
10
- assert_equal Tilt::RDocTemplate, Tilt['test.rdoc']
11
- end
12
-
13
- test "preparing and evaluating the template with #render" do
14
- template = Tilt::RDocTemplate.new { |t| "= Hello World!" }
15
- result = template.render.strip
16
- assert_match /<h1/, result
17
- assert_match />Hello World!</, result
18
- end
19
-
20
- test "can be rendered more than once" do
21
- template = Tilt::RDocTemplate.new { |t| "= Hello World!" }
22
- 3.times do
23
- result = template.render.strip
24
- assert_match /<h1/, result
25
- assert_match />Hello World!</, result
26
- end
27
- end
28
- end
29
- rescue LoadError => boom
30
- warn "Tilt::RDocTemplate (disabled) [#{boom}]"
31
- end
@@ -1,71 +0,0 @@
1
- require 'contest'
2
- require 'tilt'
3
-
4
- begin
5
- require 'redcarpet'
6
-
7
- class RedcarpetTemplateTest < Test::Unit::TestCase
8
- test "registered for '.md' files" do
9
- assert Tilt.mappings['md'].include?(Tilt::RedcarpetTemplate)
10
- end
11
-
12
- test "registered for '.mkd' files" do
13
- assert Tilt.mappings['mkd'].include?(Tilt::RedcarpetTemplate)
14
- end
15
-
16
- test "registered for '.markdown' files" do
17
- assert Tilt.mappings['markdown'].include?(Tilt::RedcarpetTemplate)
18
- end
19
-
20
- test "registered above BlueCloth" do
21
- %w[md mkd markdown].each do |ext|
22
- mappings = Tilt.mappings[ext]
23
- blue_idx = mappings.index(Tilt::BlueClothTemplate)
24
- redc_idx = mappings.index(Tilt::RedcarpetTemplate)
25
- assert redc_idx < blue_idx,
26
- "#{redc_idx} should be lower than #{blue_idx}"
27
- end
28
- end
29
-
30
- test "registered above RDiscount" do
31
- %w[md mkd markdown].each do |ext|
32
- mappings = Tilt.mappings[ext]
33
- rdis_idx = mappings.index(Tilt::RDiscountTemplate)
34
- redc_idx = mappings.index(Tilt::RedcarpetTemplate)
35
- assert redc_idx < rdis_idx,
36
- "#{redc_idx} should be lower than #{rdis_idx}"
37
- end
38
- end
39
-
40
- test "redcarpet2 is our default choice" do
41
- template = Tilt::RedcarpetTemplate.new {}
42
- assert_equal Tilt::RedcarpetTemplate::Redcarpet2, template.prepare.class
43
- end
44
-
45
- test "preparing and evaluating templates on #render" do
46
- template = Tilt::RedcarpetTemplate.new { |t| "# Hello World!" }
47
- assert_equal "<h1>Hello World!</h1>\n", template.render
48
- end
49
-
50
- test "can be rendered more than once" do
51
- template = Tilt::RedcarpetTemplate.new { |t| "# Hello World!" }
52
- 3.times { assert_equal "<h1>Hello World!</h1>\n", template.render }
53
- end
54
-
55
- test "smartypants when :smart is set" do
56
- template = Tilt::RedcarpetTemplate.new(:smartypants => true) { |t|
57
- "OKAY -- 'Smarty Pants'" }
58
- assert_match /<p>OKAY &ndash; &#39;Smarty Pants&#39;<\/p>/,
59
- template.render
60
- end
61
-
62
- test "smartypants with a rendererer instance" do
63
- template = Tilt::RedcarpetTemplate.new(:renderer => Redcarpet::Render::HTML.new(:hard_wrap => true), :smartypants => true) { |t|
64
- "OKAY -- 'Smarty Pants'" }
65
- assert_match /<p>OKAY &ndash; &#39;Smarty Pants&#39;<\/p>/,
66
- template.render
67
- end
68
- end
69
- rescue LoadError => boom
70
- warn "Tilt::RedcarpetTemplate (disabled)"
71
- end
@@ -1,36 +0,0 @@
1
- require 'contest'
2
- require 'tilt'
3
-
4
- begin
5
- require 'redcloth'
6
-
7
- class RedClothTemplateTest < Test::Unit::TestCase
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 'contest'
2
- require 'tilt'
3
-
4
- begin
5
- require 'sass'
6
-
7
- class SassTemplateTest < Test::Unit::TestCase
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 < Test::Unit::TestCase
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