serve 0.9.8 → 0.9.9
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/History.txt +4 -0
- data/Manifest.txt +4 -0
- data/lib/serve/handlers/dynamic_handler.rb +36 -12
- data/lib/serve/version.rb +1 -1
- data/test_project/erb/_footer.html.erb +2 -0
- data/test_project/erb/_layout.html.erb +20 -2
- data/test_project/erb/index.html.erb +6 -1
- data/test_project/haml/_footer.haml +2 -0
- data/test_project/haml/_layout.haml +20 -0
- data/test_project/haml/index.haml +9 -0
- metadata +6 -2
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
@@ -34,7 +34,11 @@ tasks/undefine.rake
|
|
34
34
|
tasks/website.rake
|
35
35
|
test_project/_layout.haml
|
36
36
|
test_project/erb/_layout.html.erb
|
37
|
+
test_project/erb/_footer.html.erb
|
37
38
|
test_project/erb/index.html.erb
|
39
|
+
test_project/haml/_footer.haml
|
40
|
+
test_project/haml/_layout.haml
|
41
|
+
test_project/haml/index.haml
|
38
42
|
test_project/test.haml
|
39
43
|
test_project/test.html.erb
|
40
44
|
test_project/view_helpers.rb
|
@@ -33,30 +33,31 @@ module Serve #:nodoc:
|
|
33
33
|
root = Dir.pwd
|
34
34
|
path = filename[root.size..-1]
|
35
35
|
layout = nil
|
36
|
-
|
37
36
|
until layout or path == "/"
|
38
37
|
path = File.dirname(path)
|
39
|
-
|
40
|
-
possible_layouts = ['_layout.haml', '_layout.html.erb'].map do |l|
|
38
|
+
possible_layouts = ['_layout.haml', '_layout.html.haml', '_layout.erb', '_layout.html.erb'].map do |l|
|
41
39
|
possible_layout = File.join(root, path, l)
|
42
40
|
File.file?(possible_layout) ? possible_layout : false
|
43
41
|
end
|
44
|
-
|
45
|
-
|
46
|
-
end
|
47
|
-
|
42
|
+
layout = possible_layouts.detect { |o| o }
|
43
|
+
end
|
48
44
|
layout
|
49
45
|
end
|
50
46
|
|
51
47
|
module ERB #:nodoc:
|
52
48
|
class Engine #:nodoc:
|
53
49
|
def initialize(string, options = {})
|
54
|
-
@erb = ::ERB.new(string, nil, '-')
|
50
|
+
@erb = ::ERB.new(string, nil, '-', '@erbout')
|
55
51
|
@erb.filename = options[:filename]
|
56
52
|
end
|
57
53
|
|
58
54
|
def render(context, &block)
|
59
|
-
|
55
|
+
# we have to keep track of the old erbout variable for nested renders
|
56
|
+
# because ERB#result will set it to an empty string before it renders
|
57
|
+
old_erbout = context.instance_variable_get('@erbout')
|
58
|
+
result = @erb.result(context.instance_eval { binding })
|
59
|
+
context.instance_variable_set('@erbout', old_erbout)
|
60
|
+
result
|
60
61
|
end
|
61
62
|
end
|
62
63
|
end
|
@@ -100,10 +101,33 @@ module Serve #:nodoc:
|
|
100
101
|
@content = ''
|
101
102
|
end
|
102
103
|
|
104
|
+
def _erbout
|
105
|
+
@erbout
|
106
|
+
end
|
107
|
+
|
108
|
+
# This is extracted from Rails
|
109
|
+
def capture_erb(&block)
|
110
|
+
buffer = _erbout
|
111
|
+
pos = buffer.length
|
112
|
+
block.call
|
113
|
+
|
114
|
+
# extract the block
|
115
|
+
data = buffer[pos..-1]
|
116
|
+
|
117
|
+
# replace it in the original with empty string
|
118
|
+
buffer[pos..-1] = ''
|
119
|
+
|
120
|
+
data
|
121
|
+
end
|
122
|
+
|
103
123
|
# Content_for methods
|
104
124
|
|
105
125
|
def content_for(symbol, &block)
|
106
|
-
|
126
|
+
if @haml_buffer
|
127
|
+
set_content_for(symbol, capture_haml(&block))
|
128
|
+
else
|
129
|
+
set_content_for(symbol, capture_erb(&block))
|
130
|
+
end
|
107
131
|
end
|
108
132
|
|
109
133
|
def content_for?(symbol)
|
@@ -121,9 +145,9 @@ module Serve #:nodoc:
|
|
121
145
|
def set_content_for(symbol, value)
|
122
146
|
instance_variable_set("@content_for_#{symbol}", value)
|
123
147
|
end
|
124
|
-
|
148
|
+
|
125
149
|
# Render methods
|
126
|
-
|
150
|
+
|
127
151
|
def render(options)
|
128
152
|
partial = options.delete(:partial)
|
129
153
|
template = options.delete(:template)
|
data/lib/serve/version.rb
CHANGED
@@ -2,9 +2,27 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title><%= @title %></title>
|
5
|
+
<style type="text/css">
|
6
|
+
#content {
|
7
|
+
float: left;
|
8
|
+
width: 70%;
|
9
|
+
}
|
10
|
+
#sidebar {
|
11
|
+
float: right;
|
12
|
+
width: 28%;
|
13
|
+
}
|
14
|
+
</style>
|
5
15
|
</head>
|
6
16
|
<body>
|
7
|
-
<
|
8
|
-
|
17
|
+
<div id="content">
|
18
|
+
<h1><%= @title %></h1>
|
19
|
+
<%= yield %>
|
20
|
+
</div>
|
21
|
+
<% if content_for?(:sidebar) %>
|
22
|
+
<div id="sidebar">
|
23
|
+
<%= yield :sidebar %>
|
24
|
+
</div>
|
25
|
+
<% end %>
|
26
|
+
<%= render :partial => "footer" %>
|
9
27
|
</body>
|
10
28
|
</html>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
!!! Strict
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title= @title
|
5
|
+
%style{:type=>"text/css"}
|
6
|
+
:sass
|
7
|
+
#content
|
8
|
+
float: left
|
9
|
+
width: 70%
|
10
|
+
#sidebar
|
11
|
+
float: right
|
12
|
+
width: 28%
|
13
|
+
%body
|
14
|
+
#content
|
15
|
+
%h1= @title
|
16
|
+
= yield
|
17
|
+
- if content_for?(:sidebar)
|
18
|
+
#sidebar
|
19
|
+
= yield :sidebar
|
20
|
+
= render :partial => "footer"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serve
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John W. Long
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
qXI=
|
31
31
|
-----END CERTIFICATE-----
|
32
32
|
|
33
|
-
date: 2008-
|
33
|
+
date: 2008-09-19 00:00:00 -04:00
|
34
34
|
default_executable:
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
@@ -91,7 +91,11 @@ files:
|
|
91
91
|
- tasks/website.rake
|
92
92
|
- test_project/_layout.haml
|
93
93
|
- test_project/erb/_layout.html.erb
|
94
|
+
- test_project/erb/_footer.html.erb
|
94
95
|
- test_project/erb/index.html.erb
|
96
|
+
- test_project/haml/_footer.haml
|
97
|
+
- test_project/haml/_layout.haml
|
98
|
+
- test_project/haml/index.haml
|
95
99
|
- test_project/test.haml
|
96
100
|
- test_project/test.html.erb
|
97
101
|
- test_project/view_helpers.rb
|
metadata.gz.sig
CHANGED
Binary file
|