tilt 1.3.3 → 1.3.4
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +1 -1
- data/Gemfile +31 -1
- data/HACKING +16 -0
- data/README.md +5 -2
- data/Rakefile +25 -1
- data/TEMPLATES.md +13 -13
- data/bin/tilt +8 -6
- data/lib/tilt.rb +15 -1
- data/lib/tilt/asciidoc.rb +34 -0
- data/lib/tilt/coffee.rb +4 -0
- data/lib/tilt/css.rb +10 -2
- data/lib/tilt/csv.rb +71 -0
- data/lib/tilt/erb.rb +1 -1
- data/lib/tilt/etanni.rb +27 -0
- data/lib/tilt/liquid.rb +4 -0
- data/lib/tilt/markdown.rb +35 -11
- data/lib/tilt/nokogiri.rb +4 -4
- data/lib/tilt/plain.rb +20 -0
- data/lib/tilt/radius.rb +4 -0
- data/lib/tilt/rdoc.rb +20 -5
- data/lib/tilt/template.rb +35 -74
- data/lib/tilt/textile.rb +5 -0
- data/lib/tilt/wiki.rb +8 -0
- data/test/tilt_asciidoctor_test.rb +44 -0
- data/test/tilt_blueclothtemplate_test.rb +1 -1
- data/test/tilt_coffeescripttemplate_test.rb +64 -11
- data/test/tilt_creoletemplate_test.rb +1 -1
- data/test/tilt_csv_test.rb +73 -0
- data/test/tilt_erbtemplate_test.rb +5 -0
- data/test/tilt_erubistemplate_test.rb +1 -1
- data/test/tilt_etannitemplate_test.rb +173 -0
- data/test/tilt_fallback_test.rb +6 -6
- data/test/tilt_hamltemplate_test.rb +1 -1
- data/test/tilt_kramdown_test.rb +1 -1
- data/test/tilt_lesstemplate_test.less +1 -0
- data/test/tilt_lesstemplate_test.rb +19 -3
- data/test/tilt_liquidtemplate_test.rb +1 -1
- data/test/tilt_markaby_test.rb +1 -1
- data/test/tilt_markdown_test.rb +15 -4
- data/test/tilt_marukutemplate_test.rb +1 -1
- data/test/tilt_radiustemplate_test.rb +1 -1
- data/test/tilt_rdiscounttemplate_test.rb +1 -1
- data/test/tilt_rdoctemplate_test.rb +10 -3
- data/test/tilt_redcarpettemplate_test.rb +15 -3
- data/test/tilt_redclothtemplate_test.rb +13 -1
- data/test/tilt_sasstemplate_test.rb +1 -1
- data/test/tilt_stringtemplate_test.rb +1 -1
- data/test/tilt_template_test.rb +13 -0
- data/test/tilt_wikiclothtemplate_test.rb +1 -1
- data/test/tilt_yajltemplate_test.rb +13 -4
- data/tilt.gemspec +27 -17
- metadata +203 -75
data/test/tilt_fallback_test.rb
CHANGED
@@ -5,7 +5,7 @@ class TiltFallbackTest < Test::Unit::TestCase
|
|
5
5
|
class FailTemplate < Tilt::Template
|
6
6
|
def self.engine_initialized?; false end
|
7
7
|
def prepare; end
|
8
|
-
|
8
|
+
|
9
9
|
def initialize_engine
|
10
10
|
raise LoadError, "can't load #{self.class}"
|
11
11
|
end
|
@@ -22,7 +22,7 @@ class TiltFallbackTest < Test::Unit::TestCase
|
|
22
22
|
def set_ivar(obj, name, value)
|
23
23
|
obj.instance_variable_set("@#{name}", value)
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
def clear_ivar(obj, name)
|
27
27
|
ivar = "@#{name}"
|
28
28
|
value = obj.instance_variable_get(ivar)
|
@@ -49,7 +49,7 @@ class TiltFallbackTest < Test::Unit::TestCase
|
|
49
49
|
test "returns the last registered template" do
|
50
50
|
Tilt.register("md", WinTemplate)
|
51
51
|
Tilt.register("md", WinTemplate2)
|
52
|
-
|
52
|
+
|
53
53
|
template = Tilt["md"]
|
54
54
|
assert_equal WinTemplate2, template
|
55
55
|
end
|
@@ -87,7 +87,7 @@ class TiltFallbackTest < Test::Unit::TestCase
|
|
87
87
|
test ".prefer accepts multiple extensions" do
|
88
88
|
extensions = %w[md mkd markdown]
|
89
89
|
Tilt.prefer(FailTemplate, *extensions)
|
90
|
-
|
90
|
+
|
91
91
|
extensions.each do |ext|
|
92
92
|
template = Tilt[ext]
|
93
93
|
assert_equal FailTemplate, template
|
@@ -96,7 +96,7 @@ class TiltFallbackTest < Test::Unit::TestCase
|
|
96
96
|
|
97
97
|
test ".prefer with no extension should use already registered extensions" do
|
98
98
|
extensions = %w[md mkd markdown]
|
99
|
-
|
99
|
+
|
100
100
|
extensions.each do |ext|
|
101
101
|
Tilt.register(ext, FailTemplate)
|
102
102
|
Tilt.register(ext, WinTemplate)
|
@@ -109,7 +109,7 @@ class TiltFallbackTest < Test::Unit::TestCase
|
|
109
109
|
assert_equal FailTemplate, template
|
110
110
|
end
|
111
111
|
end
|
112
|
-
|
112
|
+
|
113
113
|
test ".prefer should only override extensions the preferred library is registered for" do
|
114
114
|
Tilt.register("md", WinTemplate)
|
115
115
|
Tilt.register("mkd", FailTemplate)
|
data/test/tilt_kramdown_test.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
@text-color: #ffc0cb;
|
@@ -6,21 +6,37 @@ begin
|
|
6
6
|
require 'less'
|
7
7
|
|
8
8
|
class LessTemplateTest < Test::Unit::TestCase
|
9
|
+
def assert_similar(a, b)
|
10
|
+
assert_equal a.gsub(/\s+/m, ' '), b.gsub(/\s+/m, ' ')
|
11
|
+
end
|
12
|
+
|
9
13
|
test "is registered for '.less' files" do
|
10
14
|
assert_equal Tilt::LessTemplate, Tilt['test.less']
|
11
15
|
end
|
12
16
|
|
13
17
|
test "compiles and evaluates the template on #render" do
|
14
18
|
template = Tilt::LessTemplate.new { |t| ".bg { background-color: #0000ff; } \n#main\n { .bg; }\n" }
|
15
|
-
|
19
|
+
assert_similar ".bg {\n background-color: #0000ff;\n}\n#main {\n background-color: #0000ff;\n}\n", template.render
|
16
20
|
end
|
17
21
|
|
18
22
|
test "can be rendered more than once" do
|
19
23
|
template = Tilt::LessTemplate.new { |t| ".bg { background-color: #0000ff; } \n#main\n { .bg; }\n" }
|
20
|
-
3.times {
|
24
|
+
3.times { assert_similar ".bg {\n background-color: #0000ff;\n}\n#main {\n background-color: #0000ff;\n}\n", template.render }
|
25
|
+
end
|
26
|
+
|
27
|
+
test "can be passed a load path" do
|
28
|
+
template = Tilt::LessTemplate.new({
|
29
|
+
:paths => [Pathname(__FILE__).dirname]
|
30
|
+
}) {
|
31
|
+
<<-EOLESS
|
32
|
+
@import 'tilt_lesstemplate_test.less';
|
33
|
+
.bg {background-color: @text-color;}
|
34
|
+
EOLESS
|
35
|
+
}
|
36
|
+
assert_similar ".bg {\n background-color: #ffc0cb;\n}\n", template.render
|
21
37
|
end
|
22
38
|
end
|
23
39
|
|
24
40
|
rescue LoadError => boom
|
25
|
-
warn "Tilt::LessTemplate (disabled)
|
41
|
+
warn "Tilt::LessTemplate (disabled)"
|
26
42
|
end
|
data/test/tilt_markaby_test.rb
CHANGED
data/test/tilt_markdown_test.rb
CHANGED
@@ -26,7 +26,7 @@ module MarkdownTests
|
|
26
26
|
html.encode!("UTF-8") if html.respond_to?(:encode)
|
27
27
|
normalize(html)
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
def test_escape_html
|
31
31
|
html = nrender "Hello <b>World</b>"
|
32
32
|
assert_equal "<p>Hello <b>World</b></p>", html
|
@@ -98,7 +98,18 @@ begin
|
|
98
98
|
|
99
99
|
def test_smarty_pants_true
|
100
100
|
html = nrender "Hello ``World'' -- This is --- a test ...", :smartypants => true
|
101
|
-
assert_equal "<p>Hello “World
|
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
|
102
113
|
end
|
103
114
|
end
|
104
115
|
rescue LoadError => boom
|
@@ -133,7 +144,7 @@ rescue LoadError => boom
|
|
133
144
|
# It should already be warned in the main tests
|
134
145
|
end
|
135
146
|
|
136
|
-
|
147
|
+
|
137
148
|
begin
|
138
149
|
require 'maruku'
|
139
150
|
|
@@ -155,7 +166,7 @@ rescue LoadError => boom
|
|
155
166
|
end
|
156
167
|
|
157
168
|
rescue LoadError
|
158
|
-
warn "Markdown tests need Nokogiri
|
169
|
+
warn "Markdown tests need Nokogiri"
|
159
170
|
end
|
160
171
|
|
161
172
|
|
@@ -2,6 +2,7 @@ require 'contest'
|
|
2
2
|
require 'tilt'
|
3
3
|
|
4
4
|
begin
|
5
|
+
require 'rdoc'
|
5
6
|
require 'rdoc/markup'
|
6
7
|
require 'rdoc/markup/to_html'
|
7
8
|
class RDocTemplateTest < Test::Unit::TestCase
|
@@ -11,14 +12,20 @@ begin
|
|
11
12
|
|
12
13
|
test "preparing and evaluating the template with #render" do
|
13
14
|
template = Tilt::RDocTemplate.new { |t| "= Hello World!" }
|
14
|
-
|
15
|
+
result = template.render.strip
|
16
|
+
assert_match /<h1/, result
|
17
|
+
assert_match />Hello World!</, result
|
15
18
|
end
|
16
19
|
|
17
20
|
test "can be rendered more than once" do
|
18
21
|
template = Tilt::RDocTemplate.new { |t| "= Hello World!" }
|
19
|
-
3.times
|
22
|
+
3.times do
|
23
|
+
result = template.render.strip
|
24
|
+
assert_match /<h1/, result
|
25
|
+
assert_match />Hello World!</, result
|
26
|
+
end
|
20
27
|
end
|
21
28
|
end
|
22
29
|
rescue LoadError => boom
|
23
|
-
warn "Tilt::RDocTemplate (disabled)
|
30
|
+
warn "Tilt::RDocTemplate (disabled) [#{boom}]"
|
24
31
|
end
|
@@ -37,6 +37,11 @@ begin
|
|
37
37
|
end
|
38
38
|
end
|
39
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
|
+
|
40
45
|
test "preparing and evaluating templates on #render" do
|
41
46
|
template = Tilt::RedcarpetTemplate.new { |t| "# Hello World!" }
|
42
47
|
assert_equal "<h1>Hello World!</h1>\n", template.render
|
@@ -48,12 +53,19 @@ begin
|
|
48
53
|
end
|
49
54
|
|
50
55
|
test "smartypants when :smart is set" do
|
51
|
-
template = Tilt::RedcarpetTemplate.new(:
|
56
|
+
template = Tilt::RedcarpetTemplate.new(:smartypants => true) { |t|
|
57
|
+
"OKAY -- 'Smarty Pants'" }
|
58
|
+
assert_match /<p>OKAY – 'Smarty Pants'<\/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|
|
52
64
|
"OKAY -- 'Smarty Pants'" }
|
53
|
-
assert_match /<p>OKAY &
|
65
|
+
assert_match /<p>OKAY – 'Smarty Pants'<\/p>/,
|
54
66
|
template.render
|
55
67
|
end
|
56
68
|
end
|
57
69
|
rescue LoadError => boom
|
58
|
-
warn "Tilt::RedcarpetTemplate (disabled)
|
70
|
+
warn "Tilt::RedcarpetTemplate (disabled)"
|
59
71
|
end
|
@@ -18,7 +18,19 @@ begin
|
|
18
18
|
template = Tilt::RedClothTemplate.new { |t| "h1. Hello World!" }
|
19
19
|
3.times { assert_equal "<h1>Hello World!</h1>", template.render }
|
20
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
|
21
33
|
end
|
22
34
|
rescue LoadError => boom
|
23
|
-
warn "Tilt::RedClothTemplate (disabled)
|
35
|
+
warn "Tilt::RedClothTemplate (disabled)"
|
24
36
|
end
|
@@ -119,7 +119,7 @@ class CompiledStringTemplateTest < Test::Unit::TestCase
|
|
119
119
|
assert_equal "Hello\nWorld!\n", template.render(Scope.new)
|
120
120
|
end
|
121
121
|
|
122
|
-
|
122
|
+
|
123
123
|
test "template with '}'" do
|
124
124
|
template = Tilt::StringTemplate.new { "Hello }" }
|
125
125
|
assert_equal "Hello }", template.render
|
data/test/tilt_template_test.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'contest'
|
2
2
|
require 'tilt'
|
3
|
+
require 'tempfile'
|
3
4
|
|
4
5
|
class TiltTemplateTest < Test::Unit::TestCase
|
5
6
|
|
@@ -23,6 +24,12 @@ class TiltTemplateTest < Test::Unit::TestCase
|
|
23
24
|
assert_equal 55, inst.line
|
24
25
|
end
|
25
26
|
|
27
|
+
test "initializing with a tempfile" do
|
28
|
+
tempfile = Tempfile.new('tilt_template_test')
|
29
|
+
inst = MockTemplate.new(tempfile)
|
30
|
+
assert_equal File.basename(tempfile.path), inst.basename
|
31
|
+
end
|
32
|
+
|
26
33
|
test "uses correct eval_file" do
|
27
34
|
inst = MockTemplate.new('foo.erb', 55) {}
|
28
35
|
assert_equal 'foo.erb', inst.eval_file
|
@@ -127,6 +134,12 @@ class TiltTemplateTest < Test::Unit::TestCase
|
|
127
134
|
assert inst.prepared?
|
128
135
|
end
|
129
136
|
|
137
|
+
test "template_source with locals having non-variable keys raises error" do
|
138
|
+
inst = SourceGeneratingMockTemplate.new { |t| '1 + 2 = #{ANSWER}' }
|
139
|
+
err = assert_raise(RuntimeError) { inst.render(Object.new, 'ANSWER' => '3') }
|
140
|
+
assert_equal "invalid locals key: \"ANSWER\" (keys must be variable names)", err.message
|
141
|
+
end
|
142
|
+
|
130
143
|
class Person
|
131
144
|
CONSTANT = "Bob"
|
132
145
|
|
@@ -11,12 +11,20 @@ begin
|
|
11
11
|
|
12
12
|
test "compiles and evaluates the template on #render" do
|
13
13
|
template = Tilt::YajlTemplate.new { "json = { :integer => 3, :string => 'hello' }" }
|
14
|
-
|
14
|
+
output = template.render
|
15
|
+
result = Yajl::Parser.parse(output)
|
16
|
+
expect = {"integer" => 3,"string" => "hello"}
|
17
|
+
assert_equal expect, result
|
15
18
|
end
|
16
19
|
|
17
20
|
test "can be rendered more than once" do
|
18
21
|
template = Tilt::YajlTemplate.new { "json = { :integer => 3, :string => 'hello' }" }
|
19
|
-
|
22
|
+
expect = {"integer" => 3,"string" => "hello"}
|
23
|
+
3.times do
|
24
|
+
output = template.render
|
25
|
+
result = Yajl::Parser.parse(output)
|
26
|
+
assert_equal expect, result
|
27
|
+
end
|
20
28
|
end
|
21
29
|
|
22
30
|
test "evaluating ruby code" do
|
@@ -65,7 +73,8 @@ begin
|
|
65
73
|
json[:integer] = four
|
66
74
|
nil
|
67
75
|
} }
|
68
|
-
|
76
|
+
result = template.render
|
77
|
+
assert( (result == '{"string":"hello","integer":4}') || (result == '{"integer":4,"string":"hello"}') )
|
69
78
|
end
|
70
79
|
|
71
80
|
test "option callback" do
|
@@ -88,5 +97,5 @@ begin
|
|
88
97
|
|
89
98
|
end
|
90
99
|
rescue LoadError
|
91
|
-
warn "Tilt::YajlTemplateTest (disabled)
|
100
|
+
warn "Tilt::YajlTemplateTest (disabled)"
|
92
101
|
end
|
data/tilt.gemspec
CHANGED
@@ -3,11 +3,12 @@ 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 = '
|
6
|
+
s.version = '1.3.4'
|
7
|
+
s.date = '2013-02-28'
|
8
8
|
|
9
9
|
s.description = "Generic interface to multiple Ruby template engines"
|
10
10
|
s.summary = s.description
|
11
|
+
s.license = "MIT"
|
11
12
|
|
12
13
|
s.authors = ["Ryan Tomayko"]
|
13
14
|
s.email = "r@tomayko.com"
|
@@ -16,20 +17,25 @@ Gem::Specification.new do |s|
|
|
16
17
|
s.files = %w[
|
17
18
|
COPYING
|
18
19
|
Gemfile
|
20
|
+
HACKING
|
19
21
|
README.md
|
20
22
|
Rakefile
|
21
23
|
TEMPLATES.md
|
22
24
|
bin/tilt
|
23
25
|
lib/tilt.rb
|
26
|
+
lib/tilt/asciidoc.rb
|
24
27
|
lib/tilt/builder.rb
|
25
28
|
lib/tilt/coffee.rb
|
26
29
|
lib/tilt/css.rb
|
30
|
+
lib/tilt/csv.rb
|
27
31
|
lib/tilt/erb.rb
|
32
|
+
lib/tilt/etanni.rb
|
28
33
|
lib/tilt/haml.rb
|
29
34
|
lib/tilt/liquid.rb
|
30
35
|
lib/tilt/markaby.rb
|
31
36
|
lib/tilt/markdown.rb
|
32
37
|
lib/tilt/nokogiri.rb
|
38
|
+
lib/tilt/plain.rb
|
33
39
|
lib/tilt/radius.rb
|
34
40
|
lib/tilt/rdoc.rb
|
35
41
|
lib/tilt/string.rb
|
@@ -44,17 +50,21 @@ Gem::Specification.new do |s|
|
|
44
50
|
test/markaby/render_twice.mab
|
45
51
|
test/markaby/scope.mab
|
46
52
|
test/markaby/yielding.mab
|
53
|
+
test/tilt_asciidoctor_test.rb
|
47
54
|
test/tilt_blueclothtemplate_test.rb
|
48
55
|
test/tilt_buildertemplate_test.rb
|
49
56
|
test/tilt_cache_test.rb
|
50
57
|
test/tilt_coffeescripttemplate_test.rb
|
51
58
|
test/tilt_compilesite_test.rb
|
52
59
|
test/tilt_creoletemplate_test.rb
|
60
|
+
test/tilt_csv_test.rb
|
53
61
|
test/tilt_erbtemplate_test.rb
|
54
62
|
test/tilt_erubistemplate_test.rb
|
63
|
+
test/tilt_etannitemplate_test.rb
|
55
64
|
test/tilt_fallback_test.rb
|
56
65
|
test/tilt_hamltemplate_test.rb
|
57
66
|
test/tilt_kramdown_test.rb
|
67
|
+
test/tilt_lesstemplate_test.less
|
58
68
|
test/tilt_lesstemplate_test.rb
|
59
69
|
test/tilt_liquidtemplate_test.rb
|
60
70
|
test/tilt_markaby_test.rb
|
@@ -78,29 +88,29 @@ Gem::Specification.new do |s|
|
|
78
88
|
|
79
89
|
s.executables = ['tilt']
|
80
90
|
s.test_files = s.files.select {|path| path =~ /^test\/.*_test.rb/}
|
81
|
-
s.add_development_dependency '
|
91
|
+
s.add_development_dependency 'asciidoctor', '>= 0.1.0'
|
92
|
+
s.add_development_dependency 'RedCloth'
|
93
|
+
s.add_development_dependency 'bluecloth'
|
82
94
|
s.add_development_dependency 'builder'
|
95
|
+
s.add_development_dependency 'coffee-script'
|
96
|
+
s.add_development_dependency 'contest'
|
97
|
+
s.add_development_dependency 'creole'
|
83
98
|
s.add_development_dependency 'erubis'
|
84
99
|
s.add_development_dependency 'haml', '>= 2.2.11'
|
85
|
-
s.add_development_dependency '
|
86
|
-
s.add_development_dependency 'rdiscount'
|
87
|
-
s.add_development_dependency 'liquid'
|
100
|
+
s.add_development_dependency 'kramdown'
|
88
101
|
s.add_development_dependency 'less'
|
89
|
-
s.add_development_dependency '
|
90
|
-
s.add_development_dependency 'nokogiri'
|
102
|
+
s.add_development_dependency 'liquid'
|
91
103
|
s.add_development_dependency 'markaby'
|
92
|
-
s.add_development_dependency 'coffee-script'
|
93
|
-
s.add_development_dependency 'bluecloth'
|
94
|
-
s.add_development_dependency 'RedCloth'
|
95
104
|
s.add_development_dependency 'maruku'
|
96
|
-
s.add_development_dependency '
|
97
|
-
s.add_development_dependency '
|
105
|
+
s.add_development_dependency 'nokogiri'
|
106
|
+
s.add_development_dependency 'radius'
|
107
|
+
s.add_development_dependency 'rdiscount'
|
108
|
+
s.add_development_dependency 'rdoc'
|
98
109
|
s.add_development_dependency 'redcarpet'
|
99
|
-
s.add_development_dependency '
|
100
|
-
s.add_development_dependency 'yajl-ruby'
|
110
|
+
s.add_development_dependency 'sass'
|
101
111
|
s.add_development_dependency 'wikicloth'
|
102
|
-
s.add_development_dependency '
|
103
|
-
s.add_development_dependency '
|
112
|
+
s.add_development_dependency 'yajl-ruby'
|
113
|
+
s.add_development_dependency 'rdoc'
|
104
114
|
|
105
115
|
s.homepage = "http://github.com/rtomayko/tilt/"
|
106
116
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Tilt", "--main", "Tilt"]
|