Capcode 0.7.1 → 0.8.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.
- data/README +10 -0
- data/doc/rdoc/classes/Capcode.html +322 -296
- data/doc/rdoc/classes/Capcode/Helpers.html +59 -59
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/README.html +28 -1
- data/doc/rdoc/files/lib/capcode_rb.html +2 -1
- data/examples/sample.rb +3 -3
- data/examples/{index.html → static/index.html} +0 -0
- data/lib/capcode.rb +60 -75
- data/lib/capcode/render/erb.rb +2 -2
- data/lib/capcode/render/haml.rb +3 -3
- data/lib/capcode/render/sass.rb +32 -0
- data/lib/capcode/render/static.rb +8 -0
- data/lib/capcode/render/text.rb +1 -1
- data/lib/capcode/version.rb +1 -1
- metadata +5 -3
data/README
CHANGED
@@ -10,6 +10,16 @@ Capcode is a web microframework
|
|
10
10
|
|
11
11
|
== FEATURES/PROBLEMS:
|
12
12
|
|
13
|
+
=== 0.8.0
|
14
|
+
* Bugs corrections in haml and text renderer
|
15
|
+
* Text renderer is now automaticaly included
|
16
|
+
* Add sass renderer
|
17
|
+
* :working_directory is no more available
|
18
|
+
* :root is now the real root directory
|
19
|
+
* Add :static option to set the directory for static files
|
20
|
+
* Add -r and -s (for root and static directories) options
|
21
|
+
* Add static renderer
|
22
|
+
|
13
23
|
=== 0.7.1
|
14
24
|
* You need to include Capcode::Resource in your models !!!!
|
15
25
|
* Add option --version
|
@@ -130,130 +130,130 @@ If the regexp in the route does not match, all arguments will be
|
|
130
130
|
<p class="source-link">[ <a href="javascript:toggleSource('M000001_source')" id="l_M000001_source">show source</a> ]</p>
|
131
131
|
<div id="M000001_source" class="dyn-source">
|
132
132
|
<pre>
|
133
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
133
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 202</span>
|
134
|
+
202: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Route</span> <span class="ruby-operator">*</span><span class="ruby-identifier">u</span>
|
135
|
+
203: <span class="ruby-constant">Class</span>.<span class="ruby-identifier">new</span> {
|
136
|
+
204: <span class="ruby-identifier">meta_def</span>(<span class="ruby-identifier">:__urls__</span>){
|
137
|
+
205: <span class="ruby-comment cmt"># < Route '/hello/world/([^\/]*)/id(\d*)', '/hello/(.*)'</span>
|
138
|
+
206: <span class="ruby-comment cmt"># # => [ {'/hello/world' => '([^\/]*)/id(\d*)', '/hello' => '(.*)'}, 2, <Capcode::Klass> ]</span>
|
139
|
+
207: <span class="ruby-identifier">h</span> = {}
|
140
|
+
208: <span class="ruby-identifier">max</span> = <span class="ruby-value">0</span>
|
141
|
+
209: <span class="ruby-identifier">u</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">_u</span><span class="ruby-operator">|</span>
|
142
|
+
210: <span class="ruby-identifier">m</span> = <span class="ruby-regexp re">/\/([^\/]*\(.*)/</span>.<span class="ruby-identifier">match</span>( <span class="ruby-identifier">_u</span> )
|
143
|
+
211: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">nil?</span>
|
144
|
+
212: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RouteError</span>, <span class="ruby-node">"Route `#{_u}' already defined with regexp `#{h[_u]}' !"</span>, <span class="ruby-identifier">caller</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">_u</span>)
|
145
|
+
213: <span class="ruby-identifier">h</span>[<span class="ruby-identifier">_u</span>] = <span class="ruby-value str">''</span>
|
146
|
+
214: <span class="ruby-keyword kw">else</span>
|
147
|
+
215: <span class="ruby-identifier">_pre</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">pre_match</span>
|
148
|
+
216: <span class="ruby-identifier">_pre</span> = <span class="ruby-value str">"/"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">_pre</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
149
|
+
217: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RouteError</span>, <span class="ruby-node">"Route `#{_pre}' already defined with regexp `#{h[_pre]}' !"</span>, <span class="ruby-identifier">caller</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">_pre</span>)
|
150
|
+
218: <span class="ruby-identifier">h</span>[<span class="ruby-identifier">_pre</span>] = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">0</span>]
|
151
|
+
219: <span class="ruby-identifier">max</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">m</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">0</span>]).<span class="ruby-identifier">number_of_captures</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator"><</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">m</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">0</span>]).<span class="ruby-identifier">number_of_captures</span>
|
152
|
+
220: <span class="ruby-keyword kw">end</span>
|
153
|
+
221: <span class="ruby-keyword kw">end</span>
|
154
|
+
222: [<span class="ruby-identifier">h</span>, <span class="ruby-identifier">max</span>, <span class="ruby-keyword kw">self</span>]
|
155
|
+
223: }
|
156
|
+
224:
|
157
|
+
225: <span class="ruby-comment cmt"># Hash containing all the request parameters (GET or POST)</span>
|
158
|
+
226: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">params</span>
|
159
|
+
227: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
|
160
|
+
228: <span class="ruby-keyword kw">end</span>
|
161
|
+
229:
|
162
|
+
230: <span class="ruby-comment cmt"># Hash containing all the environment variables</span>
|
163
|
+
231: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env</span>
|
164
|
+
232: <span class="ruby-ivar">@env</span>
|
165
|
+
233: <span class="ruby-keyword kw">end</span>
|
166
|
+
234:
|
167
|
+
235: <span class="ruby-comment cmt"># Hash session</span>
|
168
|
+
236: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">session</span>
|
169
|
+
237: <span class="ruby-ivar">@env</span>[<span class="ruby-value str">'rack.session'</span>]
|
170
|
+
238: <span class="ruby-keyword kw">end</span>
|
171
|
+
239:
|
172
|
+
240: <span class="ruby-comment cmt"># Return the Rack::Request object</span>
|
173
|
+
241: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request</span>
|
174
|
+
242: <span class="ruby-ivar">@request</span>
|
175
|
+
243: <span class="ruby-keyword kw">end</span>
|
176
|
+
244:
|
177
|
+
245: <span class="ruby-comment cmt"># Return the Rack::Response object</span>
|
178
|
+
246: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">response</span>
|
179
|
+
247: <span class="ruby-ivar">@response</span>
|
180
|
+
248: <span class="ruby-keyword kw">end</span>
|
181
|
+
249:
|
182
|
+
250: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">call</span>( <span class="ruby-identifier">e</span> ) <span class="ruby-comment cmt">#:nodoc:</span>
|
183
|
+
251: <span class="ruby-ivar">@env</span> = <span class="ruby-identifier">e</span>
|
184
|
+
252: <span class="ruby-ivar">@response</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Response</span>.<span class="ruby-identifier">new</span>
|
185
|
+
253: <span class="ruby-ivar">@request</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Request</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@env</span>)
|
186
|
+
254:
|
187
|
+
255: <span class="ruby-comment cmt"># __k = self.class.to_s.split( /::/ )[-1].downcase.to_sym</span>
|
188
|
+
256: <span class="ruby-comment cmt"># @@__FILTERS.each do |f|</span>
|
189
|
+
257: <span class="ruby-comment cmt"># proc = f.delete(:action)</span>
|
190
|
+
258: <span class="ruby-comment cmt"># __run = true</span>
|
191
|
+
259: <span class="ruby-comment cmt"># if f[:only]</span>
|
192
|
+
260: <span class="ruby-comment cmt"># __run = f[:only].include?(__k)</span>
|
193
|
+
261: <span class="ruby-comment cmt"># end</span>
|
194
|
+
262: <span class="ruby-comment cmt"># if f[:except]</span>
|
195
|
+
263: <span class="ruby-comment cmt"># __run = !f[:except].include?(__k)</span>
|
196
|
+
264: <span class="ruby-comment cmt"># end</span>
|
197
|
+
265: <span class="ruby-comment cmt"># </span>
|
198
|
+
266: <span class="ruby-comment cmt"># # proc.call(self) if __run</span>
|
199
|
+
267: <span class="ruby-comment cmt"># puts "call #{proc} for #{__k}"</span>
|
200
|
+
268: <span class="ruby-comment cmt"># end</span>
|
201
|
+
269:
|
202
|
+
270: <span class="ruby-identifier">r</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@env</span>[<span class="ruby-value str">"REQUEST_METHOD"</span>]
|
203
|
+
271: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"GET"</span>
|
204
|
+
272: <span class="ruby-identifier">finalPath</span> = <span class="ruby-keyword kw">nil</span>
|
205
|
+
273: <span class="ruby-identifier">finalArgs</span> = <span class="ruby-keyword kw">nil</span>
|
206
|
+
274: <span class="ruby-identifier">finalNArgs</span> = <span class="ruby-keyword kw">nil</span>
|
207
|
+
275:
|
208
|
+
276: <span class="ruby-identifier">aPath</span> = <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">path</span>.<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/^\//</span>, <span class="ruby-value str">""</span> ).<span class="ruby-identifier">split</span>( <span class="ruby-value str">"/"</span> )
|
209
|
+
277: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">__urls__</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span>, <span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
|
210
|
+
278: <span class="ruby-identifier">xPath</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/^\//</span>, <span class="ruby-value str">""</span> ).<span class="ruby-identifier">split</span>( <span class="ruby-value str">"/"</span> )
|
211
|
+
279: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">xPath</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">aPath</span>).<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
212
|
+
280: <span class="ruby-identifier">diffArgs</span> = <span class="ruby-identifier">aPath</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">xPath</span>
|
213
|
+
281: <span class="ruby-identifier">diffNArgs</span> = <span class="ruby-identifier">diffArgs</span>.<span class="ruby-identifier">size</span>
|
214
|
+
282: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">finalNArgs</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">finalNArgs</span> <span class="ruby-operator">></span> <span class="ruby-identifier">diffNArgs</span>
|
215
|
+
283: <span class="ruby-identifier">finalPath</span> = <span class="ruby-identifier">p</span>
|
216
|
+
284: <span class="ruby-identifier">finalNArgs</span> = <span class="ruby-identifier">diffNArgs</span>
|
217
|
+
285: <span class="ruby-identifier">finalArgs</span> = <span class="ruby-identifier">diffArgs</span>
|
218
|
+
286: <span class="ruby-keyword kw">end</span>
|
219
|
+
287: <span class="ruby-keyword kw">end</span>
|
220
|
+
288:
|
221
|
+
289: <span class="ruby-keyword kw">end</span>
|
222
|
+
290:
|
223
|
+
291: <span class="ruby-identifier">nargs</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">__urls__</span>[<span class="ruby-value">1</span>]
|
224
|
+
292: <span class="ruby-identifier">regexp</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>( <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">__urls__</span>[<span class="ruby-value">0</span>][<span class="ruby-identifier">finalPath</span>] )
|
225
|
+
293: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">regexp</span>.<span class="ruby-identifier">match</span>( <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Utils</span>.<span class="ruby-identifier">unescape</span>(<span class="ruby-ivar">@request</span>.<span class="ruby-identifier">path</span>).<span class="ruby-identifier">gsub</span>( <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>( <span class="ruby-node">"^#{finalPath}"</span> ), <span class="ruby-value str">""</span> ).<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/^\//</span>, <span class="ruby-value str">""</span> ) )
|
226
|
+
294: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">nil?</span>
|
227
|
+
295: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">ParameterError</span>, <span class="ruby-node">"Path info `#{@request.path_info}' does not match route regexp `#{regexp.source}'"</span>
|
228
|
+
296: <span class="ruby-keyword kw">else</span>
|
229
|
+
297: <span class="ruby-identifier">args</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">captures</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> (<span class="ruby-identifier">x</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>)<span class="ruby-operator">?</span><span class="ruby-keyword kw">nil</span><span class="ruby-operator">:</span><span class="ruby-identifier">x</span> }
|
230
|
+
298: <span class="ruby-keyword kw">end</span>
|
231
|
+
299:
|
232
|
+
300: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">nargs</span>
|
233
|
+
301: <span class="ruby-identifier">args</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">nil</span>
|
234
|
+
302: <span class="ruby-keyword kw">end</span>
|
235
|
+
303:
|
236
|
+
304: <span class="ruby-identifier">get</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">args</span> )
|
237
|
+
305: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"POST"</span>
|
238
|
+
306: <span class="ruby-identifier">post</span>
|
239
|
+
307: <span class="ruby-keyword kw">end</span>
|
240
|
+
308: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:to_ary</span>)
|
241
|
+
309: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">r</span>[<span class="ruby-value">0</span>]
|
242
|
+
310: <span class="ruby-identifier">r</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
|
243
|
+
311: <span class="ruby-ivar">@response</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
|
244
|
+
312: <span class="ruby-keyword kw">end</span>
|
245
|
+
313: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">body</span> = <span class="ruby-identifier">r</span>[<span class="ruby-value">2</span>]
|
246
|
+
314: <span class="ruby-keyword kw">else</span>
|
247
|
+
315: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">r</span>
|
248
|
+
316: <span class="ruby-keyword kw">end</span>
|
249
|
+
317:
|
250
|
+
318: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">finish</span>
|
251
|
+
319: <span class="ruby-keyword kw">end</span>
|
252
|
+
320:
|
253
|
+
321: <span class="ruby-identifier">include</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Helpers</span>
|
254
|
+
322: <span class="ruby-identifier">include</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Views</span>
|
255
|
+
323: }
|
256
|
+
324: <span class="ruby-keyword kw">end</span>
|
257
257
|
</pre>
|
258
258
|
</div>
|
259
259
|
</div>
|
@@ -268,10 +268,10 @@ Hash containing all the environment variables
|
|
268
268
|
<p class="source-link">[ <a href="javascript:toggleSource('M000003_source')" id="l_M000003_source">show source</a> ]</p>
|
269
269
|
<div id="M000003_source" class="dyn-source">
|
270
270
|
<pre>
|
271
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
272
|
-
|
273
|
-
|
274
|
-
|
271
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 231</span>
|
272
|
+
231: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env</span>
|
273
|
+
232: <span class="ruby-ivar">@env</span>
|
274
|
+
233: <span class="ruby-keyword kw">end</span>
|
275
275
|
</pre>
|
276
276
|
</div>
|
277
277
|
</div>
|
@@ -292,10 +292,10 @@ Rack or What you want Helper
|
|
292
292
|
<p class="source-link">[ <a href="javascript:toggleSource('M000007_source')" id="l_M000007_source">show source</a> ]</p>
|
293
293
|
<div id="M000007_source" class="dyn-source">
|
294
294
|
<pre>
|
295
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
296
|
-
|
297
|
-
|
298
|
-
|
295
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 331</span>
|
296
|
+
331: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">map</span>( <span class="ruby-identifier">r</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span> )
|
297
|
+
332: <span class="ruby-ivar">@@__ROUTES</span>[<span class="ruby-identifier">r</span>] = <span class="ruby-keyword kw">yield</span>
|
298
|
+
333: <span class="ruby-keyword kw">end</span>
|
299
299
|
</pre>
|
300
300
|
</div>
|
301
301
|
</div>
|
@@ -311,10 +311,10 @@ parameters (GET or POST)
|
|
311
311
|
<p class="source-link">[ <a href="javascript:toggleSource('M000002_source')" id="l_M000002_source">show source</a> ]</p>
|
312
312
|
<div id="M000002_source" class="dyn-source">
|
313
313
|
<pre>
|
314
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
315
|
-
|
316
|
-
|
317
|
-
|
314
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 226</span>
|
315
|
+
226: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">params</span>
|
316
|
+
227: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
|
317
|
+
228: <span class="ruby-keyword kw">end</span>
|
318
318
|
</pre>
|
319
319
|
</div>
|
320
320
|
</div>
|
@@ -329,10 +329,10 @@ Return the Rack::Request object
|
|
329
329
|
<p class="source-link">[ <a href="javascript:toggleSource('M000005_source')" id="l_M000005_source">show source</a> ]</p>
|
330
330
|
<div id="M000005_source" class="dyn-source">
|
331
331
|
<pre>
|
332
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
333
|
-
|
334
|
-
|
335
|
-
|
332
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 241</span>
|
333
|
+
241: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request</span>
|
334
|
+
242: <span class="ruby-ivar">@request</span>
|
335
|
+
243: <span class="ruby-keyword kw">end</span>
|
336
336
|
</pre>
|
337
337
|
</div>
|
338
338
|
</div>
|
@@ -347,10 +347,10 @@ Return the Rack::Response object
|
|
347
347
|
<p class="source-link">[ <a href="javascript:toggleSource('M000006_source')" id="l_M000006_source">show source</a> ]</p>
|
348
348
|
<div id="M000006_source" class="dyn-source">
|
349
349
|
<pre>
|
350
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
351
|
-
|
352
|
-
|
353
|
-
|
350
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 246</span>
|
351
|
+
246: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">response</span>
|
352
|
+
247: <span class="ruby-ivar">@response</span>
|
353
|
+
248: <span class="ruby-keyword kw">end</span>
|
354
354
|
</pre>
|
355
355
|
</div>
|
356
356
|
</div>
|
@@ -389,12 +389,12 @@ See Rack::Session for more informations
|
|
389
389
|
<li><tt>:db_config</tt> = database configuration file (default: database.yml)
|
390
390
|
|
391
391
|
</li>
|
392
|
-
<li><tt>:
|
393
|
-
|
392
|
+
<li><tt>:static</tt> = Static directory (default: none — relative to the
|
393
|
+
working directory)
|
394
394
|
|
395
395
|
</li>
|
396
|
-
<li><tt>:
|
397
|
-
|
396
|
+
<li><tt>:root</tt> = Root directory (default: directory of the main.rb) —
|
397
|
+
This is also the working directory !
|
398
398
|
|
399
399
|
</li>
|
400
400
|
</ul>
|
@@ -403,151 +403,177 @@ main.rb)
|
|
403
403
|
<p class="source-link">[ <a href="javascript:toggleSource('M000008_source')" id="l_M000008_source">show source</a> ]</p>
|
404
404
|
<div id="M000008_source" class="dyn-source">
|
405
405
|
<pre>
|
406
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
406
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 348</span>
|
407
|
+
348: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>( <span class="ruby-identifier">args</span> = {} )
|
408
|
+
349: <span class="ruby-identifier">__VERBOSE</span> = <span class="ruby-keyword kw">false</span>
|
409
|
+
350:
|
410
|
+
351: <span class="ruby-identifier">conf</span> = {
|
411
|
+
352: <span class="ruby-identifier">:port</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:port</span>]<span class="ruby-operator">||</span><span class="ruby-value">3000</span>,
|
412
|
+
353: <span class="ruby-identifier">:host</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:host</span>]<span class="ruby-operator">||</span><span class="ruby-value str">"localhost"</span>,
|
413
|
+
354: <span class="ruby-identifier">:server</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:server</span>]<span class="ruby-operator">||</span><span class="ruby-keyword kw">nil</span>,
|
414
|
+
355: <span class="ruby-identifier">:log</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:log</span>]<span class="ruby-operator">||</span><span class="ruby-identifier">$stdout</span>,
|
415
|
+
356: <span class="ruby-identifier">:session</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:session</span>]<span class="ruby-operator">||</span>{},
|
416
|
+
357: <span class="ruby-identifier">:pid</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:pid</span>]<span class="ruby-operator">||</span><span class="ruby-node">"#{$0}.pid"</span>,
|
417
|
+
358: <span class="ruby-identifier">:daemonize</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:daemonize</span>]<span class="ruby-operator">||</span><span class="ruby-keyword kw">false</span>,
|
418
|
+
359: <span class="ruby-identifier">:db_config</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:db_config</span>]<span class="ruby-operator">||</span><span class="ruby-value str">"database.yml"</span>,
|
419
|
+
360: <span class="ruby-identifier">:static</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:static</span>]<span class="ruby-operator">||</span><span class="ruby-keyword kw">nil</span>,
|
420
|
+
361: <span class="ruby-identifier">:root</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">args</span>[<span class="ruby-identifier">:root</span>]<span class="ruby-operator">||</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">$0</span>)),
|
421
|
+
362:
|
422
|
+
363: <span class="ruby-identifier">:console</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">false</span>
|
423
|
+
364: }
|
424
|
+
365:
|
425
|
+
366: <span class="ruby-comment cmt"># Parse options</span>
|
426
|
+
367: <span class="ruby-identifier">opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">opts</span><span class="ruby-operator">|</span>
|
427
|
+
368: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">"Usage: #{File.basename($0)} [options]"</span>
|
428
|
+
369: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">""</span>
|
429
|
+
370: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">"Specific options:"</span>
|
430
|
+
371:
|
431
|
+
372: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>( <span class="ruby-value str">"-C"</span>, <span class="ruby-value str">"--console"</span>, <span class="ruby-value str">"Run in console mode with IRB (default: false)"</span> ) {
|
432
|
+
373: <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:console</span>] = <span class="ruby-keyword kw">true</span>
|
433
|
+
374: }
|
434
|
+
375: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>( <span class="ruby-value str">"-h"</span>, <span class="ruby-value str">"--host HOSTNAME"</span>, <span class="ruby-node">"Host for web server to bind to (default: #{conf[:host]})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span><span class="ruby-operator">|</span>
|
435
|
+
376: <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:host</span>] = <span class="ruby-identifier">h</span>
|
436
|
+
377: }
|
437
|
+
378: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>( <span class="ruby-value str">"-p"</span>, <span class="ruby-value str">"--port NUM"</span>, <span class="ruby-node">"Port for web server (default: #{conf[:port]})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
|
438
|
+
379: <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:port</span>] = <span class="ruby-identifier">p</span>
|
439
|
+
380: }
|
440
|
+
381: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>( <span class="ruby-value str">"-d"</span>, <span class="ruby-value str">"--daemonize [true|false]"</span>, <span class="ruby-node">"Daemonize (default: #{conf[:daemonize]})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
|
441
|
+
382: <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:daemonize</span>] = <span class="ruby-identifier">d</span>
|
442
|
+
383: }
|
443
|
+
384: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>( <span class="ruby-value str">"-r"</span>, <span class="ruby-value str">"--root PATH"</span>, <span class="ruby-node">"Working directory (default: #{conf[:root]})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">w</span><span class="ruby-operator">|</span>
|
444
|
+
385: <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:root</span>] = <span class="ruby-identifier">w</span>
|
445
|
+
386: }
|
446
|
+
387: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>( <span class="ruby-value str">"-s"</span>, <span class="ruby-value str">"--static PATH"</span>, <span class="ruby-node">"Static directory -- relative to the root directory (default: #{conf[:static]})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
|
447
|
+
388: <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:static</span>] = <span class="ruby-identifier">r</span>
|
448
|
+
389: }
|
449
|
+
390:
|
450
|
+
391: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">""</span>
|
451
|
+
392: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">"Common options:"</span>
|
452
|
+
393:
|
453
|
+
394: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">"-?"</span>, <span class="ruby-value str">"--help"</span>, <span class="ruby-value str">"Show this message"</span>) <span class="ruby-keyword kw">do</span>
|
454
|
+
395: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>
|
455
|
+
396: <span class="ruby-identifier">exit</span>
|
456
|
+
397: <span class="ruby-keyword kw">end</span>
|
457
|
+
398: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">"-v"</span>, <span class="ruby-value str">"--version"</span>, <span class="ruby-value str">"Show versions"</span>) <span class="ruby-keyword kw">do</span>
|
458
|
+
399: <span class="ruby-identifier">puts</span> <span class="ruby-node">"Capcode version #{Capcode::CAPCOD_VERION} (ruby v#{RUBY_VERSION})"</span>
|
459
|
+
400: <span class="ruby-identifier">exit</span>
|
460
|
+
401: <span class="ruby-keyword kw">end</span>
|
461
|
+
402: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on_tail</span>( <span class="ruby-value str">"-V"</span>, <span class="ruby-value str">"--verbose"</span>, <span class="ruby-value str">"Run in verbose mode"</span> ) <span class="ruby-keyword kw">do</span>
|
462
|
+
403: <span class="ruby-identifier">__VERBOSE</span> = <span class="ruby-keyword kw">true</span>
|
463
|
+
404: <span class="ruby-keyword kw">end</span>
|
464
|
+
405: <span class="ruby-keyword kw">end</span>
|
465
|
+
406:
|
466
|
+
407: <span class="ruby-keyword kw">begin</span>
|
467
|
+
408: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse!</span> <span class="ruby-constant">ARGV</span>
|
468
|
+
409: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OptionParser</span><span class="ruby-operator">::</span><span class="ruby-constant">ParseError</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">ex</span>
|
469
|
+
410: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"!! #{ex.message}"</span>
|
470
|
+
411: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** use `#{File.basename($0)} --help` for more details..."</span>
|
471
|
+
412: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
|
472
|
+
413: <span class="ruby-keyword kw">end</span>
|
473
|
+
414:
|
474
|
+
415: <span class="ruby-comment cmt"># Run in the Working directory</span>
|
475
|
+
416: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Go on root directory (#{File.expand_path(conf[:root])})"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">__VERBOSE</span>
|
476
|
+
417: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span>( <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:root</span>] ) <span class="ruby-keyword kw">do</span>
|
477
|
+
418:
|
478
|
+
419: <span class="ruby-comment cmt"># Check that mongrel exists </span>
|
479
|
+
420: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">"mongrel"</span>
|
480
|
+
421: <span class="ruby-keyword kw">begin</span>
|
481
|
+
422: <span class="ruby-identifier">require</span> <span class="ruby-value str">'mongrel'</span>
|
482
|
+
423: <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>] = <span class="ruby-value str">"mongrel"</span>
|
483
|
+
424: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">LoadError</span>
|
484
|
+
425: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"!! could not load mongrel. Falling back to webrick."</span>
|
485
|
+
426: <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>] = <span class="ruby-value str">"webrick"</span>
|
486
|
+
427: <span class="ruby-keyword kw">end</span>
|
487
|
+
428: <span class="ruby-keyword kw">end</span>
|
488
|
+
429:
|
489
|
+
430: <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">constants</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
|
490
|
+
431: <span class="ruby-keyword kw">begin</span>
|
491
|
+
432: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">eval</span> <span class="ruby-node">"Capcode::#{k}.public_methods(true).include?( '__urls__' )"</span>
|
492
|
+
433: <span class="ruby-identifier">u</span>, <span class="ruby-identifier">m</span>, <span class="ruby-identifier">c</span> = <span class="ruby-identifier">eval</span> <span class="ruby-node">"Capcode::#{k}.__urls__"</span>
|
493
|
+
434: <span class="ruby-identifier">u</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">_u</span><span class="ruby-operator">|</span>
|
494
|
+
435: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">RouteError</span>, <span class="ruby-node">"Route `#{_u}' already define !"</span>, <span class="ruby-identifier">caller</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@@__ROUTES</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">_u</span>)
|
495
|
+
436: <span class="ruby-ivar">@@__ROUTES</span>[<span class="ruby-identifier">_u</span>] = <span class="ruby-identifier">c</span>.<span class="ruby-identifier">new</span>
|
496
|
+
437: <span class="ruby-keyword kw">end</span>
|
497
|
+
438: <span class="ruby-keyword kw">end</span>
|
498
|
+
439: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
499
|
+
440: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
|
500
|
+
441: <span class="ruby-keyword kw">end</span>
|
501
|
+
442: <span class="ruby-keyword kw">end</span>
|
502
|
+
443:
|
503
|
+
444: <span class="ruby-comment cmt"># Set Static directory</span>
|
504
|
+
445: <span class="ruby-ivar">@@__STATIC_DIR</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">"/"</span>, <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:static</span>]))
|
505
|
+
446:
|
506
|
+
447: <span class="ruby-comment cmt"># Initialize Rack App</span>
|
507
|
+
448: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"** Map routes."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">__VERBOSE</span>
|
508
|
+
449: <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">URLMap</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@@__ROUTES</span>)
|
509
|
+
450: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Initialize static directory (#{conf[:static]})"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">__VERBOSE</span>
|
510
|
+
451: <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Static</span>.<span class="ruby-identifier">new</span>(
|
511
|
+
452: <span class="ruby-identifier">app</span>,
|
512
|
+
453: <span class="ruby-identifier">:urls</span> =<span class="ruby-operator">></span> [<span class="ruby-ivar">@@__STATIC_DIR</span>],
|
513
|
+
454: <span class="ruby-identifier">:root</span> =<span class="ruby-operator">></span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:root</span>])
|
514
|
+
455: ) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:static</span>].<span class="ruby-identifier">nil?</span>
|
515
|
+
456: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"** Initialize session"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">__VERBOSE</span>
|
516
|
+
457: <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Session</span><span class="ruby-operator">::</span><span class="ruby-constant">Cookie</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">app</span>, <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:session</span>] )
|
517
|
+
458: <span class="ruby-identifier">app</span> = <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app</span>)
|
518
|
+
459: <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">ContentLength</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app</span>)
|
519
|
+
460: <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Lint</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app</span>)
|
520
|
+
461: <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">ShowExceptions</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app</span>)
|
521
|
+
462: <span class="ruby-comment cmt"># app = Rack::Reloader.new(app) ## -- NE RELOAD QUE capcode.rb -- So !!!</span>
|
522
|
+
463: <span class="ruby-identifier">app</span> = <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">CommonLogger</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">app</span>, <span class="ruby-constant">Logger</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:log</span>]) )
|
523
|
+
464:
|
524
|
+
465: <span class="ruby-comment cmt"># From rackup !!!</span>
|
525
|
+
466: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:daemonize</span>]
|
526
|
+
467: <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/java/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-constant">RUBY_PLATFORM</span>).<span class="ruby-identifier">nil?</span>
|
527
|
+
468: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">RUBY_VERSION</span> <span class="ruby-operator"><</span> <span class="ruby-value str">"1.9"</span>
|
528
|
+
469: <span class="ruby-identifier">exit</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fork</span>
|
529
|
+
470: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">setsid</span>
|
530
|
+
471: <span class="ruby-identifier">exit</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fork</span>
|
531
|
+
472: <span class="ruby-comment cmt"># Dir.chdir "/"</span>
|
532
|
+
473: <span class="ruby-constant">File</span>.<span class="ruby-identifier">umask</span> <span class="ruby-value">0000</span>
|
533
|
+
474: <span class="ruby-constant">STDIN</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-value str">"/dev/null"</span>
|
534
|
+
475: <span class="ruby-constant">STDOUT</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-value str">"/dev/null"</span>, <span class="ruby-value str">"a"</span>
|
535
|
+
476: <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-value str">"/dev/null"</span>, <span class="ruby-value str">"a"</span>
|
536
|
+
477: <span class="ruby-keyword kw">else</span>
|
537
|
+
478: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">daemon</span>
|
538
|
+
479: <span class="ruby-keyword kw">end</span>
|
539
|
+
480: <span class="ruby-keyword kw">else</span>
|
540
|
+
481: <span class="ruby-identifier">puts</span> <span class="ruby-node">"!! daemonize option unavailable on #{RUBY_PLATFORM} platform."</span>
|
541
|
+
482: <span class="ruby-keyword kw">end</span>
|
542
|
+
483:
|
543
|
+
484: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:pid</span>], <span class="ruby-value str">'w'</span>){ <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-node">"#{Process.pid}"</span>) }
|
544
|
+
485: <span class="ruby-identifier">at_exit</span> { <span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:pid</span>]) <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:pid</span>]) }
|
545
|
+
486: <span class="ruby-keyword kw">end</span>
|
546
|
+
487:
|
547
|
+
488: <span class="ruby-comment cmt"># Start database</span>
|
548
|
+
489: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">methods</span>.<span class="ruby-identifier">include?</span> <span class="ruby-value str">"db_connect"</span>
|
549
|
+
490: <span class="ruby-identifier">db_connect</span>( <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:db_config</span>], <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:log</span>] )
|
550
|
+
491: <span class="ruby-keyword kw">end</span>
|
551
|
+
492:
|
552
|
+
493: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
553
|
+
494: <span class="ruby-keyword kw">yield</span>( <span class="ruby-keyword kw">self</span> )
|
554
|
+
495: <span class="ruby-keyword kw">end</span>
|
555
|
+
496:
|
556
|
+
497: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:console</span>]
|
557
|
+
498: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"Run console..."</span>
|
558
|
+
499: <span class="ruby-constant">IRB</span>.<span class="ruby-identifier">start</span>
|
559
|
+
500: <span class="ruby-identifier">exit</span>
|
560
|
+
501: <span class="ruby-keyword kw">end</span>
|
561
|
+
502:
|
562
|
+
503: <span class="ruby-comment cmt"># Start server</span>
|
563
|
+
504: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>]
|
564
|
+
505: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"mongrel"</span>
|
565
|
+
506: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting Mongrel on #{conf[:host]}:#{conf[:port]}"</span>
|
566
|
+
507: <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Handler</span><span class="ruby-operator">::</span><span class="ruby-constant">Mongrel</span>.<span class="ruby-identifier">run</span>( <span class="ruby-identifier">app</span>, {<span class="ruby-identifier">:Port</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:port</span>], <span class="ruby-identifier">:Host</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:host</span>]} ) { <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
|
567
|
+
508: <span class="ruby-identifier">trap</span> <span class="ruby-value str">"SIGINT"</span>, <span class="ruby-identifier">proc</span> { <span class="ruby-identifier">server</span>.<span class="ruby-identifier">stop</span> }
|
568
|
+
509: }
|
569
|
+
510: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"webrick"</span>
|
570
|
+
511: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting WEBrick on #{conf[:host]}:#{conf[:port]}"</span>
|
571
|
+
512: <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Handler</span><span class="ruby-operator">::</span><span class="ruby-constant">WEBrick</span>.<span class="ruby-identifier">run</span>( <span class="ruby-identifier">app</span>, {<span class="ruby-identifier">:Port</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:port</span>], <span class="ruby-identifier">:BindAddress</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:host</span>]} ) { <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
|
572
|
+
513: <span class="ruby-identifier">trap</span> <span class="ruby-value str">"SIGINT"</span>, <span class="ruby-identifier">proc</span> { <span class="ruby-identifier">server</span>.<span class="ruby-identifier">shutdown</span> }
|
573
|
+
514: }
|
528
574
|
515: <span class="ruby-keyword kw">end</span>
|
529
|
-
516:
|
530
|
-
517:
|
531
|
-
518: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"Run console..."</span>
|
532
|
-
519: <span class="ruby-constant">IRB</span>.<span class="ruby-identifier">start</span>
|
533
|
-
520: <span class="ruby-identifier">exit</span>
|
534
|
-
521: <span class="ruby-keyword kw">end</span>
|
535
|
-
522:
|
536
|
-
523: <span class="ruby-comment cmt"># Start server</span>
|
537
|
-
524: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:server</span>]
|
538
|
-
525: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"mongrel"</span>
|
539
|
-
526: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting Mongrel on #{conf[:host]}:#{conf[:port]}"</span>
|
540
|
-
527: <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Handler</span><span class="ruby-operator">::</span><span class="ruby-constant">Mongrel</span>.<span class="ruby-identifier">run</span>( <span class="ruby-identifier">app</span>, {<span class="ruby-identifier">:Port</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:port</span>], <span class="ruby-identifier">:Host</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:host</span>]} ) { <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
|
541
|
-
528: <span class="ruby-identifier">trap</span> <span class="ruby-value str">"SIGINT"</span>, <span class="ruby-identifier">proc</span> { <span class="ruby-identifier">server</span>.<span class="ruby-identifier">stop</span> }
|
542
|
-
529: }
|
543
|
-
530: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"webrick"</span>
|
544
|
-
531: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting WEBrick on #{conf[:host]}:#{conf[:port]}"</span>
|
545
|
-
532: <span class="ruby-constant">Rack</span><span class="ruby-operator">::</span><span class="ruby-constant">Handler</span><span class="ruby-operator">::</span><span class="ruby-constant">WEBrick</span>.<span class="ruby-identifier">run</span>( <span class="ruby-identifier">app</span>, {<span class="ruby-identifier">:Port</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:port</span>], <span class="ruby-identifier">:BindAddress</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conf</span>[<span class="ruby-identifier">:host</span>]} ) { <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
|
546
|
-
533: <span class="ruby-identifier">trap</span> <span class="ruby-value str">"SIGINT"</span>, <span class="ruby-identifier">proc</span> { <span class="ruby-identifier">server</span>.<span class="ruby-identifier">shutdown</span> }
|
547
|
-
534: }
|
548
|
-
535: <span class="ruby-keyword kw">end</span>
|
549
|
-
536: <span class="ruby-keyword kw">end</span>
|
550
|
-
537: <span class="ruby-keyword kw">end</span>
|
575
|
+
516: <span class="ruby-keyword kw">end</span>
|
576
|
+
517: <span class="ruby-keyword kw">end</span>
|
551
577
|
</pre>
|
552
578
|
</div>
|
553
579
|
</div>
|
@@ -562,10 +588,10 @@ Hash <a href="Capcode.html#M000004">session</a>
|
|
562
588
|
<p class="source-link">[ <a href="javascript:toggleSource('M000004_source')" id="l_M000004_source">show source</a> ]</p>
|
563
589
|
<div id="M000004_source" class="dyn-source">
|
564
590
|
<pre>
|
565
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
566
|
-
|
567
|
-
|
568
|
-
|
591
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 236</span>
|
592
|
+
236: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">session</span>
|
593
|
+
237: <span class="ruby-ivar">@env</span>[<span class="ruby-value str">'rack.session'</span>]
|
594
|
+
238: <span class="ruby-keyword kw">end</span>
|
569
595
|
</pre>
|
570
596
|
</div>
|
571
597
|
</div>
|