tiltout 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +11 -0
- data/Gemfile.lock +1 -1
- data/Readme.md +4 -0
- data/lib/tiltout.rb +13 -5
- data/lib/tiltout/version.rb +1 -1
- data/test/tiltout_test.rb +21 -0
- metadata +74 -87
data/.travis.yml
ADDED
data/Gemfile.lock
CHANGED
data/Readme.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Tiltout
|
2
2
|
|
3
|
+
<a href="http://travis-ci.org/cjohansen/tiltout" class="travis">
|
4
|
+
<img src="https://secure.travis-ci.org/cjohansen/tiltout.png">
|
5
|
+
</a>
|
6
|
+
|
3
7
|
## Tilt templates with layouts and helpers
|
4
8
|
|
5
9
|
Tiltout is a small abstraction over Tilt that allows you to render templates
|
data/lib/tiltout.rb
CHANGED
@@ -33,12 +33,13 @@ class Tiltout
|
|
33
33
|
@layout = opt[:layout]
|
34
34
|
@default_type = opt[:default_type] || "erb"
|
35
35
|
@context_class = Class.new
|
36
|
-
(opt[:helpers]
|
36
|
+
helper(opt[:helpers])
|
37
37
|
end
|
38
38
|
|
39
|
-
def helper(
|
40
|
-
|
41
|
-
|
39
|
+
def helper(helpers)
|
40
|
+
return if helpers.nil?
|
41
|
+
helpers = [helpers] unless helpers.is_a?(Array)
|
42
|
+
helpers.each { |h| @context_class.send(:include, helper_module(h)) }
|
42
43
|
end
|
43
44
|
|
44
45
|
def render(template, locals = {}, options = {})
|
@@ -49,7 +50,6 @@ class Tiltout
|
|
49
50
|
|
50
51
|
if !layout_tpl.nil?
|
51
52
|
content = render_in_context(context, layout_tpl, locals) { content }
|
52
|
-
#content = load(layout_tpl).render(context, locals) { content }
|
53
53
|
end
|
54
54
|
|
55
55
|
content
|
@@ -82,4 +82,12 @@ class Tiltout
|
|
82
82
|
def cached?(name)
|
83
83
|
@cache && !!@cache[name]
|
84
84
|
end
|
85
|
+
|
86
|
+
def helper_module(mod)
|
87
|
+
return mod if mod.is_a?(Module)
|
88
|
+
mod.keys.inject(Module.new) do |helper, attr|
|
89
|
+
helper.send(:define_method, attr) { mod[attr] }
|
90
|
+
helper
|
91
|
+
end
|
92
|
+
end
|
85
93
|
end
|
data/lib/tiltout/version.rb
CHANGED
data/test/tiltout_test.rb
CHANGED
@@ -86,6 +86,17 @@ I give you: <%= yield %>
|
|
86
86
|
assert_equal "I give you: Template\n", renderer.render(:file)
|
87
87
|
end
|
88
88
|
|
89
|
+
it "renders template not in template root" do
|
90
|
+
renderer = Tiltout.new("/else")
|
91
|
+
fake_file("/somewhere/file.erb", "Template")
|
92
|
+
fake_file("/my/layout.erb", <<-ERB)
|
93
|
+
I give you: <%= yield %>
|
94
|
+
ERB
|
95
|
+
|
96
|
+
template = { :file => "/somewhere/file.erb" }
|
97
|
+
assert_equal "Template", renderer.render(template)
|
98
|
+
end
|
99
|
+
|
89
100
|
it "renders template with layout not in template root" do
|
90
101
|
renderer = Tiltout.new("/somewhere", :layout => { :file => "/my/layout.erb" })
|
91
102
|
fake_file("/somewhere/file.erb", "Template")
|
@@ -157,6 +168,16 @@ Say it: <%= say_it %>
|
|
157
168
|
assert_equal "Say it: YES\n", renderer.render(:file)
|
158
169
|
end
|
159
170
|
|
171
|
+
it "uses hash as helper" do
|
172
|
+
renderer = Tiltout.new("/")
|
173
|
+
renderer.helper(:say_it => 42, "do_it" => 12)
|
174
|
+
fake_file("/file.erb", <<-ERB)
|
175
|
+
Say it: <%= say_it %>, <%= do_it %>
|
176
|
+
ERB
|
177
|
+
|
178
|
+
assert_equal "Say it: 42, 12\n", renderer.render(:file)
|
179
|
+
end
|
180
|
+
|
160
181
|
it "does not leak state across render calls" do
|
161
182
|
renderer = Tiltout.new("/")
|
162
183
|
fake_file("/file.erb", <<-TEMPLATE)
|
metadata
CHANGED
@@ -1,96 +1,94 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: tiltout
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.3.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 2
|
9
|
-
- 0
|
10
|
-
version: 1.2.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Christian Johansen
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-11-29 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: tilt
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
18
|
+
requirements:
|
27
19
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 3
|
33
|
-
version: "1.3"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.3'
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: minitest
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
25
|
none: false
|
41
|
-
requirements:
|
26
|
+
requirements:
|
42
27
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.3'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: minitest
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '2.0'
|
49
38
|
type: :development
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: rake
|
53
39
|
prerelease: false
|
54
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
41
|
none: false
|
56
|
-
requirements:
|
42
|
+
requirements:
|
57
43
|
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '2.0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rake
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.9'
|
64
54
|
type: :development
|
65
|
-
version_requirements: *id003
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: mocha
|
68
55
|
prerelease: false
|
69
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
57
|
none: false
|
71
|
-
requirements:
|
72
|
-
- -
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.9'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: mocha
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
78
70
|
type: :development
|
79
|
-
|
80
|
-
|
81
|
-
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
description: ! 'Tiltout is a small abstraction on top of Tilt that allows you to render
|
79
|
+
|
82
80
|
templates with optional layouts, share state between layout and template,
|
81
|
+
|
83
82
|
register helper modules and optionally cache templates.
|
84
83
|
|
85
|
-
|
84
|
+
'
|
85
|
+
email:
|
86
86
|
- christian@gitorious.org
|
87
87
|
executables: []
|
88
|
-
|
89
88
|
extensions: []
|
90
|
-
|
91
89
|
extra_rdoc_files: []
|
92
|
-
|
93
|
-
|
90
|
+
files:
|
91
|
+
- .travis.yml
|
94
92
|
- Gemfile
|
95
93
|
- Gemfile.lock
|
96
94
|
- Rakefile
|
@@ -100,39 +98,28 @@ files:
|
|
100
98
|
- lib/tiltout/version.rb
|
101
99
|
- test/tiltout_test.rb
|
102
100
|
- tiltout.gemspec
|
103
|
-
has_rdoc: true
|
104
101
|
homepage: http://gitorious.org/gitorious/tiltout
|
105
102
|
licenses: []
|
106
|
-
|
107
103
|
post_install_message:
|
108
104
|
rdoc_options: []
|
109
|
-
|
110
|
-
require_paths:
|
105
|
+
require_paths:
|
111
106
|
- lib
|
112
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
113
108
|
none: false
|
114
|
-
requirements:
|
115
|
-
- -
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
|
118
|
-
|
119
|
-
- 0
|
120
|
-
version: "0"
|
121
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - ! '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
114
|
none: false
|
123
|
-
requirements:
|
124
|
-
- -
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
|
127
|
-
segments:
|
128
|
-
- 0
|
129
|
-
version: "0"
|
115
|
+
requirements:
|
116
|
+
- - ! '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
130
119
|
requirements: []
|
131
|
-
|
132
120
|
rubyforge_project:
|
133
|
-
rubygems_version: 1.
|
121
|
+
rubygems_version: 1.8.24
|
134
122
|
signing_key:
|
135
123
|
specification_version: 3
|
136
124
|
summary: Tilt templates with layouts and helpers
|
137
125
|
test_files: []
|
138
|
-
|