tiltout 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,11 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - jruby-18mode
5
+ - jruby-19mode
6
+ - rbx-18mode
7
+ - rbx-19mode
8
+ - ruby-head
9
+ - jruby-head
10
+ - 1.8.7
11
+ - ree
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tiltout (1.3.0)
4
+ tiltout (1.2.0)
5
5
  tilt (~> 1.3)
6
6
 
7
7
  GEM
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
@@ -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] || []).each { |h| helper(h) }
36
+ helper(opt[:helpers])
37
37
  end
38
38
 
39
- def helper(helper)
40
- helper = [helper] unless Array === helper
41
- helper.each { |h| @context_class.send(:include, h) }
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
@@ -24,5 +24,5 @@
24
24
  #++
25
25
 
26
26
  class Tiltout
27
- VERSION = "1.2.0"
27
+ VERSION = "1.3.0"
28
28
  end
@@ -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
- hash: 31
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
- date: 2012-10-15 00:00:00 +02:00
19
- default_executable:
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
- prerelease: false
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
- hash: 9
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
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
40
25
  none: false
41
- requirements:
26
+ requirements:
42
27
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 2
47
- - 0
48
- version: "2.0"
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
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
55
41
  none: false
56
- requirements:
42
+ requirements:
57
43
  - - ~>
58
- - !ruby/object:Gem::Version
59
- hash: 25
60
- segments:
61
- - 0
62
- - 9
63
- version: "0.9"
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
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
70
57
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
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
- version_requirements: *id004
80
- description: |
81
- Tiltout is a small abstraction on top of Tilt that allows you to render
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
- email:
84
+ '
85
+ email:
86
86
  - christian@gitorious.org
87
87
  executables: []
88
-
89
88
  extensions: []
90
-
91
89
  extra_rdoc_files: []
92
-
93
- files:
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
- hash: 3
118
- segments:
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
- hash: 3
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.4.2
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
-