Capcode 0.9.4 → 0.9.5
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.rdoc +4 -0
- data/doc/rdoc/classes/Capcode.html +407 -407
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/README_rdoc.html +10 -1
- data/doc/rdoc/files/lib/capcode_rb.html +1 -2
- data/lib/capcode.rb +0 -2
- data/lib/capcode/version.rb +1 -1
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -12,12 +12,16 @@ Capcode is a web microframework
|
|
12
12
|
|
13
13
|
== FEATURES/PROBLEMS:
|
14
14
|
|
15
|
+
=== 0.9.5
|
16
|
+
* Major bug correction
|
17
|
+
|
15
18
|
=== 0.9.4
|
16
19
|
* You can now create a controler without specifying the root name. If so the name of the class will be used. {see example route.rb}[http://github.com/glejeune/Capcode/tree/master/examples/route.rb].
|
17
20
|
* Major bug correction in Route
|
18
21
|
* render :text => ... now really render text
|
19
22
|
* rXXX methods in HTTPError can now receive a second optional parameter corresponding to headers
|
20
23
|
* Huge bug correction in Capcode::Helpers.URL
|
24
|
+
* Use a custom version of Rack::URLmap
|
21
25
|
|
22
26
|
=== 0.9.3
|
23
27
|
* Major bug correction
|
@@ -220,166 +220,166 @@ If the regexp in the route does not match, all arguments will be
|
|
220
220
|
onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
|
221
221
|
<div class="method-source-code" id="M000001-source">
|
222
222
|
<pre>
|
223
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
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
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
223
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 363</span>
|
224
|
+
363: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Route</span> <span class="ruby-operator">*</span><span class="ruby-identifier">routes_paths</span>
|
225
|
+
364: <span class="ruby-identifier">create_path</span> = <span class="ruby-identifier">routes_paths</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">nil?</span>
|
226
|
+
365: <span class="ruby-constant">Class</span>.<span class="ruby-identifier">new</span> {
|
227
|
+
366: <span class="ruby-identifier">meta_def</span>(<span class="ruby-identifier">:__urls__</span>) {
|
228
|
+
367: <span class="ruby-identifier">routes_paths</span> = [<span class="ruby-value str">'/'</span><span class="ruby-operator">+</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>( <span class="ruby-regexp re">/^Capcode::/</span>, <span class="ruby-value str">""</span> ).<span class="ruby-identifier">underscore</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">create_path</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">true</span>
|
229
|
+
368: <span class="ruby-comment cmt"># < Route '/hello/world/([^\/]*)/id(\d*)', '/hello/(.*)', :agent => /Songbird (\d\.\d)[\d\/]*?/</span>
|
230
|
+
369: <span class="ruby-comment cmt"># # => [ {'/hello/world' => '([^\/]*)/id(\d*)', '/hello' => '(.*)'}, </span>
|
231
|
+
370: <span class="ruby-comment cmt"># 2, </span>
|
232
|
+
371: <span class="ruby-comment cmt"># <Capcode::Klass>, </span>
|
233
|
+
372: <span class="ruby-comment cmt"># {:agent => /Songbird (\d\.\d)[\d\/]*?/} ]</span>
|
234
|
+
373: <span class="ruby-identifier">hash_of_routes</span> = {}
|
235
|
+
374: <span class="ruby-identifier">max_captures_for_routes</span> = <span class="ruby-value">0</span>
|
236
|
+
375: <span class="ruby-identifier">routes_paths</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">current_route_path</span><span class="ruby-operator">|</span>
|
237
|
+
376: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current_route_path</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">String</span>
|
238
|
+
377: <span class="ruby-identifier">m</span> = <span class="ruby-regexp re">/\/([^\/]*\(.*)/</span>.<span class="ruby-identifier">match</span>( <span class="ruby-identifier">current_route_path</span> )
|
239
|
+
378: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">nil?</span>
|
240
|
+
379: <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 `#{current_route_path}' already defined with regexp `#{hash_of_routes[current_route_path]}' !"</span>, <span class="ruby-identifier">caller</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_of_routes</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">current_route_path</span>)
|
241
|
+
380: <span class="ruby-identifier">hash_of_routes</span>[<span class="ruby-identifier">current_route_path</span>] = <span class="ruby-value str">''</span>
|
242
|
+
381: <span class="ruby-keyword kw">else</span>
|
243
|
+
382: <span class="ruby-identifier">_pre</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">pre_match</span>
|
244
|
+
383: <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>
|
245
|
+
384: <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 `#{hash_of_routes[_pre]}' !"</span>, <span class="ruby-identifier">caller</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hash_of_routes</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">_pre</span>)
|
246
|
+
385: <span class="ruby-identifier">hash_of_routes</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>]
|
247
|
+
386: <span class="ruby-identifier">max_captures_for_routes</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_captures_for_routes</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>
|
248
|
+
387: <span class="ruby-keyword kw">end</span>
|
249
|
+
388: <span class="ruby-keyword kw">else</span>
|
250
|
+
389: <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-value str">"Bad route declaration !"</span>, <span class="ruby-identifier">caller</span>
|
251
|
+
390: <span class="ruby-keyword kw">end</span>
|
252
|
+
391: <span class="ruby-keyword kw">end</span>
|
253
|
+
392: [<span class="ruby-identifier">hash_of_routes</span>, <span class="ruby-identifier">max_captures_for_routes</span>, <span class="ruby-keyword kw">self</span>]
|
254
|
+
393: }
|
255
|
+
394:
|
256
|
+
395: <span class="ruby-comment cmt"># Hash containing all the request parameters (GET or POST)</span>
|
257
|
+
396: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">params</span>
|
258
|
+
397: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
|
259
|
+
398: <span class="ruby-keyword kw">end</span>
|
260
|
+
399:
|
261
|
+
400: <span class="ruby-comment cmt"># Hash containing all the environment variables</span>
|
262
|
+
401: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env</span>
|
263
|
+
402: <span class="ruby-ivar">@env</span>
|
264
|
+
403: <span class="ruby-keyword kw">end</span>
|
265
|
+
404:
|
266
|
+
405: <span class="ruby-comment cmt"># Session hash</span>
|
267
|
+
406: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">session</span>
|
268
|
+
407: <span class="ruby-ivar">@env</span>[<span class="ruby-value str">'rack.session'</span>]
|
269
|
+
408: <span class="ruby-keyword kw">end</span>
|
270
|
+
409:
|
271
|
+
410: <span class="ruby-comment cmt"># Return the Rack::Request object</span>
|
272
|
+
411: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request</span>
|
273
|
+
412: <span class="ruby-ivar">@request</span>
|
274
|
+
413: <span class="ruby-keyword kw">end</span>
|
275
|
+
414:
|
276
|
+
415: <span class="ruby-comment cmt"># Return the Rack::Response object</span>
|
277
|
+
416: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">response</span>
|
278
|
+
417: <span class="ruby-ivar">@response</span>
|
279
|
+
418: <span class="ruby-keyword kw">end</span>
|
280
|
+
419:
|
281
|
+
420: <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>
|
282
|
+
421: <span class="ruby-ivar">@env</span> = <span class="ruby-identifier">e</span>
|
283
|
+
422: <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>
|
284
|
+
423: <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>)
|
285
|
+
424:
|
286
|
+
425: <span class="ruby-comment cmt"># Check authz</span>
|
287
|
+
426: <span class="ruby-identifier">authz_options</span> = <span class="ruby-keyword kw">nil</span>
|
288
|
+
427: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">__auth__</span> <span class="ruby-keyword kw">and</span> <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">__auth__</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
289
|
+
428: <span class="ruby-identifier">authz_options</span> = <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">__auth__</span>[<span class="ruby-ivar">@request</span>.<span class="ruby-identifier">path</span>]<span class="ruby-operator">||</span><span class="ruby-keyword kw">nil</span>
|
290
|
+
429: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">authz_options</span>.<span class="ruby-identifier">nil?</span>
|
291
|
+
430: <span class="ruby-identifier">route</span> = <span class="ruby-keyword kw">nil</span>
|
292
|
+
431:
|
293
|
+
432: <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">__auth__</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span>, <span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
|
294
|
+
433: <span class="ruby-identifier">regexp</span> = <span class="ruby-node">"^#{r.gsub(/\/$/, "")}([/]{1}.*)?$"</span>
|
295
|
+
434: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">regexp</span>).<span class="ruby-identifier">match</span>( <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">path</span> )
|
296
|
+
435: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">route</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-identifier">route</span>.<span class="ruby-identifier">size</span>
|
297
|
+
436: <span class="ruby-identifier">route</span> = <span class="ruby-identifier">r</span>
|
298
|
+
437: <span class="ruby-identifier">authz_options</span> = <span class="ruby-identifier">o</span>
|
299
|
+
438: <span class="ruby-keyword kw">end</span>
|
300
|
+
439: <span class="ruby-keyword kw">end</span>
|
301
|
+
440: <span class="ruby-keyword kw">end</span>
|
302
|
+
441: <span class="ruby-keyword kw">end</span>
|
303
|
+
442: <span class="ruby-keyword kw">end</span>
|
304
|
+
443:
|
305
|
+
444: <span class="ruby-identifier">r</span> = <span class="ruby-identifier">catch</span>(<span class="ruby-identifier">:halt</span>) {
|
306
|
+
445: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">authz_options</span>.<span class="ruby-identifier">nil?</span>
|
307
|
+
446: <span class="ruby-identifier">http_authentication</span>( <span class="ruby-identifier">:type</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">authz_options</span>[<span class="ruby-identifier">:type</span>], <span class="ruby-identifier">:realm</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">authz_options</span>[<span class="ruby-identifier">:realm</span>], <span class="ruby-identifier">:opaque</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">authz_options</span>[<span class="ruby-identifier">:realm</span>] ) {
|
308
|
+
447: <span class="ruby-identifier">authz_options</span>[<span class="ruby-identifier">:autz</span>]
|
309
|
+
448: }
|
310
|
+
449: <span class="ruby-keyword kw">end</span>
|
311
|
+
450:
|
312
|
+
451: <span class="ruby-identifier">finalPath</span> = <span class="ruby-keyword kw">nil</span>
|
313
|
+
452: <span class="ruby-identifier">finalArgs</span> = <span class="ruby-keyword kw">nil</span>
|
314
|
+
453: <span class="ruby-identifier">finalNArgs</span> = <span class="ruby-keyword kw">nil</span>
|
315
|
+
454:
|
316
|
+
455: <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> )
|
317
|
+
456: <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>
|
318
|
+
457: <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> )
|
319
|
+
458: <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>
|
320
|
+
459: <span class="ruby-identifier">diffArgs</span> = <span class="ruby-identifier">aPath</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">xPath</span>
|
321
|
+
460: <span class="ruby-identifier">diffNArgs</span> = <span class="ruby-identifier">diffArgs</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
|
322
|
+
461: <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>
|
323
|
+
462: <span class="ruby-identifier">finalPath</span> = <span class="ruby-identifier">p</span>
|
324
|
+
463: <span class="ruby-identifier">finalNArgs</span> = <span class="ruby-identifier">diffNArgs</span>
|
325
|
+
464: <span class="ruby-identifier">finalArgs</span> = <span class="ruby-identifier">diffArgs</span>
|
326
|
+
465: <span class="ruby-keyword kw">end</span>
|
327
|
+
466: <span class="ruby-keyword kw">end</span>
|
328
|
+
467: <span class="ruby-keyword kw">end</span>
|
329
|
+
468:
|
330
|
+
469: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">finalNArgs</span> <span class="ruby-operator">></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>]
|
331
|
+
470: <span class="ruby-keyword kw">return</span> [<span class="ruby-value">404</span>, {<span class="ruby-value str">'Content-Type'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text/plain'</span>}, <span class="ruby-node">"Not Found: #{@request.path}"</span>]
|
332
|
+
471: <span class="ruby-keyword kw">end</span>
|
333
|
+
472:
|
334
|
+
473: <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>]
|
335
|
+
474: <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>] )
|
336
|
+
475: <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> ) )
|
337
|
+
476: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">nil?</span>
|
338
|
+
477: <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>
|
339
|
+
478: <span class="ruby-keyword kw">else</span>
|
340
|
+
479: <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> }
|
341
|
+
480: <span class="ruby-keyword kw">end</span>
|
342
|
+
481:
|
343
|
+
482: <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>
|
344
|
+
483: <span class="ruby-identifier">args</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">nil</span>
|
345
|
+
484: <span class="ruby-keyword kw">end</span>
|
346
|
+
485:
|
347
|
+
486: <span class="ruby-identifier">filter_output</span> = <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Filter</span>.<span class="ruby-identifier">execute</span>( <span class="ruby-keyword kw">self</span> )
|
346
348
|
487:
|
347
|
-
488: <span class="ruby-
|
348
|
-
489:
|
349
|
-
490:
|
350
|
-
491:
|
351
|
-
492: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"
|
352
|
-
493: <span class="ruby-identifier">
|
353
|
-
494:
|
354
|
-
495:
|
355
|
-
496: <span class="ruby-identifier">
|
356
|
-
497:
|
357
|
-
498:
|
358
|
-
499:
|
359
|
-
500: <span class="ruby-
|
360
|
-
501: <span class="ruby-keyword kw">
|
361
|
-
502:
|
362
|
-
503:
|
363
|
-
504:
|
364
|
-
505:
|
365
|
-
506:
|
366
|
-
507: <span class="ruby-
|
367
|
-
508:
|
368
|
-
509: <span class="ruby-
|
369
|
-
510:
|
370
|
-
511:
|
371
|
-
512: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">r</span
|
372
|
-
513: <span class="ruby-keyword kw">
|
373
|
-
514:
|
374
|
-
515: <span class="ruby-
|
375
|
-
516:
|
376
|
-
517:
|
377
|
-
518: <span class="ruby-
|
378
|
-
519:
|
379
|
-
520:
|
380
|
-
521:
|
381
|
-
522: }
|
382
|
-
523: <span class="ruby-keyword kw">end</span>
|
349
|
+
488: <span class="ruby-keyword kw">if</span>( <span class="ruby-identifier">filter_output</span>.<span class="ruby-identifier">nil?</span> )
|
350
|
+
489: <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@env</span>[<span class="ruby-value str">"REQUEST_METHOD"</span>]
|
351
|
+
490: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"GET"</span>
|
352
|
+
491: <span class="ruby-identifier">get</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">args</span> )
|
353
|
+
492: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"POST"</span>
|
354
|
+
493: <span class="ruby-identifier">_method</span> = <span class="ruby-identifier">params</span>.<span class="ruby-identifier">delete</span>( <span class="ruby-value str">"_method"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">_</span><span class="ruby-operator">|</span> <span class="ruby-value str">"post"</span> }
|
355
|
+
494: <span class="ruby-identifier">send</span>( <span class="ruby-identifier">_method</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span> )
|
356
|
+
495: <span class="ruby-keyword kw">else</span>
|
357
|
+
496: <span class="ruby-identifier">_method</span> = <span class="ruby-ivar">@env</span>[<span class="ruby-value str">"REQUEST_METHOD"</span>]
|
358
|
+
497: <span class="ruby-identifier">send</span>( <span class="ruby-identifier">_method</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">to_sym</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span> )
|
359
|
+
498: <span class="ruby-keyword kw">end</span>
|
360
|
+
499: <span class="ruby-keyword kw">else</span>
|
361
|
+
500: <span class="ruby-identifier">filter_output</span>
|
362
|
+
501: <span class="ruby-keyword kw">end</span>
|
363
|
+
502: }
|
364
|
+
503:
|
365
|
+
504: <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>)
|
366
|
+
505: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">r</span>.<span class="ruby-identifier">shift</span> <span class="ruby-comment cmt">#r[0]</span>
|
367
|
+
506: <span class="ruby-comment cmt">#r[1].each do |k,v|</span>
|
368
|
+
507: <span class="ruby-identifier">r</span>.<span class="ruby-identifier">shift</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>
|
369
|
+
508: <span class="ruby-ivar">@response</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
|
370
|
+
509: <span class="ruby-keyword kw">end</span>
|
371
|
+
510: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">shift</span> <span class="ruby-comment cmt">#r[2]</span>
|
372
|
+
511: <span class="ruby-keyword kw">else</span>
|
373
|
+
512: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">r</span>
|
374
|
+
513: <span class="ruby-keyword kw">end</span>
|
375
|
+
514:
|
376
|
+
515: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">finish</span>
|
377
|
+
516: <span class="ruby-keyword kw">end</span>
|
378
|
+
517:
|
379
|
+
518: <span class="ruby-identifier">include</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Helpers</span>
|
380
|
+
519: <span class="ruby-identifier">include</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Views</span>
|
381
|
+
520: }
|
382
|
+
521: <span class="ruby-keyword kw">end</span>
|
383
383
|
</pre>
|
384
384
|
</div>
|
385
385
|
</div>
|
@@ -410,83 +410,83 @@ href="Capcode.html#M000012">set</a> globally
|
|
410
410
|
onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
|
411
411
|
<div class="method-source-code" id="M000010-source">
|
412
412
|
<pre>
|
413
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
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
|
-
|
413
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 590</span>
|
414
|
+
590: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">application</span>( <span class="ruby-identifier">args</span> = {} )
|
415
|
+
591: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">configuration</span>(<span class="ruby-identifier">args</span>)
|
416
|
+
592:
|
417
|
+
593: <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">constants</span>.<span class="ruby-identifier">clone</span>.<span class="ruby-identifier">delete_if</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
|
418
|
+
594: <span class="ruby-keyword kw">not</span>( <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">const_get</span>(<span class="ruby-identifier">k</span>).<span class="ruby-identifier">to_s</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/Capcode/</span> ) <span class="ruby-keyword kw">or</span> [
|
419
|
+
595: <span class="ruby-value str">"Filter"</span>,
|
420
|
+
596: <span class="ruby-value str">"Helpers"</span>,
|
421
|
+
597: <span class="ruby-value str">"RouteError"</span>,
|
422
|
+
598: <span class="ruby-value str">"Views"</span>,
|
423
|
+
599: <span class="ruby-value str">"ParameterError"</span>,
|
424
|
+
600: <span class="ruby-value str">"HTTPError"</span>,
|
425
|
+
601: <span class="ruby-value str">"Configuration"</span>,
|
426
|
+
602: <span class="ruby-value str">"MissingLibrary"</span>,
|
427
|
+
603: <span class="ruby-value str">"Route"</span>,
|
428
|
+
604: <span class="ruby-value str">"RenderError"</span>
|
429
|
+
605: ].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">k</span>)
|
430
|
+
606: }.<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>
|
431
|
+
607: <span class="ruby-keyword kw">begin</span>
|
432
|
+
608: <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>
|
433
|
+
609: <span class="ruby-identifier">hash_of_routes</span>, <span class="ruby-identifier">max_captures_for_routes</span>, <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">eval</span> <span class="ruby-node">"Capcode::#{k}.__urls__"</span>
|
434
|
+
610: <span class="ruby-identifier">hash_of_routes</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">current_route_path</span><span class="ruby-operator">|</span>
|
435
|
+
611: <span class="ruby-comment cmt">#raise Capcode::RouteError, "Route `#{current_route_path}' already define !", caller if @@__ROUTES.keys.include?(current_route_path)</span>
|
436
|
+
612: <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 `#{current_route_path}' already define !"</span>, <span class="ruby-identifier">caller</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">routes</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">current_route_path</span>)
|
437
|
+
613: <span class="ruby-comment cmt"># Capcode.routes[current_route_path] = klass.new</span>
|
438
|
+
614: <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">routes</span>[<span class="ruby-identifier">current_route_path</span>] = <span class="ruby-identifier">klass</span>
|
439
|
+
615: <span class="ruby-keyword kw">end</span>
|
440
|
+
616: <span class="ruby-keyword kw">end</span>
|
441
|
+
617: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
442
|
+
618: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
|
443
|
+
619: <span class="ruby-keyword kw">end</span>
|
444
|
+
620: <span class="ruby-keyword kw">end</span>
|
445
|
+
621:
|
446
|
+
622: <span class="ruby-comment cmt"># Set Static directory</span>
|
447
|
+
623: <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">static</span> = (<span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:static</span>)[<span class="ruby-value">0</span>].<span class="ruby-identifier">chr</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"/"</span>)<span class="ruby-operator">?</span><span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:static</span>)<span class="ruby-operator">:</span><span class="ruby-value str">"/"</span><span class="ruby-operator">+</span><span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:static</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:static</span>).<span class="ruby-identifier">nil?</span>
|
448
|
+
624:
|
449
|
+
625: <span class="ruby-comment cmt"># Initialize Rack App</span>
|
450
|
+
626: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"** Map routes."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:verbose</span>)
|
451
|
+
627: <span class="ruby-comment cmt"># app = Rack::URLMap.new(Capcode.routes)</span>
|
452
|
+
628: <span class="ruby-identifier">app</span> = <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Ext</span><span class="ruby-operator">::</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-constant">Capcode</span>.<span class="ruby-identifier">routes</span>)
|
453
|
+
629: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Initialize static directory (#{Capcode.static}) in #{File.expand_path(Capcode::Configuration.get(:root))}"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:verbose</span>)
|
454
|
+
630: <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>(
|
455
|
+
631: <span class="ruby-identifier">app</span>,
|
456
|
+
632: <span class="ruby-comment cmt">#:urls => [@@__STATIC_DIR], </span>
|
457
|
+
633: <span class="ruby-identifier">:urls</span> =<span class="ruby-operator">></span> [<span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">static</span>],
|
458
|
+
634: <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">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:root</span>))
|
459
|
+
635: ) <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:static</span>).<span class="ruby-identifier">nil?</span>
|
460
|
+
636: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"** Initialize session"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:verbose</span>)
|
461
|
+
637: <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-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:session</span>) )
|
462
|
+
638: <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>)
|
463
|
+
639: <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>)
|
464
|
+
640: <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>)
|
465
|
+
641: <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>)
|
466
|
+
642: <span class="ruby-comment cmt">#app = Rack::Reloader.new(app) ## -- NE RELOAD QUE capcode.rb -- So !!!</span>
|
467
|
+
643:
|
468
|
+
644: <span class="ruby-identifier">middlewares</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mw</span><span class="ruby-operator">|</span>
|
469
|
+
645: <span class="ruby-identifier">middleware</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">block</span> = <span class="ruby-identifier">mw</span>
|
470
|
+
646: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Load middleware #{middleware}"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:verbose</span>)
|
471
|
+
647: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>
|
472
|
+
648: <span class="ruby-identifier">app</span> = <span class="ruby-identifier">middleware</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">app</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span> )
|
473
|
+
649: <span class="ruby-keyword kw">else</span>
|
474
|
+
650: <span class="ruby-identifier">app</span> = <span class="ruby-identifier">middleware</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">app</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span> )
|
475
|
+
651: <span class="ruby-keyword kw">end</span>
|
476
|
+
652: <span class="ruby-keyword kw">end</span>
|
477
|
+
653:
|
478
|
+
654: <span class="ruby-comment cmt"># Start database</span>
|
479
|
+
655: <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>
|
480
|
+
656: <span class="ruby-identifier">db_connect</span>( <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:db_config</span>), <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:log</span>) )
|
481
|
+
657: <span class="ruby-keyword kw">end</span>
|
482
|
+
658:
|
483
|
+
659: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
484
|
+
660: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"** Execute block"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:verbose</span>)
|
485
|
+
661: <span class="ruby-keyword kw">yield</span>( <span class="ruby-keyword kw">self</span> )
|
486
|
+
662: <span class="ruby-keyword kw">end</span>
|
487
|
+
663:
|
488
|
+
664: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">app</span>
|
489
|
+
665: <span class="ruby-keyword kw">end</span>
|
490
490
|
</pre>
|
491
491
|
</div>
|
492
492
|
</div>
|
@@ -550,10 +550,10 @@ Hash containing all the environment variables
|
|
550
550
|
onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
|
551
551
|
<div class="method-source-code" id="M000003-source">
|
552
552
|
<pre>
|
553
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
554
|
-
|
555
|
-
|
556
|
-
|
553
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 401</span>
|
554
|
+
401: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env</span>
|
555
|
+
402: <span class="ruby-ivar">@env</span>
|
556
|
+
403: <span class="ruby-keyword kw">end</span>
|
557
557
|
</pre>
|
558
558
|
</div>
|
559
559
|
</div>
|
@@ -608,27 +608,27 @@ The block must return a Hash of username => password like that :
|
|
608
608
|
onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
|
609
609
|
<div class="method-source-code" id="M000009-source">
|
610
610
|
<pre>
|
611
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
611
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 564</span>
|
612
|
+
564: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">http_authentication</span>( <span class="ruby-identifier">opts</span> = {}, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span> )
|
613
|
+
565: <span class="ruby-identifier">options</span> = {
|
614
|
+
566: <span class="ruby-identifier">:type</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:basic</span>,
|
615
|
+
567: <span class="ruby-identifier">:realm</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"Capcode.app"</span>,
|
616
|
+
568: <span class="ruby-identifier">:opaque</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"opaque"</span>,
|
617
|
+
569: <span class="ruby-identifier">:routes</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"/"</span>
|
618
|
+
570: }.<span class="ruby-identifier">merge</span>( <span class="ruby-identifier">opts</span> )
|
619
|
+
571:
|
620
|
+
572: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:autz</span>] = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">call</span>()
|
619
621
|
573:
|
620
|
-
574: <span class="ruby-
|
622
|
+
574: <span class="ruby-ivar">@__auth__</span> <span class="ruby-operator">||=</span> {}
|
621
623
|
575:
|
622
|
-
576: <span class="ruby-
|
623
|
-
577:
|
624
|
-
578:
|
625
|
-
579: <span class="ruby-
|
626
|
-
580:
|
627
|
-
581: <span class="ruby-
|
628
|
-
582: <span class="ruby-keyword kw">
|
629
|
-
583:
|
630
|
-
584: <span class="ruby-keyword kw">end</span>
|
631
|
-
585: <span class="ruby-keyword kw">end</span>
|
624
|
+
576: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:routes</span>].<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Array</span>
|
625
|
+
577: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:routes</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
|
626
|
+
578: <span class="ruby-ivar">@__auth__</span>[<span class="ruby-identifier">r</span>] = <span class="ruby-identifier">options</span>
|
627
|
+
579: <span class="ruby-keyword kw">end</span>
|
628
|
+
580: <span class="ruby-keyword kw">else</span>
|
629
|
+
581: <span class="ruby-ivar">@__auth__</span>[<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:routes</span>]] = <span class="ruby-identifier">options</span>
|
630
|
+
582: <span class="ruby-keyword kw">end</span>
|
631
|
+
583: <span class="ruby-keyword kw">end</span>
|
632
632
|
</pre>
|
633
633
|
</div>
|
634
634
|
</div>
|
@@ -657,10 +657,10 @@ Rack or What you want Helper
|
|
657
657
|
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
658
658
|
<div class="method-source-code" id="M000007-source">
|
659
659
|
<pre>
|
660
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
661
|
-
|
662
|
-
|
663
|
-
|
660
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 529</span>
|
661
|
+
529: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">map</span>( <span class="ruby-identifier">route</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span> )
|
662
|
+
530: <span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">routes</span>[<span class="ruby-identifier">route</span>] = <span class="ruby-keyword kw">yield</span>
|
663
|
+
531: <span class="ruby-keyword kw">end</span>
|
664
664
|
</pre>
|
665
665
|
</div>
|
666
666
|
</div>
|
@@ -684,10 +684,10 @@ parameters (GET or POST)
|
|
684
684
|
onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
|
685
685
|
<div class="method-source-code" id="M000002-source">
|
686
686
|
<pre>
|
687
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
688
|
-
|
689
|
-
|
690
|
-
|
687
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 396</span>
|
688
|
+
396: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">params</span>
|
689
|
+
397: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
|
690
|
+
398: <span class="ruby-keyword kw">end</span>
|
691
691
|
</pre>
|
692
692
|
</div>
|
693
693
|
</div>
|
@@ -710,10 +710,10 @@ Return the Rack::Request object
|
|
710
710
|
onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
|
711
711
|
<div class="method-source-code" id="M000005-source">
|
712
712
|
<pre>
|
713
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
714
|
-
|
715
|
-
|
716
|
-
|
713
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 411</span>
|
714
|
+
411: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request</span>
|
715
|
+
412: <span class="ruby-ivar">@request</span>
|
716
|
+
413: <span class="ruby-keyword kw">end</span>
|
717
717
|
</pre>
|
718
718
|
</div>
|
719
719
|
</div>
|
@@ -736,10 +736,10 @@ Return the Rack::Response object
|
|
736
736
|
onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
|
737
737
|
<div class="method-source-code" id="M000006-source">
|
738
738
|
<pre>
|
739
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
740
|
-
|
741
|
-
|
742
|
-
|
739
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 416</span>
|
740
|
+
416: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">response</span>
|
741
|
+
417: <span class="ruby-ivar">@response</span>
|
742
|
+
418: <span class="ruby-keyword kw">end</span>
|
743
743
|
</pre>
|
744
744
|
</div>
|
745
745
|
</div>
|
@@ -770,131 +770,131 @@ href="Capcode.html#M000012">set</a> globally
|
|
770
770
|
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
771
771
|
<div class="method-source-code" id="M000011-source">
|
772
772
|
<pre>
|
773
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
773
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 672</span>
|
774
|
+
672: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>( <span class="ruby-identifier">args</span> = {} )
|
775
|
+
673: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">configuration</span>(<span class="ruby-identifier">args</span>)
|
776
|
+
674:
|
777
|
+
675: <span class="ruby-comment cmt"># Parse options</span>
|
778
|
+
676: <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>
|
779
|
+
677: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">"Usage: #{File.basename($0)} [options]"</span>
|
780
|
+
678: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">""</span>
|
781
|
+
679: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">"Specific options:"</span>
|
782
|
+
680:
|
783
|
+
681: <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> ) {
|
784
|
+
682: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">set</span> <span class="ruby-identifier">:console</span>, <span class="ruby-keyword kw">true</span>
|
785
|
+
683: }
|
786
|
+
684: <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: #{Capcode::Configuration.get(:host)})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">h</span><span class="ruby-operator">|</span>
|
787
|
+
685: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">set</span> <span class="ruby-identifier">:host</span>, <span class="ruby-identifier">h</span>
|
788
|
+
686: }
|
789
|
+
687: <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: #{Capcode::Configuration.get(:port)})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
|
790
|
+
688: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">set</span> <span class="ruby-identifier">:port</span>, <span class="ruby-identifier">p</span>
|
791
|
+
689: }
|
792
|
+
690: <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: #{Capcode::Configuration.get(:daemonize)})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
|
793
|
+
691: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">set</span> <span class="ruby-identifier">:daemonize</span>, <span class="ruby-identifier">d</span>
|
794
|
+
692: }
|
795
|
+
693: <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: #{Capcode::Configuration.get(:root)})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">w</span><span class="ruby-operator">|</span>
|
796
|
+
694: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">set</span> <span class="ruby-identifier">:root</span>, <span class="ruby-identifier">w</span>
|
797
|
+
695: }
|
798
|
+
696: <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: #{Capcode::Configuration.get(:static)})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
|
799
|
+
697: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">set</span> <span class="ruby-identifier">:static</span>, <span class="ruby-identifier">r</span>
|
800
|
+
698: }
|
801
|
+
699:
|
802
|
+
700: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">""</span>
|
803
|
+
701: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">"Common options:"</span>
|
804
|
+
702:
|
805
|
+
703: <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>
|
806
|
+
704: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>
|
807
|
+
705: <span class="ruby-identifier">exit</span>
|
808
|
+
706: <span class="ruby-keyword kw">end</span>
|
809
|
+
707: <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>
|
810
|
+
708: <span class="ruby-identifier">puts</span> <span class="ruby-node">"Capcode version #{Capcode::CAPCOD_VERION} (ruby v#{RUBY_VERSION})"</span>
|
811
|
+
709: <span class="ruby-identifier">exit</span>
|
812
|
+
710: <span class="ruby-keyword kw">end</span>
|
813
|
+
711: <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>
|
814
|
+
712: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">set</span> <span class="ruby-identifier">:verbose</span>, <span class="ruby-keyword kw">true</span>
|
815
|
+
713: <span class="ruby-keyword kw">end</span>
|
816
|
+
714: <span class="ruby-keyword kw">end</span>
|
817
|
+
715:
|
818
|
+
716: <span class="ruby-keyword kw">begin</span>
|
819
|
+
717: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse!</span> <span class="ruby-constant">ARGV</span>
|
820
|
+
718: <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>
|
821
|
+
719: <span class="ruby-identifier">puts</span> <span class="ruby-node">"!! #{ex.message}"</span>
|
822
|
+
720: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** use `#{File.basename($0)} --help` for more details..."</span>
|
823
|
+
721: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
|
824
|
+
722: <span class="ruby-keyword kw">end</span>
|
825
|
+
723:
|
826
|
+
724: <span class="ruby-comment cmt"># Run in the Working directory</span>
|
827
|
+
725: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Go on root directory (#{File.expand_path(Capcode::Configuration.get(:root))})"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:verbose</span>)
|
828
|
+
726: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span>( <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:root</span>) ) <span class="ruby-keyword kw">do</span>
|
829
|
+
727:
|
830
|
+
728: <span class="ruby-comment cmt"># Check that mongrel exists </span>
|
831
|
+
729: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:server</span>).<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:server</span>) <span class="ruby-operator">==</span> <span class="ruby-value str">"mongrel"</span>
|
832
|
+
730: <span class="ruby-keyword kw">begin</span>
|
833
|
+
731: <span class="ruby-identifier">require</span> <span class="ruby-value str">'mongrel'</span>
|
834
|
+
732: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">set</span> <span class="ruby-identifier">:server</span>, <span class="ruby-identifier">:mongrel</span>
|
835
|
+
733: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">LoadError</span>
|
836
|
+
734: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"!! could not load mongrel. Falling back to webrick."</span>
|
837
|
+
735: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">set</span> <span class="ruby-identifier">:server</span>, <span class="ruby-identifier">:webrick</span>
|
838
|
+
736: <span class="ruby-keyword kw">end</span>
|
839
|
+
737: <span class="ruby-keyword kw">end</span>
|
840
|
+
738:
|
841
|
+
739: <span class="ruby-comment cmt"># From rackup !!!</span>
|
842
|
+
740: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:daemonize</span>)
|
843
|
+
741: <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>
|
844
|
+
742: <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>
|
845
|
+
743: <span class="ruby-identifier">exit</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fork</span>
|
846
|
+
744: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">setsid</span>
|
845
847
|
745: <span class="ruby-identifier">exit</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fork</span>
|
846
|
-
746: <span class="ruby-
|
847
|
-
747: <span class="ruby-
|
848
|
-
748: <span class="ruby-
|
849
|
-
749: <span class="ruby-constant">
|
850
|
-
750: <span class="ruby-constant">
|
851
|
-
751:
|
852
|
-
752: <span class="ruby-constant">
|
853
|
-
753: <span class="ruby-keyword kw">
|
854
|
-
754:
|
855
|
-
755: <span class="ruby-
|
856
|
-
756: <span class="ruby-keyword kw">
|
857
|
-
757:
|
858
|
-
758: <span class="ruby-
|
859
|
-
759:
|
860
|
-
760:
|
861
|
-
761:
|
862
|
-
762: <span class="ruby-keyword kw">
|
863
|
-
763:
|
864
|
-
764:
|
865
|
-
765: <span class="ruby-keyword kw">
|
866
|
-
766: <span class="ruby-identifier">app</span> = <span class="ruby-identifier">application</span>(<span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>)
|
867
|
-
767: <span class="ruby-keyword kw">
|
868
|
-
768:
|
869
|
-
769:
|
870
|
-
770: <span class="ruby-
|
871
|
-
771:
|
872
|
-
772:
|
873
|
-
773: <span class="ruby-identifier">
|
874
|
-
774:
|
875
|
-
775:
|
876
|
-
776: <span class="ruby-
|
877
|
-
777:
|
878
|
-
778: <span class="ruby-
|
879
|
-
779:
|
880
|
-
780:
|
881
|
-
781:
|
882
|
-
782:
|
883
|
-
783:
|
884
|
-
784: }
|
885
|
-
785:
|
886
|
-
786:
|
887
|
-
787:
|
888
|
-
788:
|
889
|
-
789: }
|
890
|
-
790:
|
891
|
-
791:
|
892
|
-
792:
|
893
|
-
793:
|
894
|
-
794:
|
895
|
-
795:
|
896
|
-
796: <span class="ruby-keyword kw">end</span>
|
897
|
-
797: <span class="ruby-keyword kw">end</span>
|
848
|
+
746: <span class="ruby-comment cmt"># Dir.chdir "/"</span>
|
849
|
+
747: <span class="ruby-constant">File</span>.<span class="ruby-identifier">umask</span> <span class="ruby-value">0000</span>
|
850
|
+
748: <span class="ruby-constant">STDIN</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-value str">"/dev/null"</span>
|
851
|
+
749: <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>
|
852
|
+
750: <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>
|
853
|
+
751: <span class="ruby-keyword kw">else</span>
|
854
|
+
752: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">daemon</span>
|
855
|
+
753: <span class="ruby-keyword kw">end</span>
|
856
|
+
754: <span class="ruby-keyword kw">else</span>
|
857
|
+
755: <span class="ruby-identifier">puts</span> <span class="ruby-node">"!! daemonize option unavailable on #{RUBY_PLATFORM} platform."</span>
|
858
|
+
756: <span class="ruby-keyword kw">end</span>
|
859
|
+
757:
|
860
|
+
758: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</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>) }
|
861
|
+
759: <span class="ruby-identifier">at_exit</span> { <span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</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-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:pid</span>)) }
|
862
|
+
760: <span class="ruby-keyword kw">end</span>
|
863
|
+
761:
|
864
|
+
762: <span class="ruby-identifier">app</span> = <span class="ruby-keyword kw">nil</span>
|
865
|
+
763: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
866
|
+
764: <span class="ruby-identifier">app</span> = <span class="ruby-identifier">application</span>(<span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>) { <span class="ruby-keyword kw">yield</span>( <span class="ruby-keyword kw">self</span> ) }
|
867
|
+
765: <span class="ruby-keyword kw">else</span>
|
868
|
+
766: <span class="ruby-identifier">app</span> = <span class="ruby-identifier">application</span>(<span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>)
|
869
|
+
767: <span class="ruby-keyword kw">end</span>
|
870
|
+
768: <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-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:log</span>)) )
|
871
|
+
769:
|
872
|
+
770: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:console</span>)
|
873
|
+
771: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"Run console..."</span>
|
874
|
+
772: <span class="ruby-constant">IRB</span>.<span class="ruby-identifier">start</span>
|
875
|
+
773: <span class="ruby-identifier">exit</span>
|
876
|
+
774: <span class="ruby-keyword kw">end</span>
|
877
|
+
775:
|
878
|
+
776: <span class="ruby-comment cmt"># Start server</span>
|
879
|
+
777: <span class="ruby-keyword kw">case</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:server</span>).<span class="ruby-identifier">to_s</span>
|
880
|
+
778: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"mongrel"</span>
|
881
|
+
779: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting Mongrel on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>
|
882
|
+
780: <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-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:port</span>), <span class="ruby-identifier">:Host</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:host</span>)} ) { <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
|
883
|
+
781: <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> }
|
884
|
+
782: }
|
885
|
+
783: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"webrick"</span>
|
886
|
+
784: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting WEBrick on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>
|
887
|
+
785: <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-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:port</span>), <span class="ruby-identifier">:BindAddress</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:host</span>)} ) { <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
|
888
|
+
786: <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> }
|
889
|
+
787: }
|
890
|
+
788: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"thin"</span>
|
891
|
+
789: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting Thin on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>
|
892
|
+
790: <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">Thin</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-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:port</span>), <span class="ruby-identifier">:Host</span> =<span class="ruby-operator">></span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">:host</span>)} ) { <span class="ruby-operator">|</span><span class="ruby-identifier">server</span><span class="ruby-operator">|</span>
|
893
|
+
791: <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> }
|
894
|
+
792: }
|
895
|
+
793: <span class="ruby-keyword kw">end</span>
|
896
|
+
794: <span class="ruby-keyword kw">end</span>
|
897
|
+
795: <span class="ruby-keyword kw">end</span>
|
898
898
|
</pre>
|
899
899
|
</div>
|
900
900
|
</div>
|
@@ -917,10 +917,10 @@ Session hash
|
|
917
917
|
onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
|
918
918
|
<div class="method-source-code" id="M000004-source">
|
919
919
|
<pre>
|
920
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
921
|
-
|
922
|
-
|
923
|
-
|
920
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 406</span>
|
921
|
+
406: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">session</span>
|
922
|
+
407: <span class="ruby-ivar">@env</span>[<span class="ruby-value str">'rack.session'</span>]
|
923
|
+
408: <span class="ruby-keyword kw">end</span>
|
924
924
|
</pre>
|
925
925
|
</div>
|
926
926
|
</div>
|
@@ -976,10 +976,10 @@ Example :
|
|
976
976
|
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
977
977
|
<div class="method-source-code" id="M000008-source">
|
978
978
|
<pre>
|
979
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line
|
980
|
-
|
981
|
-
|
982
|
-
|
979
|
+
<span class="ruby-comment cmt"># File lib/capcode.rb, line 543</span>
|
980
|
+
543: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">use</span>(<span class="ruby-identifier">middleware</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
981
|
+
544: <span class="ruby-identifier">middlewares</span> <span class="ruby-operator"><<</span> [<span class="ruby-identifier">middleware</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">block</span>]
|
982
|
+
545: <span class="ruby-keyword kw">end</span>
|
983
983
|
</pre>
|
984
984
|
</div>
|
985
985
|
</div>
|