tilt 1.3.2 → 1.3.3
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/Gemfile +2 -0
- data/README.md +29 -24
- data/lib/tilt.rb +8 -4
- data/lib/tilt/css.rb +8 -3
- data/lib/tilt/markdown.rb +66 -7
- data/lib/tilt/{creole.rb → wiki.rb} +22 -0
- data/lib/tilt/yajl.rb +94 -0
- data/test/tilt_compilesite_test.rb +1 -1
- data/test/tilt_creoletemplate_test.rb +4 -0
- data/test/tilt_lesstemplate_test.rb +3 -2
- data/test/tilt_markdown_test.rb +13 -0
- data/test/tilt_radiustemplate_test.rb +3 -3
- data/test/tilt_redcarpettemplate_test.rb +14 -10
- data/test/tilt_wikiclothtemplate_test.rb +32 -0
- data/test/tilt_yajltemplate_test.rb +92 -0
- data/tilt.gemspec +13 -4
- metadata +229 -228
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -21,35 +21,40 @@ template engines included in the distribution.
|
|
21
21
|
|
22
22
|
Support for these template engines is included with the package:
|
23
23
|
|
24
|
-
ENGINE FILE EXTENSIONS
|
25
|
-
--------------------------
|
26
|
-
ERB .erb, .rhtml
|
27
|
-
Interpolated String .str
|
28
|
-
Erubis .erb, .rhtml, .erubis
|
29
|
-
Haml .haml
|
30
|
-
Sass .sass
|
31
|
-
Scss .scss
|
32
|
-
Less CSS .less
|
33
|
-
Builder .builder
|
34
|
-
Liquid .liquid
|
35
|
-
RDiscount .markdown, .mkd, .md
|
36
|
-
Redcarpet .markdown, .mkd, .md
|
37
|
-
BlueCloth .markdown, .mkd, .md
|
38
|
-
Kramdown .markdown, .mkd, .md
|
39
|
-
Maruku .markdown, .mkd, .md
|
40
|
-
RedCloth .textile
|
41
|
-
RDoc .rdoc
|
42
|
-
Radius .radius
|
43
|
-
Markaby .mab
|
44
|
-
Nokogiri .nokogiri
|
45
|
-
CoffeeScript .coffee
|
46
|
-
Creole (Wiki markup) .creole
|
24
|
+
ENGINE FILE EXTENSIONS REQUIRED LIBRARIES
|
25
|
+
-------------------------- ----------------------- ----------------------------
|
26
|
+
ERB .erb, .rhtml none (included ruby stdlib)
|
27
|
+
Interpolated String .str none (included ruby core)
|
28
|
+
Erubis .erb, .rhtml, .erubis erubis
|
29
|
+
Haml .haml haml
|
30
|
+
Sass .sass haml (< 3.1) or sass (>= 3.1)
|
31
|
+
Scss .scss haml (< 3.1) or sass (>= 3.1)
|
32
|
+
Less CSS .less less
|
33
|
+
Builder .builder builder
|
34
|
+
Liquid .liquid liquid
|
35
|
+
RDiscount .markdown, .mkd, .md rdiscount
|
36
|
+
Redcarpet .markdown, .mkd, .md redcarpet
|
37
|
+
BlueCloth .markdown, .mkd, .md bluecloth
|
38
|
+
Kramdown .markdown, .mkd, .md kramdown
|
39
|
+
Maruku .markdown, .mkd, .md maruku
|
40
|
+
RedCloth .textile redcloth
|
41
|
+
RDoc .rdoc rdoc
|
42
|
+
Radius .radius radius
|
43
|
+
Markaby .mab markaby
|
44
|
+
Nokogiri .nokogiri nokogiri
|
45
|
+
CoffeeScript .coffee coffee-script (+ javascript)
|
46
|
+
Creole (Wiki markup) .wiki, .creole creole
|
47
|
+
WikiCloth (Wiki markup) .wiki, .mediawiki, .mw wikicloth
|
48
|
+
Yajl .yajl yajl-ruby
|
47
49
|
|
48
50
|
These template engines ship with their own Tilt integration:
|
49
51
|
|
50
52
|
ENGINE FILE EXTENSIONS REQUIRED LIBRARIES
|
51
53
|
-------------------------- ----------------- ----------------------------
|
52
54
|
Slim .slim slim (>= 0.7)
|
55
|
+
Embedded JavaScript sprockets
|
56
|
+
Embedded CoffeeScript sprockets
|
57
|
+
JST sprockets
|
53
58
|
|
54
59
|
See [TEMPLATES.md][t] for detailed information on template engine
|
55
60
|
options and supported features.
|
@@ -194,7 +199,7 @@ it on subsequent template invocations. Benchmarks show this yields a 5x-10x
|
|
194
199
|
performance increase over evaluating the Ruby source on each invocation.
|
195
200
|
|
196
201
|
Template compilation is currently supported for these template engines:
|
197
|
-
StringTemplate, ERB, Erubis, Haml, Nokogiri and
|
202
|
+
StringTemplate, ERB, Erubis, Haml, Nokogiri, Builder and Yajl.
|
198
203
|
|
199
204
|
LICENSE
|
200
205
|
-------
|
data/lib/tilt.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Tilt
|
2
|
-
VERSION = '1.3.
|
2
|
+
VERSION = '1.3.3'
|
3
3
|
|
4
4
|
@preferred_mappings = Hash.new
|
5
5
|
@template_mappings = Hash.new { |h, k| h[k] = [] }
|
@@ -172,8 +172,8 @@ module Tilt
|
|
172
172
|
register MarukuTemplate, 'markdown', 'mkd', 'md'
|
173
173
|
register KramdownTemplate, 'markdown', 'mkd', 'md'
|
174
174
|
register BlueClothTemplate, 'markdown', 'mkd', 'md'
|
175
|
-
register RedcarpetTemplate, 'markdown', 'mkd', 'md'
|
176
175
|
register RDiscountTemplate, 'markdown', 'mkd', 'md'
|
176
|
+
register RedcarpetTemplate, 'markdown', 'mkd', 'md'
|
177
177
|
|
178
178
|
require 'tilt/textile'
|
179
179
|
register RedClothTemplate, 'textile'
|
@@ -181,6 +181,10 @@ module Tilt
|
|
181
181
|
require 'tilt/rdoc'
|
182
182
|
register RDocTemplate, 'rdoc'
|
183
183
|
|
184
|
-
require 'tilt/
|
185
|
-
register CreoleTemplate, 'creole'
|
184
|
+
require 'tilt/wiki'
|
185
|
+
register CreoleTemplate, 'wiki', 'creole'
|
186
|
+
register WikiClothTemplate, 'wiki', 'mediawiki', 'mw'
|
187
|
+
|
188
|
+
require 'tilt/yajl'
|
189
|
+
register YajlTemplate, 'yajl'
|
186
190
|
end
|
data/lib/tilt/css.rb
CHANGED
@@ -48,7 +48,7 @@ module Tilt
|
|
48
48
|
self.default_mime_type = 'text/css'
|
49
49
|
|
50
50
|
def self.engine_initialized?
|
51
|
-
defined? ::Less
|
51
|
+
defined? ::Less
|
52
52
|
end
|
53
53
|
|
54
54
|
def initialize_engine
|
@@ -56,11 +56,16 @@ module Tilt
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def prepare
|
59
|
-
|
59
|
+
if ::Less.const_defined? :Engine
|
60
|
+
@engine = ::Less::Engine.new(data)
|
61
|
+
else
|
62
|
+
parser = ::Less::Parser.new(:filename => eval_file, :line => line)
|
63
|
+
@engine = parser.parse(data)
|
64
|
+
end
|
60
65
|
end
|
61
66
|
|
62
67
|
def evaluate(scope, locals, &block)
|
63
|
-
@engine.to_css
|
68
|
+
@output ||= @engine.to_css
|
64
69
|
end
|
65
70
|
end
|
66
71
|
end
|
data/lib/tilt/markdown.rb
CHANGED
@@ -42,12 +42,10 @@ module Tilt
|
|
42
42
|
# Upskirt Markdown implementation. See:
|
43
43
|
# https://github.com/tanoku/redcarpet
|
44
44
|
#
|
45
|
-
#
|
46
|
-
class RedcarpetTemplate <
|
47
|
-
self.default_mime_type = 'text/html'
|
48
|
-
|
45
|
+
# Supports both Redcarpet 1.x and 2.x
|
46
|
+
class RedcarpetTemplate < Template
|
49
47
|
def self.engine_initialized?
|
50
|
-
defined? ::
|
48
|
+
defined? ::Redcarpet
|
51
49
|
end
|
52
50
|
|
53
51
|
def initialize_engine
|
@@ -55,8 +53,69 @@ module Tilt
|
|
55
53
|
end
|
56
54
|
|
57
55
|
def prepare
|
58
|
-
|
59
|
-
@
|
56
|
+
klass = [Redcarpet1, Redcarpet2].detect { |e| e.engine_initialized? }
|
57
|
+
@engine = klass.new(file, line, options) { data }
|
58
|
+
end
|
59
|
+
|
60
|
+
def evaluate(scope, locals, &block)
|
61
|
+
@engine.evaluate(scope, locals, &block)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Compatibility mode for Redcarpet 1.x
|
65
|
+
class Redcarpet1 < RDiscountTemplate
|
66
|
+
self.default_mime_type = 'text/html'
|
67
|
+
|
68
|
+
def self.engine_initialized?
|
69
|
+
defined? ::RedcarpetCompat
|
70
|
+
end
|
71
|
+
|
72
|
+
def prepare
|
73
|
+
@engine = RedcarpetCompat.new(data, *flags)
|
74
|
+
@output = nil
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# Future proof mode for Redcarpet 2.x (not yet released)
|
79
|
+
class Redcarpet2 < Template
|
80
|
+
self.default_mime_type = 'text/html'
|
81
|
+
|
82
|
+
def self.engine_initialized?
|
83
|
+
defined? ::Redcarpet::Render
|
84
|
+
end
|
85
|
+
|
86
|
+
def generate_renderer
|
87
|
+
renderer = options.delete(:renderer) || Redcarpet::Render::HTML
|
88
|
+
return renderer unless options.delete(:smartypants)
|
89
|
+
return renderer if renderer <= Redcarpet::Render::SmartyPants
|
90
|
+
|
91
|
+
if renderer == Redcarpet::Render::XHTML
|
92
|
+
Redcarpet::Render::SmartyHTML.new(:xhtml => true)
|
93
|
+
elsif renderer == Redcarpet::Render::HTML
|
94
|
+
Redcarpet::Render::SmartyHTML
|
95
|
+
elsif renderer.is_a? Class
|
96
|
+
Class.new(renderer) { include Redcarpet::Render::SmartyPants }
|
97
|
+
else
|
98
|
+
renderer.extend Redcarpet::Render::SmartyPants
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def prepare
|
103
|
+
# try to support the same aliases
|
104
|
+
RDiscountTemplate::ALIAS.each do |opt, aka|
|
105
|
+
next if options.key? opt or not options.key? aka
|
106
|
+
options[opt] = options.delete(aka)
|
107
|
+
end
|
108
|
+
|
109
|
+
# only raise an exception if someone is trying to enable :escape_html
|
110
|
+
options.delete(:escape_html) unless options[:escape_html]
|
111
|
+
|
112
|
+
@engine = Redcarpet::Markdown.new(generate_renderer, options)
|
113
|
+
@output = nil
|
114
|
+
end
|
115
|
+
|
116
|
+
def evaluate(scope, locals, &block)
|
117
|
+
@output ||= @engine.render(data)
|
118
|
+
end
|
60
119
|
end
|
61
120
|
end
|
62
121
|
|
@@ -25,4 +25,26 @@ module Tilt
|
|
25
25
|
@output ||= @engine.to_html
|
26
26
|
end
|
27
27
|
end
|
28
|
+
|
29
|
+
# WikiCloth implementation. See:
|
30
|
+
# http://redcloth.org/
|
31
|
+
class WikiClothTemplate < Template
|
32
|
+
def self.engine_initialized?
|
33
|
+
defined? ::WikiCloth::Parser
|
34
|
+
end
|
35
|
+
|
36
|
+
def initialize_engine
|
37
|
+
require_template_library 'wikicloth'
|
38
|
+
end
|
39
|
+
|
40
|
+
def prepare
|
41
|
+
@parser = options.delete(:parser) || WikiCloth::Parser
|
42
|
+
@engine = @parser.new options.merge(:data => data)
|
43
|
+
@output = nil
|
44
|
+
end
|
45
|
+
|
46
|
+
def evaluate(scope, locals, &block)
|
47
|
+
@output ||= @engine.to_html
|
48
|
+
end
|
49
|
+
end
|
28
50
|
end
|
data/lib/tilt/yajl.rb
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'tilt/template'
|
2
|
+
|
3
|
+
module Tilt
|
4
|
+
|
5
|
+
# Yajl Template implementation
|
6
|
+
#
|
7
|
+
# Yajl is a fast JSON parsing and encoding library for Ruby
|
8
|
+
# See https://github.com/brianmario/yajl-ruby
|
9
|
+
#
|
10
|
+
# The template source is evaluated as a Ruby string,
|
11
|
+
# and the result is converted #to_json.
|
12
|
+
#
|
13
|
+
# == Example
|
14
|
+
#
|
15
|
+
# # This is a template example.
|
16
|
+
# # The template can contain any Ruby statement.
|
17
|
+
# tpl <<-EOS
|
18
|
+
# @counter = 0
|
19
|
+
#
|
20
|
+
# # The json variable represents the buffer
|
21
|
+
# # and holds the data to be serialized into json.
|
22
|
+
# # It defaults to an empty hash, but you can override it at any time.
|
23
|
+
# json = {
|
24
|
+
# :"user#{@counter += 1}" => { :name => "Joshua Peek", :id => @counter },
|
25
|
+
# :"user#{@counter += 1}" => { :name => "Ryan Tomayko", :id => @counter },
|
26
|
+
# :"user#{@counter += 1}" => { :name => "Simone Carletti", :id => @counter },
|
27
|
+
# }
|
28
|
+
#
|
29
|
+
# # Since the json variable is a Hash,
|
30
|
+
# # you can use conditional statements or any other Ruby statement
|
31
|
+
# # to populate it.
|
32
|
+
# json[:"user#{@counter += 1}"] = { :name => "Unknown" } if 1 == 2
|
33
|
+
#
|
34
|
+
# # The last line doesn't affect the returned value.
|
35
|
+
# nil
|
36
|
+
# EOS
|
37
|
+
#
|
38
|
+
# template = Tilt::YajlTemplate.new { tpl }
|
39
|
+
# template.render(self)
|
40
|
+
#
|
41
|
+
class YajlTemplate < Template
|
42
|
+
|
43
|
+
self.default_mime_type = 'application/json'
|
44
|
+
|
45
|
+
def self.engine_initialized?
|
46
|
+
defined? ::Yajl
|
47
|
+
end
|
48
|
+
|
49
|
+
def initialize_engine
|
50
|
+
require_template_library 'yajl'
|
51
|
+
end
|
52
|
+
|
53
|
+
def prepare
|
54
|
+
end
|
55
|
+
|
56
|
+
def evaluate(scope, locals, &block)
|
57
|
+
decorate super(scope, locals, &block)
|
58
|
+
end
|
59
|
+
|
60
|
+
def precompiled_preamble(locals)
|
61
|
+
return super if locals.include? :json
|
62
|
+
"json = {}\n#{super}"
|
63
|
+
end
|
64
|
+
|
65
|
+
def precompiled_postamble(locals)
|
66
|
+
"Yajl::Encoder.new.encode(json)"
|
67
|
+
end
|
68
|
+
|
69
|
+
def precompiled_template(locals)
|
70
|
+
data.to_str
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
# Decorates the +json+ input according to given +options+.
|
75
|
+
#
|
76
|
+
# json - The json String to decorate.
|
77
|
+
# options - The option Hash to customize the behavior.
|
78
|
+
#
|
79
|
+
# Returns the decorated String.
|
80
|
+
def decorate(json)
|
81
|
+
callback, variable = options[:callback], options[:variable]
|
82
|
+
if callback && variable
|
83
|
+
"var #{variable} = #{json}; #{callback}(#{variable});"
|
84
|
+
elsif variable
|
85
|
+
"var #{variable} = #{json};"
|
86
|
+
elsif callback
|
87
|
+
"#{callback}(#{json});"
|
88
|
+
else
|
89
|
+
json
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
@@ -39,7 +39,7 @@ class CompileSiteTest < Test::Unit::TestCase
|
|
39
39
|
locals = { "local#{i}" => 'value' }
|
40
40
|
res = template.render(self, locals)
|
41
41
|
thread_id = Thread.current.object_id
|
42
|
-
res = template.render(self, "local#{thread_id.to_s}" => 'value')
|
42
|
+
res = template.render(self, "local#{thread_id.abs.to_s}" => 'value')
|
43
43
|
rescue => boom
|
44
44
|
main_thread.raise(boom)
|
45
45
|
end
|
@@ -9,6 +9,10 @@ begin
|
|
9
9
|
assert_equal Tilt::CreoleTemplate, Tilt['test.creole']
|
10
10
|
end
|
11
11
|
|
12
|
+
test "registered for '.wiki' files" do
|
13
|
+
assert Tilt.mappings['wiki'].include?(Tilt::CreoleTemplate)
|
14
|
+
end
|
15
|
+
|
12
16
|
test "compiles and evaluates the template on #render" do
|
13
17
|
template = Tilt::CreoleTemplate.new { |t| "= Hello World!" }
|
14
18
|
assert_equal "<h1>Hello World!</h1>", template.render
|
@@ -2,6 +2,7 @@ require 'contest'
|
|
2
2
|
require 'tilt'
|
3
3
|
|
4
4
|
begin
|
5
|
+
require 'pathname'
|
5
6
|
require 'less'
|
6
7
|
|
7
8
|
class LessTemplateTest < Test::Unit::TestCase
|
@@ -11,12 +12,12 @@ begin
|
|
11
12
|
|
12
13
|
test "compiles and evaluates the template on #render" do
|
13
14
|
template = Tilt::LessTemplate.new { |t| ".bg { background-color: #0000ff; } \n#main\n { .bg; }\n" }
|
14
|
-
assert_equal ".bg
|
15
|
+
assert_equal ".bg {\n background-color: #0000ff;\n}\n#main {\n background-color: #0000ff;\n}\n", template.render
|
15
16
|
end
|
16
17
|
|
17
18
|
test "can be rendered more than once" do
|
18
19
|
template = Tilt::LessTemplate.new { |t| ".bg { background-color: #0000ff; } \n#main\n { .bg; }\n" }
|
19
|
-
3.times { assert_equal ".bg
|
20
|
+
3.times { assert_equal ".bg {\n background-color: #0000ff;\n}\n#main {\n background-color: #0000ff;\n}\n", template.render }
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
data/test/tilt_markdown_test.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# coding: UTF-8
|
2
2
|
require 'tilt'
|
3
|
+
|
4
|
+
begin
|
3
5
|
require 'nokogiri'
|
4
6
|
|
5
7
|
module MarkdownTests
|
@@ -91,6 +93,13 @@ begin
|
|
91
93
|
class MarkdownRedcarpetTest < Test::Unit::TestCase
|
92
94
|
include MarkdownTests
|
93
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
|
94
103
|
end
|
95
104
|
rescue LoadError => boom
|
96
105
|
# It should already be warned in the main tests
|
@@ -145,4 +154,8 @@ rescue LoadError => boom
|
|
145
154
|
# It should already be warned in the main tests
|
146
155
|
end
|
147
156
|
|
157
|
+
rescue LoadError
|
158
|
+
warn "Markdown tests need Nokogiri\n"
|
159
|
+
end
|
160
|
+
|
148
161
|
|
@@ -2,11 +2,11 @@ require 'contest'
|
|
2
2
|
require 'tilt'
|
3
3
|
|
4
4
|
begin
|
5
|
+
require 'radius'
|
6
|
+
|
5
7
|
# Disable radius tests under Ruby versions >= 1.9.1 since it's still buggy.
|
6
8
|
# Remove when fixed upstream.
|
7
|
-
raise LoadError if RUBY_VERSION >= "1.9.1"
|
8
|
-
|
9
|
-
require 'radius'
|
9
|
+
raise LoadError if RUBY_VERSION >= "1.9.1" and Radius.version < "0.7"
|
10
10
|
|
11
11
|
class RadiusTemplateTest < Test::Unit::TestCase
|
12
12
|
test "registered for '.radius' files" do
|
@@ -21,9 +21,19 @@ begin
|
|
21
21
|
%w[md mkd markdown].each do |ext|
|
22
22
|
mappings = Tilt.mappings[ext]
|
23
23
|
blue_idx = mappings.index(Tilt::BlueClothTemplate)
|
24
|
-
|
25
|
-
assert
|
26
|
-
"#{
|
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}"
|
27
37
|
end
|
28
38
|
end
|
29
39
|
|
@@ -40,15 +50,9 @@ begin
|
|
40
50
|
test "smartypants when :smart is set" do
|
41
51
|
template = Tilt::RedcarpetTemplate.new(:smart => true) { |t|
|
42
52
|
"OKAY -- 'Smarty Pants'" }
|
43
|
-
|
53
|
+
assert_match /<p>OKAY &[nm]dash; ‘Smarty Pants’<\/p>/,
|
44
54
|
template.render
|
45
55
|
end
|
46
|
-
|
47
|
-
test "stripping HTML when :filter_html is set" do
|
48
|
-
template = Tilt::RedcarpetTemplate.new(:filter_html => true) { |t|
|
49
|
-
"HELLO <blink>WORLD</blink>" }
|
50
|
-
assert_equal "<p>HELLO WORLD</p>\n", template.render
|
51
|
-
end
|
52
56
|
end
|
53
57
|
rescue LoadError => boom
|
54
58
|
warn "Tilt::RedcarpetTemplate (disabled)\n"
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'contest'
|
2
|
+
require 'tilt'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'wikicloth'
|
6
|
+
|
7
|
+
class WikiClothTemplateTest < Test::Unit::TestCase
|
8
|
+
test "is registered for '.mediawiki' files" do
|
9
|
+
assert_equal Tilt::WikiClothTemplate, Tilt['test.mediawiki']
|
10
|
+
end
|
11
|
+
|
12
|
+
test "is registered for '.mw' files" do
|
13
|
+
assert_equal Tilt::WikiClothTemplate, Tilt['test.mw']
|
14
|
+
end
|
15
|
+
|
16
|
+
test "is registered for '.wiki' files" do
|
17
|
+
assert_equal Tilt::WikiClothTemplate, Tilt['test.wiki']
|
18
|
+
end
|
19
|
+
|
20
|
+
test "compiles and evaluates the template on #render" do
|
21
|
+
template = Tilt::WikiClothTemplate.new { |t| "= Hello World! =" }
|
22
|
+
assert_match /<h1>.*Hello World!.*<\/h1>/, template.render
|
23
|
+
end
|
24
|
+
|
25
|
+
test "can be rendered more than once" do
|
26
|
+
template = Tilt::WikiClothTemplate.new { |t| "= Hello World! =" }
|
27
|
+
3.times { assert_match /<h1>.*Hello World!.*<\/h1>/, template.render }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
rescue LoadError => boom
|
31
|
+
warn "Tilt::WikiClothTemplate (disabled)\n"
|
32
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'contest'
|
2
|
+
require 'tilt'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'yajl'
|
6
|
+
|
7
|
+
class YajlTemplateTest < Test::Unit::TestCase
|
8
|
+
test "is registered for '.yajl' files" do
|
9
|
+
assert_equal Tilt::YajlTemplate, Tilt['test.yajl']
|
10
|
+
end
|
11
|
+
|
12
|
+
test "compiles and evaluates the template on #render" do
|
13
|
+
template = Tilt::YajlTemplate.new { "json = { :integer => 3, :string => 'hello' }" }
|
14
|
+
assert_equal '{"integer":3,"string":"hello"}', template.render
|
15
|
+
end
|
16
|
+
|
17
|
+
test "can be rendered more than once" do
|
18
|
+
template = Tilt::YajlTemplate.new { "json = { :integer => 3, :string => 'hello' }" }
|
19
|
+
3.times { assert_equal '{"integer":3,"string":"hello"}', template.render }
|
20
|
+
end
|
21
|
+
|
22
|
+
test "evaluating ruby code" do
|
23
|
+
template = Tilt::YajlTemplate.new { "json = { :integer => (3 * 2) }" }
|
24
|
+
assert_equal '{"integer":6}', template.render
|
25
|
+
end
|
26
|
+
|
27
|
+
test "evaluating in an object scope" do
|
28
|
+
template = Tilt::YajlTemplate.new { "json = { :string => 'Hey ' + @name + '!' }" }
|
29
|
+
scope = Object.new
|
30
|
+
scope.instance_variable_set :@name, 'Joe'
|
31
|
+
assert_equal '{"string":"Hey Joe!"}', template.render(scope)
|
32
|
+
end
|
33
|
+
|
34
|
+
test "passing locals" do
|
35
|
+
template = Tilt::YajlTemplate.new { "json = { :string => 'Hey ' + name + '!' }" }
|
36
|
+
assert_equal '{"string":"Hey Joe!"}', template.render(Object.new, :name => 'Joe')
|
37
|
+
end
|
38
|
+
|
39
|
+
test "passing a block for yield" do
|
40
|
+
template = Tilt::YajlTemplate.new { "json = { :string => 'Hey ' + yield + '!' }" }
|
41
|
+
assert_equal '{"string":"Hey Joe!"}', template.render { 'Joe' }
|
42
|
+
assert_equal '{"string":"Hey Moe!"}', template.render { 'Moe' }
|
43
|
+
end
|
44
|
+
|
45
|
+
test "template multiline" do
|
46
|
+
template = Tilt::YajlTemplate.new { %Q{
|
47
|
+
json = {
|
48
|
+
:string => "hello"
|
49
|
+
}
|
50
|
+
} }
|
51
|
+
assert_equal '{"string":"hello"}', template.render
|
52
|
+
end
|
53
|
+
|
54
|
+
test "template can reuse existing json buffer" do
|
55
|
+
template = Tilt::YajlTemplate.new { "json.merge! :string => 'hello'" }
|
56
|
+
assert_equal '{"string":"hello"}', template.render
|
57
|
+
end
|
58
|
+
|
59
|
+
test "template can end with any statement" do
|
60
|
+
template = Tilt::YajlTemplate.new { %Q{
|
61
|
+
json = {
|
62
|
+
:string => "hello"
|
63
|
+
}
|
64
|
+
four = 2 * 2
|
65
|
+
json[:integer] = four
|
66
|
+
nil
|
67
|
+
} }
|
68
|
+
assert_equal '{"string":"hello","integer":4}', template.render
|
69
|
+
end
|
70
|
+
|
71
|
+
test "option callback" do
|
72
|
+
options = { :callback => 'foo' }
|
73
|
+
template = Tilt::YajlTemplate.new(nil, options) { "json = { :string => 'hello' }" }
|
74
|
+
assert_equal 'foo({"string":"hello"});', template.render
|
75
|
+
end
|
76
|
+
|
77
|
+
test "option variable" do
|
78
|
+
options = { :variable => 'output' }
|
79
|
+
template = Tilt::YajlTemplate.new(nil, options) { "json = { :string => 'hello' }" }
|
80
|
+
assert_equal 'var output = {"string":"hello"};', template.render
|
81
|
+
end
|
82
|
+
|
83
|
+
test "option callback and variable" do
|
84
|
+
options = { :callback => 'foo', :variable => 'output' }
|
85
|
+
template = Tilt::YajlTemplate.new(nil, options) { "json = { :string => 'hello' }" }
|
86
|
+
assert_equal 'var output = {"string":"hello"}; foo(output);', template.render
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
rescue LoadError
|
91
|
+
warn "Tilt::YajlTemplateTest (disabled)\n"
|
92
|
+
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 = '1.3.
|
7
|
-
s.date = '2011-
|
6
|
+
s.version = '1.3.3'
|
7
|
+
s.date = '2011-08-25'
|
8
8
|
|
9
9
|
s.description = "Generic interface to multiple Ruby template engines"
|
10
10
|
s.summary = s.description
|
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
# = MANIFEST =
|
16
16
|
s.files = %w[
|
17
17
|
COPYING
|
18
|
+
Gemfile
|
18
19
|
README.md
|
19
20
|
Rakefile
|
20
21
|
TEMPLATES.md
|
@@ -22,7 +23,6 @@ Gem::Specification.new do |s|
|
|
22
23
|
lib/tilt.rb
|
23
24
|
lib/tilt/builder.rb
|
24
25
|
lib/tilt/coffee.rb
|
25
|
-
lib/tilt/creole.rb
|
26
26
|
lib/tilt/css.rb
|
27
27
|
lib/tilt/erb.rb
|
28
28
|
lib/tilt/haml.rb
|
@@ -35,6 +35,8 @@ Gem::Specification.new do |s|
|
|
35
35
|
lib/tilt/string.rb
|
36
36
|
lib/tilt/template.rb
|
37
37
|
lib/tilt/textile.rb
|
38
|
+
lib/tilt/wiki.rb
|
39
|
+
lib/tilt/yajl.rb
|
38
40
|
test/contest.rb
|
39
41
|
test/markaby/locals.mab
|
40
42
|
test/markaby/markaby.mab
|
@@ -68,6 +70,8 @@ Gem::Specification.new do |s|
|
|
68
70
|
test/tilt_stringtemplate_test.rb
|
69
71
|
test/tilt_template_test.rb
|
70
72
|
test/tilt_test.rb
|
73
|
+
test/tilt_wikiclothtemplate_test.rb
|
74
|
+
test/tilt_yajltemplate_test.rb
|
71
75
|
tilt.gemspec
|
72
76
|
]
|
73
77
|
# = MANIFEST =
|
@@ -78,6 +82,7 @@ Gem::Specification.new do |s|
|
|
78
82
|
s.add_development_dependency 'builder'
|
79
83
|
s.add_development_dependency 'erubis'
|
80
84
|
s.add_development_dependency 'haml', '>= 2.2.11'
|
85
|
+
s.add_development_dependency 'sass'
|
81
86
|
s.add_development_dependency 'rdiscount'
|
82
87
|
s.add_development_dependency 'liquid'
|
83
88
|
s.add_development_dependency 'less'
|
@@ -91,10 +96,14 @@ Gem::Specification.new do |s|
|
|
91
96
|
s.add_development_dependency 'creole'
|
92
97
|
s.add_development_dependency 'kramdown'
|
93
98
|
s.add_development_dependency 'redcarpet'
|
99
|
+
s.add_development_dependency 'creole'
|
100
|
+
s.add_development_dependency 'yajl-ruby'
|
101
|
+
s.add_development_dependency 'wikicloth'
|
102
|
+
s.add_development_dependency 'redcarpet'
|
103
|
+
s.add_development_dependency 'kramdown'
|
94
104
|
|
95
105
|
s.homepage = "http://github.com/rtomayko/tilt/"
|
96
106
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Tilt", "--main", "Tilt"]
|
97
107
|
s.require_paths = %w[lib]
|
98
|
-
s.rubyforge_project = 'wink'
|
99
108
|
s.rubygems_version = '1.1.1'
|
100
109
|
end
|
metadata
CHANGED
@@ -1,273 +1,278 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: tilt
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 3
|
9
|
-
- 2
|
10
|
-
version: 1.3.2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.3.3
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Ryan Tomayko
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-08-25 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: contest
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70292614853000 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
33
22
|
type: :development
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: builder
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: *70292614853000
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: builder
|
27
|
+
requirement: &70292614852540 !ruby/object:Gem::Requirement
|
39
28
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 0
|
46
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
47
33
|
type: :development
|
48
|
-
version_requirements: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: erubis
|
51
34
|
prerelease: false
|
52
|
-
|
35
|
+
version_requirements: *70292614852540
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: erubis
|
38
|
+
requirement: &70292614852120 !ruby/object:Gem::Requirement
|
53
39
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
segments:
|
59
|
-
- 0
|
60
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
61
44
|
type: :development
|
62
|
-
version_requirements: *id003
|
63
|
-
- !ruby/object:Gem::Dependency
|
64
|
-
name: haml
|
65
45
|
prerelease: false
|
66
|
-
|
46
|
+
version_requirements: *70292614852120
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: haml
|
49
|
+
requirement: &70292614868000 !ruby/object:Gem::Requirement
|
67
50
|
none: false
|
68
|
-
requirements:
|
69
|
-
- -
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
hash: 17
|
72
|
-
segments:
|
73
|
-
- 2
|
74
|
-
- 2
|
75
|
-
- 11
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
76
54
|
version: 2.2.11
|
77
55
|
type: :development
|
78
|
-
version_requirements: *id004
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: rdiscount
|
81
56
|
prerelease: false
|
82
|
-
|
57
|
+
version_requirements: *70292614868000
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: sass
|
60
|
+
requirement: &70292614867580 !ruby/object:Gem::Requirement
|
83
61
|
none: false
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
88
|
-
segments:
|
89
|
-
- 0
|
90
|
-
version: "0"
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
91
66
|
type: :development
|
92
|
-
version_requirements: *id005
|
93
|
-
- !ruby/object:Gem::Dependency
|
94
|
-
name: liquid
|
95
67
|
prerelease: false
|
96
|
-
|
68
|
+
version_requirements: *70292614867580
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rdiscount
|
71
|
+
requirement: &70292614867120 !ruby/object:Gem::Requirement
|
97
72
|
none: false
|
98
|
-
requirements:
|
99
|
-
- -
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
|
102
|
-
segments:
|
103
|
-
- 0
|
104
|
-
version: "0"
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
105
77
|
type: :development
|
106
|
-
version_requirements: *id006
|
107
|
-
- !ruby/object:Gem::Dependency
|
108
|
-
name: less
|
109
78
|
prerelease: false
|
110
|
-
|
79
|
+
version_requirements: *70292614867120
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: liquid
|
82
|
+
requirement: &70292614866700 !ruby/object:Gem::Requirement
|
111
83
|
none: false
|
112
|
-
requirements:
|
113
|
-
- -
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
|
116
|
-
segments:
|
117
|
-
- 0
|
118
|
-
version: "0"
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
119
88
|
type: :development
|
120
|
-
version_requirements: *id007
|
121
|
-
- !ruby/object:Gem::Dependency
|
122
|
-
name: radius
|
123
89
|
prerelease: false
|
124
|
-
|
90
|
+
version_requirements: *70292614866700
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: less
|
93
|
+
requirement: &70292614866280 !ruby/object:Gem::Requirement
|
125
94
|
none: false
|
126
|
-
requirements:
|
127
|
-
- -
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
|
130
|
-
segments:
|
131
|
-
- 0
|
132
|
-
version: "0"
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
133
99
|
type: :development
|
134
|
-
version_requirements: *id008
|
135
|
-
- !ruby/object:Gem::Dependency
|
136
|
-
name: nokogiri
|
137
100
|
prerelease: false
|
138
|
-
|
101
|
+
version_requirements: *70292614866280
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: radius
|
104
|
+
requirement: &70292614865860 !ruby/object:Gem::Requirement
|
139
105
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
|
144
|
-
segments:
|
145
|
-
- 0
|
146
|
-
version: "0"
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
147
110
|
type: :development
|
148
|
-
version_requirements: *id009
|
149
|
-
- !ruby/object:Gem::Dependency
|
150
|
-
name: markaby
|
151
111
|
prerelease: false
|
152
|
-
|
112
|
+
version_requirements: *70292614865860
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: nokogiri
|
115
|
+
requirement: &70292614865440 !ruby/object:Gem::Requirement
|
153
116
|
none: false
|
154
|
-
requirements:
|
155
|
-
- -
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
|
158
|
-
segments:
|
159
|
-
- 0
|
160
|
-
version: "0"
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
161
121
|
type: :development
|
162
|
-
version_requirements: *id010
|
163
|
-
- !ruby/object:Gem::Dependency
|
164
|
-
name: coffee-script
|
165
122
|
prerelease: false
|
166
|
-
|
123
|
+
version_requirements: *70292614865440
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: markaby
|
126
|
+
requirement: &70292614865020 !ruby/object:Gem::Requirement
|
167
127
|
none: false
|
168
|
-
requirements:
|
169
|
-
- -
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
|
172
|
-
segments:
|
173
|
-
- 0
|
174
|
-
version: "0"
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
175
132
|
type: :development
|
176
|
-
version_requirements: *id011
|
177
|
-
- !ruby/object:Gem::Dependency
|
178
|
-
name: bluecloth
|
179
133
|
prerelease: false
|
180
|
-
|
134
|
+
version_requirements: *70292614865020
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: coffee-script
|
137
|
+
requirement: &70292614864600 !ruby/object:Gem::Requirement
|
181
138
|
none: false
|
182
|
-
requirements:
|
183
|
-
- -
|
184
|
-
- !ruby/object:Gem::Version
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
type: :development
|
144
|
+
prerelease: false
|
145
|
+
version_requirements: *70292614864600
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: bluecloth
|
148
|
+
requirement: &70292614864180 !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
189
154
|
type: :development
|
190
|
-
version_requirements: *id012
|
191
|
-
- !ruby/object:Gem::Dependency
|
192
|
-
name: RedCloth
|
193
155
|
prerelease: false
|
194
|
-
|
156
|
+
version_requirements: *70292614864180
|
157
|
+
- !ruby/object:Gem::Dependency
|
158
|
+
name: RedCloth
|
159
|
+
requirement: &70292614863760 !ruby/object:Gem::Requirement
|
195
160
|
none: false
|
196
|
-
requirements:
|
197
|
-
- -
|
198
|
-
- !ruby/object:Gem::Version
|
199
|
-
|
200
|
-
segments:
|
201
|
-
- 0
|
202
|
-
version: "0"
|
161
|
+
requirements:
|
162
|
+
- - ! '>='
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
203
165
|
type: :development
|
204
|
-
|
205
|
-
|
166
|
+
prerelease: false
|
167
|
+
version_requirements: *70292614863760
|
168
|
+
- !ruby/object:Gem::Dependency
|
206
169
|
name: maruku
|
170
|
+
requirement: &70292614863340 !ruby/object:Gem::Requirement
|
171
|
+
none: false
|
172
|
+
requirements:
|
173
|
+
- - ! '>='
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
type: :development
|
207
177
|
prerelease: false
|
208
|
-
|
178
|
+
version_requirements: *70292614863340
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: creole
|
181
|
+
requirement: &70292614862920 !ruby/object:Gem::Requirement
|
182
|
+
none: false
|
183
|
+
requirements:
|
184
|
+
- - ! '>='
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
187
|
+
type: :development
|
188
|
+
prerelease: false
|
189
|
+
version_requirements: *70292614862920
|
190
|
+
- !ruby/object:Gem::Dependency
|
191
|
+
name: kramdown
|
192
|
+
requirement: &70292614862500 !ruby/object:Gem::Requirement
|
209
193
|
none: false
|
210
|
-
requirements:
|
211
|
-
- -
|
212
|
-
- !ruby/object:Gem::Version
|
213
|
-
|
214
|
-
segments:
|
215
|
-
- 0
|
216
|
-
version: "0"
|
194
|
+
requirements:
|
195
|
+
- - ! '>='
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
217
198
|
type: :development
|
218
|
-
|
219
|
-
|
199
|
+
prerelease: false
|
200
|
+
version_requirements: *70292614862500
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
name: redcarpet
|
203
|
+
requirement: &70292614862080 !ruby/object:Gem::Requirement
|
204
|
+
none: false
|
205
|
+
requirements:
|
206
|
+
- - ! '>='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
type: :development
|
210
|
+
prerelease: false
|
211
|
+
version_requirements: *70292614862080
|
212
|
+
- !ruby/object:Gem::Dependency
|
220
213
|
name: creole
|
214
|
+
requirement: &70292614861660 !ruby/object:Gem::Requirement
|
215
|
+
none: false
|
216
|
+
requirements:
|
217
|
+
- - ! '>='
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: '0'
|
220
|
+
type: :development
|
221
221
|
prerelease: false
|
222
|
-
|
222
|
+
version_requirements: *70292614861660
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: yajl-ruby
|
225
|
+
requirement: &70292614861240 !ruby/object:Gem::Requirement
|
223
226
|
none: false
|
224
|
-
requirements:
|
225
|
-
- -
|
226
|
-
- !ruby/object:Gem::Version
|
227
|
-
|
228
|
-
segments:
|
229
|
-
- 0
|
230
|
-
version: "0"
|
227
|
+
requirements:
|
228
|
+
- - ! '>='
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0'
|
231
231
|
type: :development
|
232
|
-
version_requirements: *id015
|
233
|
-
- !ruby/object:Gem::Dependency
|
234
|
-
name: kramdown
|
235
232
|
prerelease: false
|
236
|
-
|
233
|
+
version_requirements: *70292614861240
|
234
|
+
- !ruby/object:Gem::Dependency
|
235
|
+
name: wikicloth
|
236
|
+
requirement: &70292614860820 !ruby/object:Gem::Requirement
|
237
237
|
none: false
|
238
|
-
requirements:
|
239
|
-
- -
|
240
|
-
- !ruby/object:Gem::Version
|
241
|
-
|
242
|
-
segments:
|
243
|
-
- 0
|
244
|
-
version: "0"
|
238
|
+
requirements:
|
239
|
+
- - ! '>='
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '0'
|
245
242
|
type: :development
|
246
|
-
|
247
|
-
|
243
|
+
prerelease: false
|
244
|
+
version_requirements: *70292614860820
|
245
|
+
- !ruby/object:Gem::Dependency
|
248
246
|
name: redcarpet
|
247
|
+
requirement: &70292614860400 !ruby/object:Gem::Requirement
|
248
|
+
none: false
|
249
|
+
requirements:
|
250
|
+
- - ! '>='
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: '0'
|
253
|
+
type: :development
|
249
254
|
prerelease: false
|
250
|
-
|
255
|
+
version_requirements: *70292614860400
|
256
|
+
- !ruby/object:Gem::Dependency
|
257
|
+
name: kramdown
|
258
|
+
requirement: &70292614876340 !ruby/object:Gem::Requirement
|
251
259
|
none: false
|
252
|
-
requirements:
|
253
|
-
- -
|
254
|
-
- !ruby/object:Gem::Version
|
255
|
-
|
256
|
-
segments:
|
257
|
-
- 0
|
258
|
-
version: "0"
|
260
|
+
requirements:
|
261
|
+
- - ! '>='
|
262
|
+
- !ruby/object:Gem::Version
|
263
|
+
version: '0'
|
259
264
|
type: :development
|
260
|
-
|
265
|
+
prerelease: false
|
266
|
+
version_requirements: *70292614876340
|
261
267
|
description: Generic interface to multiple Ruby template engines
|
262
268
|
email: r@tomayko.com
|
263
|
-
executables:
|
269
|
+
executables:
|
264
270
|
- tilt
|
265
271
|
extensions: []
|
266
|
-
|
267
272
|
extra_rdoc_files: []
|
268
|
-
|
269
|
-
files:
|
273
|
+
files:
|
270
274
|
- COPYING
|
275
|
+
- Gemfile
|
271
276
|
- README.md
|
272
277
|
- Rakefile
|
273
278
|
- TEMPLATES.md
|
@@ -275,7 +280,6 @@ files:
|
|
275
280
|
- lib/tilt.rb
|
276
281
|
- lib/tilt/builder.rb
|
277
282
|
- lib/tilt/coffee.rb
|
278
|
-
- lib/tilt/creole.rb
|
279
283
|
- lib/tilt/css.rb
|
280
284
|
- lib/tilt/erb.rb
|
281
285
|
- lib/tilt/haml.rb
|
@@ -288,6 +292,8 @@ files:
|
|
288
292
|
- lib/tilt/string.rb
|
289
293
|
- lib/tilt/template.rb
|
290
294
|
- lib/tilt/textile.rb
|
295
|
+
- lib/tilt/wiki.rb
|
296
|
+
- lib/tilt/yajl.rb
|
291
297
|
- test/contest.rb
|
292
298
|
- test/markaby/locals.mab
|
293
299
|
- test/markaby/markaby.mab
|
@@ -321,47 +327,40 @@ files:
|
|
321
327
|
- test/tilt_stringtemplate_test.rb
|
322
328
|
- test/tilt_template_test.rb
|
323
329
|
- test/tilt_test.rb
|
330
|
+
- test/tilt_wikiclothtemplate_test.rb
|
331
|
+
- test/tilt_yajltemplate_test.rb
|
324
332
|
- tilt.gemspec
|
325
|
-
has_rdoc: true
|
326
333
|
homepage: http://github.com/rtomayko/tilt/
|
327
334
|
licenses: []
|
328
|
-
|
329
335
|
post_install_message:
|
330
|
-
rdoc_options:
|
336
|
+
rdoc_options:
|
331
337
|
- --line-numbers
|
332
338
|
- --inline-source
|
333
339
|
- --title
|
334
340
|
- Tilt
|
335
341
|
- --main
|
336
342
|
- Tilt
|
337
|
-
require_paths:
|
343
|
+
require_paths:
|
338
344
|
- lib
|
339
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
345
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
340
346
|
none: false
|
341
|
-
requirements:
|
342
|
-
- -
|
343
|
-
- !ruby/object:Gem::Version
|
344
|
-
|
345
|
-
|
346
|
-
- 0
|
347
|
-
version: "0"
|
348
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
347
|
+
requirements:
|
348
|
+
- - ! '>='
|
349
|
+
- !ruby/object:Gem::Version
|
350
|
+
version: '0'
|
351
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
349
352
|
none: false
|
350
|
-
requirements:
|
351
|
-
- -
|
352
|
-
- !ruby/object:Gem::Version
|
353
|
-
|
354
|
-
segments:
|
355
|
-
- 0
|
356
|
-
version: "0"
|
353
|
+
requirements:
|
354
|
+
- - ! '>='
|
355
|
+
- !ruby/object:Gem::Version
|
356
|
+
version: '0'
|
357
357
|
requirements: []
|
358
|
-
|
359
|
-
|
360
|
-
rubygems_version: 1.3.7
|
358
|
+
rubyforge_project:
|
359
|
+
rubygems_version: 1.8.6
|
361
360
|
signing_key:
|
362
361
|
specification_version: 2
|
363
362
|
summary: Generic interface to multiple Ruby template engines
|
364
|
-
test_files:
|
363
|
+
test_files:
|
365
364
|
- test/tilt_blueclothtemplate_test.rb
|
366
365
|
- test/tilt_buildertemplate_test.rb
|
367
366
|
- test/tilt_cache_test.rb
|
@@ -388,3 +387,5 @@ test_files:
|
|
388
387
|
- test/tilt_stringtemplate_test.rb
|
389
388
|
- test/tilt_template_test.rb
|
390
389
|
- test/tilt_test.rb
|
390
|
+
- test/tilt_wikiclothtemplate_test.rb
|
391
|
+
- test/tilt_yajltemplate_test.rb
|