tilt 0.5 → 0.6
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/TEMPLATES.md +2 -2
- data/lib/tilt.rb +35 -17
- data/test/tilt_coffeetemplate_test.rb +20 -0
- data/test/tilt_mustache_views/external.rb +9 -0
- data/test/tilt_mustachetemplate_test.rb +9 -0
- data/tilt.gemspec +4 -2
- metadata +61 -37
data/TEMPLATES.md
CHANGED
@@ -308,9 +308,9 @@ The class or module where View classes are located. If you have
|
|
308
308
|
`Hurl::App::Views`, namespace should be `Hurl:App`. This defaults to `Object`,
|
309
309
|
causing `::Views` to be searched for classes.
|
310
310
|
|
311
|
-
#### `:mustaches => nil`
|
311
|
+
#### `:mustaches => nil` or `:view_path => nil`
|
312
312
|
|
313
|
-
Where mustache views (
|
313
|
+
Where mustache views (`.rb` files) are located, or `nil` to disable auto-requiring
|
314
314
|
of views based on template names. By default, the view file is assumed to be in
|
315
315
|
the same directory as the template file.
|
316
316
|
|
data/lib/tilt.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Tilt
|
2
|
-
VERSION = '0.
|
2
|
+
VERSION = '0.6'
|
3
3
|
|
4
4
|
@template_mappings = {}
|
5
5
|
|
@@ -77,6 +77,7 @@ module Tilt
|
|
77
77
|
@line = line || 1
|
78
78
|
@options = options || {}
|
79
79
|
@reader = block || lambda { |t| File.read(file) }
|
80
|
+
@data = nil
|
80
81
|
|
81
82
|
if !self.class.engine_initialized
|
82
83
|
initialize_engine
|
@@ -400,9 +401,8 @@ module Tilt
|
|
400
401
|
scope = scope.to_h.inject({}){ |h,(k,v)| h[k.to_s] = v ; h }
|
401
402
|
locals = scope.merge(locals)
|
402
403
|
end
|
403
|
-
# TODO: Is it possible to lazy yield ?
|
404
404
|
locals['yield'] = block.nil? ? '' : yield
|
405
|
-
locals['content'] =
|
405
|
+
locals['content'] = locals['yield']
|
406
406
|
@engine.render(locals)
|
407
407
|
end
|
408
408
|
end
|
@@ -437,22 +437,22 @@ module Tilt
|
|
437
437
|
register 'md', RDiscountTemplate
|
438
438
|
|
439
439
|
|
440
|
-
# RedCloth implementation. See:
|
441
|
-
# http://redcloth.org/
|
442
|
-
class RedClothTemplate < Template
|
443
|
-
|
444
|
-
|
445
|
-
|
440
|
+
# RedCloth implementation. See:
|
441
|
+
# http://redcloth.org/
|
442
|
+
class RedClothTemplate < Template
|
443
|
+
def initialize_engine
|
444
|
+
require_template_library 'redcloth' unless defined? ::RedCloth
|
445
|
+
end
|
446
446
|
|
447
|
-
|
448
|
-
|
449
|
-
|
447
|
+
def compile!
|
448
|
+
@engine = RedCloth.new(data)
|
449
|
+
end
|
450
450
|
|
451
|
-
|
452
|
-
|
451
|
+
def evaluate(scope, locals, &block)
|
452
|
+
@engine.to_html
|
453
|
+
end
|
453
454
|
end
|
454
|
-
|
455
|
-
register 'textile', RedClothTemplate
|
455
|
+
register 'textile', RedClothTemplate
|
456
456
|
|
457
457
|
|
458
458
|
# Mustache is written and maintained by Chris Wanstrath. See:
|
@@ -470,9 +470,10 @@ register 'textile', RedClothTemplate
|
|
470
470
|
|
471
471
|
def compile!
|
472
472
|
Mustache.view_namespace = options[:namespace]
|
473
|
+
Mustache.view_path = options[:view_path] || options[:mustaches]
|
473
474
|
@engine = options[:view] || Mustache.view_class(name)
|
474
475
|
options.each do |key, value|
|
475
|
-
next if %w[view namespace mustaches].include?(key.to_s)
|
476
|
+
next if %w[view view_path namespace mustaches].include?(key.to_s)
|
476
477
|
@engine.send("#{key}=", value) if @engine.respond_to? "#{key}="
|
477
478
|
end
|
478
479
|
end
|
@@ -525,4 +526,21 @@ register 'textile', RedClothTemplate
|
|
525
526
|
end
|
526
527
|
end
|
527
528
|
register 'rdoc', RDocTemplate
|
529
|
+
|
530
|
+
# CoffeeScript info:
|
531
|
+
# http://jashkenas.github.com/coffee-script/
|
532
|
+
class CoffeeTemplate < Template
|
533
|
+
def initialize_engine
|
534
|
+
require_template_library 'coffee-script' unless defined? ::CoffeeScript
|
535
|
+
end
|
536
|
+
|
537
|
+
def compile!
|
538
|
+
@engine = ::CoffeeScript::compile(data, options)
|
539
|
+
end
|
540
|
+
|
541
|
+
def evaluate(scope, locals, &block)
|
542
|
+
@engine
|
543
|
+
end
|
544
|
+
end
|
545
|
+
register 'coffee', CoffeeTemplate
|
528
546
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'contest'
|
2
|
+
require 'tilt'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'coffee-script'
|
6
|
+
|
7
|
+
class CoffeeTemplateTest < Test::Unit::TestCase
|
8
|
+
test "is registered for '.coffee' files" do
|
9
|
+
assert_equal Tilt::CoffeeTemplate, Tilt['test.coffee']
|
10
|
+
end
|
11
|
+
|
12
|
+
test "compiles and evaluates the template on #render" do
|
13
|
+
template = Tilt::CoffeeTemplate.new { |t| "greeting: \"Hello CoffeeScript\"" }
|
14
|
+
assert_equal "(function(){\n var greeting;\n greeting = \"Hello CoffeeScript\";\n})();", template.render
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
rescue LoadError => boom
|
19
|
+
warn "Tilt::CoffeeTemplate (disabled)\n"
|
20
|
+
end
|
@@ -51,6 +51,15 @@ begin
|
|
51
51
|
assert_equal "<p>Hello World!</p>", template.render
|
52
52
|
end
|
53
53
|
|
54
|
+
test "locating views in files" do
|
55
|
+
view_path = File.expand_path('../tilt_mustache_views', __FILE__)
|
56
|
+
template = Tilt::MustacheTemplate.new('external.mustache', :view_path => view_path) { "<p>{{hello}}!</p>" }
|
57
|
+
template.compile
|
58
|
+
assert defined?(Views::External), "external.rb should have been required"
|
59
|
+
assert_equal Views::External, template.engine
|
60
|
+
assert_equal "<p>Stached!</p>", template.render
|
61
|
+
end
|
62
|
+
|
54
63
|
test "copying instance variables from scope object" do
|
55
64
|
template = Tilt::MustacheTemplate.new('foo.mustache') { "<p>Hey {{foo}}!</p>" }
|
56
65
|
scope = Object.new
|
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 = '0.
|
7
|
-
s.date = '2010-
|
6
|
+
s.version = '0.6'
|
7
|
+
s.date = '2010-02-22'
|
8
8
|
|
9
9
|
s.description = "Generic interface to multiple Ruby template engines"
|
10
10
|
s.summary = s.description
|
@@ -22,11 +22,13 @@ Gem::Specification.new do |s|
|
|
22
22
|
lib/tilt.rb
|
23
23
|
test/tilt_buildertemplate_test.rb
|
24
24
|
test/tilt_cache_test.rb
|
25
|
+
test/tilt_coffeetemplate_test.rb
|
25
26
|
test/tilt_erbtemplate_test.rb
|
26
27
|
test/tilt_erubistemplate_test.rb
|
27
28
|
test/tilt_hamltemplate_test.rb
|
28
29
|
test/tilt_lesstemplate_test.rb
|
29
30
|
test/tilt_liquidtemplate_test.rb
|
31
|
+
test/tilt_mustache_views/external.rb
|
30
32
|
test/tilt_mustachetemplate_test.rb
|
31
33
|
test/tilt_rdiscounttemplate_test.rb
|
32
34
|
test/tilt_rdoctemplate_test.rb
|
metadata
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tilt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 6
|
8
|
+
version: "0.6"
|
5
9
|
platform: ruby
|
6
10
|
authors:
|
7
11
|
- Ryan Tomayko
|
@@ -9,89 +13,105 @@ autorequire:
|
|
9
13
|
bindir: bin
|
10
14
|
cert_chain: []
|
11
15
|
|
12
|
-
date: 2010-
|
16
|
+
date: 2010-02-22 00:00:00 -08:00
|
13
17
|
default_executable:
|
14
18
|
dependencies:
|
15
19
|
- !ruby/object:Gem::Dependency
|
16
20
|
name: contest
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
21
|
+
prerelease: false
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
23
|
requirements:
|
21
24
|
- - ">="
|
22
25
|
- !ruby/object:Gem::Version
|
26
|
+
segments:
|
27
|
+
- 0
|
23
28
|
version: "0"
|
24
|
-
|
29
|
+
type: :development
|
30
|
+
version_requirements: *id001
|
25
31
|
- !ruby/object:Gem::Dependency
|
26
32
|
name: builder
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
33
|
+
prerelease: false
|
34
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
35
|
requirements:
|
31
36
|
- - ">="
|
32
37
|
- !ruby/object:Gem::Version
|
38
|
+
segments:
|
39
|
+
- 0
|
33
40
|
version: "0"
|
34
|
-
|
41
|
+
type: :development
|
42
|
+
version_requirements: *id002
|
35
43
|
- !ruby/object:Gem::Dependency
|
36
44
|
name: erubis
|
37
|
-
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
prerelease: false
|
46
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
47
|
requirements:
|
41
48
|
- - ">="
|
42
49
|
- !ruby/object:Gem::Version
|
50
|
+
segments:
|
51
|
+
- 0
|
43
52
|
version: "0"
|
44
|
-
|
53
|
+
type: :development
|
54
|
+
version_requirements: *id003
|
45
55
|
- !ruby/object:Gem::Dependency
|
46
56
|
name: haml
|
47
|
-
|
48
|
-
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
prerelease: false
|
58
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
59
|
requirements:
|
51
60
|
- - ">="
|
52
61
|
- !ruby/object:Gem::Version
|
62
|
+
segments:
|
63
|
+
- 0
|
53
64
|
version: "0"
|
54
|
-
|
65
|
+
type: :development
|
66
|
+
version_requirements: *id004
|
55
67
|
- !ruby/object:Gem::Dependency
|
56
68
|
name: mustache
|
57
|
-
|
58
|
-
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
69
|
+
prerelease: false
|
70
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
60
71
|
requirements:
|
61
72
|
- - ">="
|
62
73
|
- !ruby/object:Gem::Version
|
74
|
+
segments:
|
75
|
+
- 0
|
63
76
|
version: "0"
|
64
|
-
|
77
|
+
type: :development
|
78
|
+
version_requirements: *id005
|
65
79
|
- !ruby/object:Gem::Dependency
|
66
80
|
name: rdiscount
|
67
|
-
|
68
|
-
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
prerelease: false
|
82
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
70
83
|
requirements:
|
71
84
|
- - ">="
|
72
85
|
- !ruby/object:Gem::Version
|
86
|
+
segments:
|
87
|
+
- 0
|
73
88
|
version: "0"
|
74
|
-
|
89
|
+
type: :development
|
90
|
+
version_requirements: *id006
|
75
91
|
- !ruby/object:Gem::Dependency
|
76
92
|
name: liquid
|
77
|
-
|
78
|
-
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
prerelease: false
|
94
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
80
95
|
requirements:
|
81
96
|
- - ">="
|
82
97
|
- !ruby/object:Gem::Version
|
98
|
+
segments:
|
99
|
+
- 0
|
83
100
|
version: "0"
|
84
|
-
|
101
|
+
type: :development
|
102
|
+
version_requirements: *id007
|
85
103
|
- !ruby/object:Gem::Dependency
|
86
104
|
name: less
|
87
|
-
|
88
|
-
|
89
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
prerelease: false
|
106
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
90
107
|
requirements:
|
91
108
|
- - ">="
|
92
109
|
- !ruby/object:Gem::Version
|
110
|
+
segments:
|
111
|
+
- 0
|
93
112
|
version: "0"
|
94
|
-
|
113
|
+
type: :development
|
114
|
+
version_requirements: *id008
|
95
115
|
description: Generic interface to multiple Ruby template engines
|
96
116
|
email: r@tomayko.com
|
97
117
|
executables: []
|
@@ -109,11 +129,13 @@ files:
|
|
109
129
|
- lib/tilt.rb
|
110
130
|
- test/tilt_buildertemplate_test.rb
|
111
131
|
- test/tilt_cache_test.rb
|
132
|
+
- test/tilt_coffeetemplate_test.rb
|
112
133
|
- test/tilt_erbtemplate_test.rb
|
113
134
|
- test/tilt_erubistemplate_test.rb
|
114
135
|
- test/tilt_hamltemplate_test.rb
|
115
136
|
- test/tilt_lesstemplate_test.rb
|
116
137
|
- test/tilt_liquidtemplate_test.rb
|
138
|
+
- test/tilt_mustache_views/external.rb
|
117
139
|
- test/tilt_mustachetemplate_test.rb
|
118
140
|
- test/tilt_rdiscounttemplate_test.rb
|
119
141
|
- test/tilt_rdoctemplate_test.rb
|
@@ -141,18 +163,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
141
163
|
requirements:
|
142
164
|
- - ">="
|
143
165
|
- !ruby/object:Gem::Version
|
166
|
+
segments:
|
167
|
+
- 0
|
144
168
|
version: "0"
|
145
|
-
version:
|
146
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
170
|
requirements:
|
148
171
|
- - ">="
|
149
172
|
- !ruby/object:Gem::Version
|
173
|
+
segments:
|
174
|
+
- 0
|
150
175
|
version: "0"
|
151
|
-
version:
|
152
176
|
requirements: []
|
153
177
|
|
154
178
|
rubyforge_project: wink
|
155
|
-
rubygems_version: 1.3.
|
179
|
+
rubygems_version: 1.3.6
|
156
180
|
signing_key:
|
157
181
|
specification_version: 2
|
158
182
|
summary: Generic interface to multiple Ruby template engines
|