wrapt 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +13 -0
- data/lib/wrapt/layout.rb +11 -1
- data/lib/wrapt/layout_context.rb +9 -0
- data/spec/wrapt_spec.rb +14 -0
- data/wrapt.gemspec +2 -2
- metadata +24 -25
- data/Gemfile.lock +0 -72
data/README.textile
CHANGED
@@ -93,6 +93,19 @@ You can also select the layout to use inside a request. The following sets the
|
|
93
93
|
end
|
94
94
|
</code></pre>
|
95
95
|
|
96
|
+
Ask the layout to check if a given layout is available. You can then decide if you want to use that, or leave it as is.
|
97
|
+
|
98
|
+
<pre><code>def call(env)
|
99
|
+
content = generate_content_somehow
|
100
|
+
layout = env['layout']
|
101
|
+
layout.template_name = 'error' if layout.template_name?('error')
|
102
|
+
|
103
|
+
layout.content = content
|
104
|
+
Rack::Response.new(layout).finish
|
105
|
+
end
|
106
|
+
</code></pre>
|
107
|
+
|
108
|
+
|
96
109
|
h3. Format
|
97
110
|
|
98
111
|
Layouts are associated with a format. By default the format is html. Tempaltes are selected by their name with <name>.<format>.<template_type>.
|
data/lib/wrapt/layout.rb
CHANGED
@@ -14,10 +14,20 @@ class Wrapt
|
|
14
14
|
|
15
15
|
# Is the wrapt instance that created this layouter set as a master?
|
16
16
|
# @see Wrapt#master?
|
17
|
+
# @api public
|
17
18
|
def master?
|
18
19
|
@wrapt.master?
|
19
20
|
end
|
20
21
|
|
22
|
+
# Check to see if there is a template of a given name and options
|
23
|
+
# for this layouter.
|
24
|
+
#
|
25
|
+
# @see Wrapt#template
|
26
|
+
# @api public
|
27
|
+
def template_name?(name, opts = {})
|
28
|
+
!!@wrapt.template(name, opts)
|
29
|
+
end
|
30
|
+
|
21
31
|
# Gets the format that this layouter has been set to.
|
22
32
|
# Defaults to the default_format of the wrapt instance
|
23
33
|
#
|
@@ -142,7 +152,7 @@ class Wrapt
|
|
142
152
|
template = @wrapt.template(template, opts)
|
143
153
|
|
144
154
|
output = if template
|
145
|
-
template.render(LayoutContext.new) do |*args|
|
155
|
+
template.render(LayoutContext.new(env)) do |*args|
|
146
156
|
label = args.first || :content
|
147
157
|
content_for[label]
|
148
158
|
end
|
data/lib/wrapt/layout_context.rb
CHANGED
@@ -3,7 +3,16 @@ class Wrapt
|
|
3
3
|
# Anything that is required to be avaible in the view context should be included into the Helpers module, or the LayoutContext
|
4
4
|
# @see Wrapt::Helpers
|
5
5
|
class LayoutContext
|
6
|
+
attr_reader :env
|
6
7
|
include Tilt::CompileSite
|
7
8
|
include Helpers
|
9
|
+
|
10
|
+
def initialize(env)
|
11
|
+
@env = env
|
12
|
+
end
|
13
|
+
|
14
|
+
def request
|
15
|
+
@request = Rack::Request.new(env)
|
16
|
+
end
|
8
17
|
end
|
9
18
|
end
|
data/spec/wrapt_spec.rb
CHANGED
@@ -322,5 +322,19 @@ describe Wrapt do
|
|
322
322
|
$wrapped_content.should include("Other Template")
|
323
323
|
end
|
324
324
|
end
|
325
|
+
|
326
|
+
it "should respond true to a question for a template when there is one defined" do
|
327
|
+
env = Rack::MockRequest.env_for("/")
|
328
|
+
@wrapt.call(env)
|
329
|
+
layout = env['layout']
|
330
|
+
layout.template_name?(:wrapper).should be_true
|
331
|
+
end
|
332
|
+
|
333
|
+
it "Shoudl respond false to a question for a template when there is one defined" do
|
334
|
+
env = Rack::MockRequest.env_for("/")
|
335
|
+
@wrapt.call(env)
|
336
|
+
layout = env['layout']
|
337
|
+
layout.template_name?(:not_a_template).should be_false
|
338
|
+
end
|
325
339
|
end
|
326
340
|
end
|
data/wrapt.gemspec
CHANGED
@@ -3,7 +3,7 @@ require 'bundler'
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = %q{wrapt}
|
6
|
-
s.version = "0.1.
|
6
|
+
s.version = "0.1.5"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
9
|
s.authors = ["Daniel Neighman"]
|
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubygems_version = %q{1.3.6}
|
18
18
|
|
19
|
-
s.files = Dir[
|
19
|
+
s.files = Dir["**/*"]
|
20
20
|
|
21
21
|
s.add_dependency 'tilt'
|
22
22
|
s.add_dependency 'hashie'
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 5
|
9
|
+
version: 0.1.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Daniel Neighman
|
@@ -50,29 +50,28 @@ extensions: []
|
|
50
50
|
extra_rdoc_files: []
|
51
51
|
|
52
52
|
files:
|
53
|
-
-
|
54
|
-
-
|
55
|
-
-
|
56
|
-
-
|
57
|
-
-
|
58
|
-
-
|
59
|
-
-
|
60
|
-
-
|
61
|
-
-
|
62
|
-
-
|
63
|
-
-
|
64
|
-
-
|
65
|
-
-
|
66
|
-
-
|
67
|
-
-
|
68
|
-
-
|
69
|
-
-
|
70
|
-
-
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
- ./wrapt.gemspec
|
53
|
+
- Gemfile
|
54
|
+
- lib/wrapt/helpers.rb
|
55
|
+
- lib/wrapt/layout.rb
|
56
|
+
- lib/wrapt/layout_context.rb
|
57
|
+
- lib/wrapt/wrapt.rb
|
58
|
+
- lib/wrapt.rb
|
59
|
+
- LICENSE
|
60
|
+
- Rakefile
|
61
|
+
- README.textile
|
62
|
+
- spec/alt_layouts/second.html.haml
|
63
|
+
- spec/layouts/first.html.haml
|
64
|
+
- spec/layouts/multiple.html.haml
|
65
|
+
- spec/layouts/other.html.haml
|
66
|
+
- spec/layouts/wrapper.html.haml
|
67
|
+
- spec/layouts/wrapper.jsonp.erb
|
68
|
+
- spec/layouts/wrapper.xml.haml
|
69
|
+
- spec/spec.opts
|
70
|
+
- spec/spec_helper.rb
|
71
|
+
- spec/wrapt_spec.rb
|
72
|
+
- VERSION
|
73
|
+
- wrapt-0.1.3.gem
|
74
|
+
- wrapt.gemspec
|
76
75
|
has_rdoc: true
|
77
76
|
homepage: http://github.com/hassox/wrapt
|
78
77
|
licenses: []
|
data/Gemfile.lock
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
---
|
2
|
-
dependencies:
|
3
|
-
ZenTest:
|
4
|
-
group:
|
5
|
-
- :test
|
6
|
-
version: ">= 0"
|
7
|
-
haml:
|
8
|
-
group:
|
9
|
-
- :test
|
10
|
-
version: ">= 0"
|
11
|
-
any_view:
|
12
|
-
group:
|
13
|
-
- :default
|
14
|
-
version: ">= 0"
|
15
|
-
rake:
|
16
|
-
group:
|
17
|
-
- :test
|
18
|
-
version: ">= 0"
|
19
|
-
hashie:
|
20
|
-
group:
|
21
|
-
- :default
|
22
|
-
version: ">= 0"
|
23
|
-
rspec:
|
24
|
-
group:
|
25
|
-
- :test
|
26
|
-
version: ">= 0"
|
27
|
-
rack:
|
28
|
-
group:
|
29
|
-
- :test
|
30
|
-
version: ">= 0"
|
31
|
-
rack-test:
|
32
|
-
group:
|
33
|
-
- :test
|
34
|
-
version: ">= 0"
|
35
|
-
tilt:
|
36
|
-
group:
|
37
|
-
- :default
|
38
|
-
version: ">= 0"
|
39
|
-
specs:
|
40
|
-
- rake:
|
41
|
-
version: 0.8.7
|
42
|
-
- ZenTest:
|
43
|
-
version: 4.3.1
|
44
|
-
- tilt:
|
45
|
-
version: "0.9"
|
46
|
-
source: 1
|
47
|
-
- any_view:
|
48
|
-
version: 0.2.0pre
|
49
|
-
source: 0
|
50
|
-
- haml:
|
51
|
-
version: 2.2.24
|
52
|
-
- hashie:
|
53
|
-
version: 0.2.0
|
54
|
-
- rack:
|
55
|
-
version: 1.1.0
|
56
|
-
- rack-test:
|
57
|
-
version: 0.5.3
|
58
|
-
- rspec:
|
59
|
-
version: 1.3.0
|
60
|
-
hash: 418544cd843b148c4469663f63faf3628ffce373
|
61
|
-
sources:
|
62
|
-
- Git:
|
63
|
-
uri: git://github.com/hassox/any_view.git
|
64
|
-
git: git://github.com/hassox/any_view.git
|
65
|
-
ref: e1db4990883427eb634ae824ef95928f4ca51415
|
66
|
-
- Git:
|
67
|
-
uri: git://github.com/hassox/tilt.git
|
68
|
-
branch: :hassox
|
69
|
-
git: git://github.com/hassox/tilt.git
|
70
|
-
ref: 8c652c803c1a62ec9854e1c320bee58c40546349
|
71
|
-
- Rubygems:
|
72
|
-
uri: http://gemcutter.org
|