tiltout 1.2.0 → 1.3.0

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.
@@ -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
-