Capcode 0.9.9 → 1.0.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.rdoc +3 -0
- data/examples/rest.log +15 -0
- data/examples/static.rb +12 -0
- data/examples/static/static-index.html +1 -0
- data/lib/capcode.rb +14 -344
- data/lib/capcode/filters.rb +1 -0
- data/lib/capcode/helpers.rb +246 -0
- data/lib/capcode/http_error.rb +49 -0
- data/lib/capcode/static_files.rb +68 -0
- data/lib/capcode/version.rb +1 -1
- metadata +46 -61
- data/doc/rdoc/classes/Capcode.html +0 -1076
- data/doc/rdoc/classes/Capcode/Base.html +0 -136
- data/doc/rdoc/classes/Capcode/Configuration.html +0 -290
- data/doc/rdoc/classes/Capcode/HTTPError.html +0 -148
- data/doc/rdoc/classes/Capcode/Helpers.html +0 -674
- data/doc/rdoc/classes/Capcode/Helpers/Authorization.html +0 -219
- data/doc/rdoc/classes/Capcode/Resource.html +0 -111
- data/doc/rdoc/classes/Capcode/StaticFiles.html +0 -199
- data/doc/rdoc/classes/Capcode/Views.html +0 -112
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/AUTHORS.html +0 -107
- data/doc/rdoc/files/COPYING.html +0 -531
- data/doc/rdoc/files/README_rdoc.html +0 -887
- data/doc/rdoc/files/lib/capcode/base/db_rb.html +0 -101
- data/doc/rdoc/files/lib/capcode/configuration_rb.html +0 -101
- data/doc/rdoc/files/lib/capcode/filters_rb.html +0 -101
- data/doc/rdoc/files/lib/capcode/helpers/auth_rb.html +0 -101
- data/doc/rdoc/files/lib/capcode/render/text_rb.html +0 -101
- data/doc/rdoc/files/lib/capcode_rb.html +0 -144
- data/doc/rdoc/fr_class_index.html +0 -35
- data/doc/rdoc/fr_file_index.html +0 -35
- data/doc/rdoc/fr_method_index.html +0 -56
- data/doc/rdoc/index.html +0 -24
- data/doc/rdoc/rdoc-style.css +0 -208
- data/lib/capcode.rbSAVE +0 -881
@@ -1,1076 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
-
<!DOCTYPE html
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
-
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
-
<head>
|
8
|
-
<title>Module: Capcode</title>
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
-
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
12
|
-
<script type="text/javascript">
|
13
|
-
// <![CDATA[
|
14
|
-
|
15
|
-
function popupCode( url ) {
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
-
}
|
18
|
-
|
19
|
-
function toggleCode( id ) {
|
20
|
-
if ( document.getElementById )
|
21
|
-
elem = document.getElementById( id );
|
22
|
-
else if ( document.all )
|
23
|
-
elem = eval( "document.all." + id );
|
24
|
-
else
|
25
|
-
return false;
|
26
|
-
|
27
|
-
elemStyle = elem.style;
|
28
|
-
|
29
|
-
if ( elemStyle.display != "block" ) {
|
30
|
-
elemStyle.display = "block"
|
31
|
-
} else {
|
32
|
-
elemStyle.display = "none"
|
33
|
-
}
|
34
|
-
|
35
|
-
return true;
|
36
|
-
}
|
37
|
-
|
38
|
-
// Make codeblocks hidden by default
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
-
|
41
|
-
// ]]>
|
42
|
-
</script>
|
43
|
-
|
44
|
-
</head>
|
45
|
-
<body>
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
<div id="classHeader">
|
50
|
-
<table class="header-table">
|
51
|
-
<tr class="top-aligned-row">
|
52
|
-
<td><strong>Module</strong></td>
|
53
|
-
<td class="class-name-in-header">Capcode</td>
|
54
|
-
</tr>
|
55
|
-
<tr class="top-aligned-row">
|
56
|
-
<td><strong>In:</strong></td>
|
57
|
-
<td>
|
58
|
-
<a href="../files/lib/capcode_rb.html">
|
59
|
-
lib/capcode.rb
|
60
|
-
</a>
|
61
|
-
<br />
|
62
|
-
<a href="../files/lib/capcode/base/db_rb.html">
|
63
|
-
lib/capcode/base/db.rb
|
64
|
-
</a>
|
65
|
-
<br />
|
66
|
-
<a href="../files/lib/capcode/configuration_rb.html">
|
67
|
-
lib/capcode/configuration.rb
|
68
|
-
</a>
|
69
|
-
<br />
|
70
|
-
<a href="../files/lib/capcode/filters_rb.html">
|
71
|
-
lib/capcode/filters.rb
|
72
|
-
</a>
|
73
|
-
<br />
|
74
|
-
<a href="../files/lib/capcode/render/text_rb.html">
|
75
|
-
lib/capcode/render/text.rb
|
76
|
-
</a>
|
77
|
-
<br />
|
78
|
-
<a href="../files/lib/capcode/helpers/auth_rb.html">
|
79
|
-
lib/capcode/helpers/auth.rb
|
80
|
-
</a>
|
81
|
-
<br />
|
82
|
-
</td>
|
83
|
-
</tr>
|
84
|
-
|
85
|
-
</table>
|
86
|
-
</div>
|
87
|
-
<!-- banner header -->
|
88
|
-
|
89
|
-
<div id="bodyContent">
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
<div id="contextContent">
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
</div>
|
98
|
-
|
99
|
-
<div id="method-list">
|
100
|
-
<h3 class="section-bar">Methods</h3>
|
101
|
-
|
102
|
-
<div class="name-list">
|
103
|
-
<a href="#M000001">Route</a>
|
104
|
-
<a href="#M000010">application</a>
|
105
|
-
<a href="#M000014">before_filter</a>
|
106
|
-
<a href="#M000003">env</a>
|
107
|
-
<a href="#M000009">http_authentication</a>
|
108
|
-
<a href="#M000012">logger</a>
|
109
|
-
<a href="#M000007">map</a>
|
110
|
-
<a href="#M000002">params</a>
|
111
|
-
<a href="#M000005">request</a>
|
112
|
-
<a href="#M000006">response</a>
|
113
|
-
<a href="#M000011">run</a>
|
114
|
-
<a href="#M000004">session</a>
|
115
|
-
<a href="#M000013">set</a>
|
116
|
-
<a href="#M000008">use</a>
|
117
|
-
</div>
|
118
|
-
</div>
|
119
|
-
|
120
|
-
</div>
|
121
|
-
|
122
|
-
|
123
|
-
<!-- if includes -->
|
124
|
-
<div id="includes">
|
125
|
-
<h3 class="section-bar">Included Modules</h3>
|
126
|
-
|
127
|
-
<div id="includes-list">
|
128
|
-
<span class="include-name">Rack</span>
|
129
|
-
<span class="include-name"><a href="Capcode/Helpers.html">Capcode::Helpers</a></span>
|
130
|
-
<span class="include-name"><a href="Capcode/Views.html">Capcode::Views</a></span>
|
131
|
-
</div>
|
132
|
-
</div>
|
133
|
-
|
134
|
-
<div id="section">
|
135
|
-
|
136
|
-
<div id="class-list">
|
137
|
-
<h3 class="section-bar">Classes and Modules</h3>
|
138
|
-
|
139
|
-
Module <a href="Capcode/Helpers.html" class="link">Capcode::Helpers</a><br />
|
140
|
-
Module <a href="Capcode/Resource.html" class="link">Capcode::Resource</a><br />
|
141
|
-
Module <a href="Capcode/Views.html" class="link">Capcode::Views</a><br />
|
142
|
-
Class <a href="Capcode/Base.html" class="link">Capcode::Base</a><br />
|
143
|
-
Class <a href="Capcode/Configuration.html" class="link">Capcode::Configuration</a><br />
|
144
|
-
Class <a href="Capcode/HTTPError.html" class="link">Capcode::HTTPError</a><br />
|
145
|
-
Class <a href="Capcode/StaticFiles.html" class="link">Capcode::StaticFiles</a><br />
|
146
|
-
|
147
|
-
</div>
|
148
|
-
|
149
|
-
<div id="constants-list">
|
150
|
-
<h3 class="section-bar">Constants</h3>
|
151
|
-
|
152
|
-
<div class="name-list">
|
153
|
-
<table summary="Constants">
|
154
|
-
<tr class="top-aligned-row context-row">
|
155
|
-
<td class="context-item-name">Route</td>
|
156
|
-
<td>=</td>
|
157
|
-
<td class="context-item-value">Capcode::Route(nil)</td>
|
158
|
-
</tr>
|
159
|
-
</table>
|
160
|
-
</div>
|
161
|
-
</div>
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
<div id="attribute-list">
|
166
|
-
<h3 class="section-bar">Attributes</h3>
|
167
|
-
|
168
|
-
<div class="name-list">
|
169
|
-
<table>
|
170
|
-
<tr class="top-aligned-row context-row">
|
171
|
-
<td class="context-item-name">__auth__</td>
|
172
|
-
<td class="context-item-value"> [RW] </td>
|
173
|
-
<td class="context-item-desc"></td>
|
174
|
-
</tr>
|
175
|
-
</table>
|
176
|
-
</div>
|
177
|
-
</div>
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
<!-- if method_list -->
|
182
|
-
<div id="methods">
|
183
|
-
<h3 class="section-bar">Public Class methods</h3>
|
184
|
-
|
185
|
-
<div id="method-M000001" class="method-detail">
|
186
|
-
<a name="M000001"></a>
|
187
|
-
|
188
|
-
<div class="method-heading">
|
189
|
-
<a href="#M000001" class="method-signature">
|
190
|
-
<span class="method-name">Route</span><span class="method-args">(*routes_paths)</span>
|
191
|
-
</a>
|
192
|
-
</div>
|
193
|
-
|
194
|
-
<div class="method-description">
|
195
|
-
<p>
|
196
|
-
Add routes to a controller class
|
197
|
-
</p>
|
198
|
-
<pre>
|
199
|
-
module Capcode
|
200
|
-
class Hello < Route '/hello/(.*)', '/hello/([^#]*)#(.*)'
|
201
|
-
def get( arg1, arg2 )
|
202
|
-
...
|
203
|
-
end
|
204
|
-
end
|
205
|
-
end
|
206
|
-
</pre>
|
207
|
-
<p>
|
208
|
-
In the <tt>get</tt> method, you will receive the maximum of parameters
|
209
|
-
declared by the routes. In this example, you will receive 2 parameters. So
|
210
|
-
if you go to <tt>/hello/world#friend</tt> then <tt>arg1</tt> will be <a
|
211
|
-
href="Capcode.html#M000013">set</a> to <tt>world</tt> and <tt>arg2</tt>
|
212
|
-
will be <a href="Capcode.html#M000013">set</a> to <tt>friend</tt>. Now if
|
213
|
-
you go to <tt>/hello/you</tt>, then <tt>arg1</tt> will be <a
|
214
|
-
href="Capcode.html#M000013">set</a> to <tt>you</tt> and <tt>arg2</tt> will
|
215
|
-
be <a href="Capcode.html#M000013">set</a> to <tt>nil</tt>
|
216
|
-
</p>
|
217
|
-
<p>
|
218
|
-
If the regexp in the route does not match, all arguments will be
|
219
|
-
<tt>nil</tt>
|
220
|
-
</p>
|
221
|
-
<p><a class="source-toggle" href="#"
|
222
|
-
onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
|
223
|
-
<div class="method-source-code" id="M000001-source">
|
224
|
-
<pre>
|
225
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 396</span>
|
226
|
-
396: <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>
|
227
|
-
397: <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>
|
228
|
-
398: <span class="ruby-constant">Class</span>.<span class="ruby-identifier">new</span> {
|
229
|
-
399: <span class="ruby-identifier">meta_def</span>(<span class="ruby-identifier">:__urls__</span>) {
|
230
|
-
400: <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>
|
231
|
-
401: <span class="ruby-comment cmt"># < Route '/hello/world/([^\/]*)/id(\d*)', '/hello/(.*)', :agent => /Songbird (\d\.\d)[\d\/]*?/</span>
|
232
|
-
402: <span class="ruby-comment cmt"># # => [ {</span>
|
233
|
-
403: <span class="ruby-comment cmt"># '/hello/world' => {</span>
|
234
|
-
404: <span class="ruby-comment cmt"># :regexp => '([^\/]*)/id(\d*)',</span>
|
235
|
-
405: <span class="ruby-comment cmt"># :route => '/hello/world/([^\/]*)/id(\d*)',</span>
|
236
|
-
406: <span class="ruby-comment cmt"># :nargs => 2</span>
|
237
|
-
407: <span class="ruby-comment cmt"># },</span>
|
238
|
-
408: <span class="ruby-comment cmt"># '/hello/world' => {</span>
|
239
|
-
409: <span class="ruby-comment cmt"># :regexp => '(.*)',</span>
|
240
|
-
410: <span class="ruby-comment cmt"># :route => '/hello/(.*)',</span>
|
241
|
-
411: <span class="ruby-comment cmt"># :nargs => 1</span>
|
242
|
-
412: <span class="ruby-comment cmt"># }</span>
|
243
|
-
413: <span class="ruby-comment cmt"># },</span>
|
244
|
-
414: <span class="ruby-comment cmt"># 2, </span>
|
245
|
-
415: <span class="ruby-comment cmt"># <Capcode::Klass>, </span>
|
246
|
-
416: <span class="ruby-comment cmt"># {:agent => /Songbird (\d\.\d)[\d\/]*?/} ]</span>
|
247
|
-
417: <span class="ruby-identifier">hash_of_routes</span> = {}
|
248
|
-
418: <span class="ruby-identifier">max_captures_for_routes</span> = <span class="ruby-value">0</span>
|
249
|
-
419: <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>
|
250
|
-
420: <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>
|
251
|
-
421: <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> )
|
252
|
-
422: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">nil?</span>
|
253
|
-
423: <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>)
|
254
|
-
424: <span class="ruby-identifier">hash_of_routes</span>[<span class="ruby-identifier">current_route_path</span>] = {
|
255
|
-
425: <span class="ruby-identifier">:regexp</span> =<span class="ruby-operator">></span> <span class="ruby-value str">''</span>,
|
256
|
-
426: <span class="ruby-identifier">:route</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">current_route_path</span>,
|
257
|
-
427: <span class="ruby-identifier">:nargs</span> =<span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
258
|
-
428: }
|
259
|
-
429: <span class="ruby-keyword kw">else</span>
|
260
|
-
430: <span class="ruby-identifier">_pre</span> = <span class="ruby-identifier">m</span>.<span class="ruby-identifier">pre_match</span>
|
261
|
-
431: <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>
|
262
|
-
432: <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>)
|
263
|
-
433: <span class="ruby-identifier">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>
|
264
|
-
434:
|
265
|
-
435: <span class="ruby-identifier">hash_of_routes</span>[<span class="ruby-identifier">_pre</span>] = {
|
266
|
-
436: <span class="ruby-identifier">:regexp</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">m</span>.<span class="ruby-identifier">captures</span>[<span class="ruby-value">0</span>],
|
267
|
-
437: <span class="ruby-identifier">:route</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">current_route_path</span>,
|
268
|
-
438: <span class="ruby-identifier">:nargs</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">captures_for_routes</span>
|
269
|
-
439: }
|
270
|
-
440: <span class="ruby-identifier">max_captures_for_routes</span> = <span class="ruby-identifier">captures_for_routes</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-identifier">captures_for_routes</span>
|
271
|
-
441: <span class="ruby-keyword kw">end</span>
|
272
|
-
442: <span class="ruby-keyword kw">else</span>
|
273
|
-
443: <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>
|
274
|
-
444: <span class="ruby-keyword kw">end</span>
|
275
|
-
445: <span class="ruby-keyword kw">end</span>
|
276
|
-
446: [<span class="ruby-identifier">hash_of_routes</span>, <span class="ruby-identifier">max_captures_for_routes</span>, <span class="ruby-keyword kw">self</span>]
|
277
|
-
447: }
|
278
|
-
448:
|
279
|
-
449: <span class="ruby-comment cmt"># Hash containing all the request parameters (GET or POST)</span>
|
280
|
-
450: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">params</span>
|
281
|
-
451: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
|
282
|
-
452: <span class="ruby-keyword kw">end</span>
|
283
|
-
453:
|
284
|
-
454: <span class="ruby-comment cmt"># Hash containing all the environment variables</span>
|
285
|
-
455: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env</span>
|
286
|
-
456: <span class="ruby-ivar">@env</span>
|
287
|
-
457: <span class="ruby-keyword kw">end</span>
|
288
|
-
458:
|
289
|
-
459: <span class="ruby-comment cmt"># Session hash</span>
|
290
|
-
460: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">session</span>
|
291
|
-
461: <span class="ruby-ivar">@env</span>[<span class="ruby-value str">'rack.session'</span>]
|
292
|
-
462: <span class="ruby-keyword kw">end</span>
|
293
|
-
463:
|
294
|
-
464: <span class="ruby-comment cmt"># Return the Rack::Request object</span>
|
295
|
-
465: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request</span>
|
296
|
-
466: <span class="ruby-ivar">@request</span>
|
297
|
-
467: <span class="ruby-keyword kw">end</span>
|
298
|
-
468:
|
299
|
-
469: <span class="ruby-comment cmt"># Return the Rack::Response object</span>
|
300
|
-
470: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">response</span>
|
301
|
-
471: <span class="ruby-ivar">@response</span>
|
302
|
-
472: <span class="ruby-keyword kw">end</span>
|
303
|
-
473:
|
304
|
-
474: <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>
|
305
|
-
475: <span class="ruby-ivar">@env</span> = <span class="ruby-identifier">e</span>
|
306
|
-
476: <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>
|
307
|
-
477: <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>)
|
308
|
-
478:
|
309
|
-
479: <span class="ruby-comment cmt"># Check authz</span>
|
310
|
-
480: <span class="ruby-identifier">authz_options</span> = <span class="ruby-keyword kw">nil</span>
|
311
|
-
481: <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>
|
312
|
-
482: <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>
|
313
|
-
483: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">authz_options</span>.<span class="ruby-identifier">nil?</span>
|
314
|
-
484: <span class="ruby-identifier">route</span> = <span class="ruby-keyword kw">nil</span>
|
315
|
-
485:
|
316
|
-
486: <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>
|
317
|
-
487: <span class="ruby-identifier">regexp</span> = <span class="ruby-node">"^#{r.gsub(/\/$/, "")}([/]{1}.*)?$"</span>
|
318
|
-
488: <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> )
|
319
|
-
489: <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>
|
320
|
-
490: <span class="ruby-identifier">route</span> = <span class="ruby-identifier">r</span>
|
321
|
-
491: <span class="ruby-identifier">authz_options</span> = <span class="ruby-identifier">o</span>
|
322
|
-
492: <span class="ruby-keyword kw">end</span>
|
323
|
-
493: <span class="ruby-keyword kw">end</span>
|
324
|
-
494: <span class="ruby-keyword kw">end</span>
|
325
|
-
495: <span class="ruby-keyword kw">end</span>
|
326
|
-
496: <span class="ruby-keyword kw">end</span>
|
327
|
-
497:
|
328
|
-
498: <span class="ruby-identifier">r</span> = <span class="ruby-identifier">catch</span>(<span class="ruby-identifier">:halt</span>) {
|
329
|
-
499: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">authz_options</span>.<span class="ruby-identifier">nil?</span>
|
330
|
-
500: <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>] ) {
|
331
|
-
501: <span class="ruby-identifier">authz_options</span>[<span class="ruby-identifier">:autz</span>]
|
332
|
-
502: }
|
333
|
-
503: <span class="ruby-keyword kw">end</span>
|
334
|
-
504:
|
335
|
-
505: <span class="ruby-identifier">max_match_size</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>]
|
336
|
-
506: <span class="ruby-identifier">match_distance</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>]
|
337
|
-
507:
|
338
|
-
508: <span class="ruby-identifier">result_route</span> = <span class="ruby-keyword kw">nil</span>
|
339
|
-
509: <span class="ruby-identifier">result_nargs</span> = <span class="ruby-keyword kw">nil</span>
|
340
|
-
510: <span class="ruby-identifier">result_args</span> = []
|
341
|
-
511:
|
342
|
-
512: <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">route</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
|
343
|
-
513: <span class="ruby-identifier">regexp</span> = <span class="ruby-constant">Regexp</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"^"</span><span class="ruby-operator">+</span><span class="ruby-identifier">data</span>[<span class="ruby-identifier">:route</span>]<span class="ruby-operator">+</span><span class="ruby-value str">"$"</span>)
|
344
|
-
514:
|
345
|
-
515: <span class="ruby-identifier">matching</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>)
|
346
|
-
516: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">matching</span>.<span class="ruby-identifier">nil?</span>
|
347
|
-
517:
|
348
|
-
518: <span class="ruby-identifier">result_args</span> = <span class="ruby-identifier">matching</span>.<span class="ruby-identifier">to_a</span>
|
349
|
-
519: <span class="ruby-identifier">result_args</span>.<span class="ruby-identifier">shift</span>
|
350
|
-
520: <span class="ruby-identifier">match_size</span> = <span class="ruby-identifier">matching</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
|
351
|
-
521:
|
352
|
-
522: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">match_size</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">max_match_size</span>
|
353
|
-
523: <span class="ruby-comment cmt"># OK Terminé</span>
|
354
|
-
524: <span class="ruby-identifier">result_route</span> = <span class="ruby-identifier">data</span>[<span class="ruby-identifier">:route</span>]
|
355
|
-
525: <span class="ruby-identifier">result_nargs</span> = <span class="ruby-identifier">data</span>[<span class="ruby-identifier">:nargs</span>]
|
356
|
-
526:
|
357
|
-
527: <span class="ruby-keyword kw">break</span>
|
358
|
-
528: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">max_match_size</span> <span class="ruby-operator">></span> <span class="ruby-identifier">match_size</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">match_distance</span> <span class="ruby-operator">></span> <span class="ruby-identifier">max_match_size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">match_size</span>
|
359
|
-
529: <span class="ruby-identifier">match_distance</span> = <span class="ruby-identifier">max_match_size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">match_size</span>
|
360
|
-
530:
|
361
|
-
531: <span class="ruby-identifier">result_route</span> = <span class="ruby-identifier">data</span>[<span class="ruby-identifier">:route</span>]
|
362
|
-
532: <span class="ruby-identifier">result_nargs</span> = <span class="ruby-identifier">data</span>[<span class="ruby-identifier">:nargs</span>]
|
363
|
-
533: <span class="ruby-keyword kw">end</span>
|
364
|
-
534: <span class="ruby-keyword kw">end</span>
|
365
|
-
535:
|
366
|
-
536: <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>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">result_route</span>.<span class="ruby-identifier">nil?</span>
|
367
|
-
537:
|
368
|
-
538: <span class="ruby-identifier">result_args</span> = <span class="ruby-identifier">result_args</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">max_match_size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">result_nargs</span>)
|
369
|
-
539:
|
370
|
-
540: <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> )
|
371
|
-
541:
|
372
|
-
542: <span class="ruby-keyword kw">if</span>( <span class="ruby-identifier">filter_output</span>.<span class="ruby-identifier">nil?</span> )
|
373
|
-
543: <span class="ruby-comment cmt"># case @env["REQUEST_METHOD"]</span>
|
374
|
-
544: <span class="ruby-comment cmt"># when "GET" </span>
|
375
|
-
545: <span class="ruby-comment cmt"># get( *args )</span>
|
376
|
-
546: <span class="ruby-comment cmt"># when "POST"</span>
|
377
|
-
547: <span class="ruby-comment cmt"># _method = params.delete( "_method" ) { |_| "post" }</span>
|
378
|
-
548: <span class="ruby-comment cmt"># send( _method.downcase.to_sym, *args )</span>
|
379
|
-
549: <span class="ruby-comment cmt"># else</span>
|
380
|
-
550: <span class="ruby-comment cmt"># _method = @env["REQUEST_METHOD"]</span>
|
381
|
-
551: <span class="ruby-comment cmt"># send( _method.downcase.to_sym, *args )</span>
|
382
|
-
552: <span class="ruby-comment cmt"># end</span>
|
383
|
-
553: <span class="ruby-keyword kw">begin</span>
|
384
|
-
554: <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-ivar">@env</span>[<span class="ruby-value str">"REQUEST_METHOD"</span>] }
|
385
|
-
555: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">method_defined?</span>( <span class="ruby-identifier">_method</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">to_sym</span> )
|
386
|
-
556: <span class="ruby-comment cmt"># send( _method.downcase.to_sym, *args )</span>
|
387
|
-
557: <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">result_args</span> )
|
388
|
-
558: <span class="ruby-keyword kw">else</span>
|
389
|
-
559: <span class="ruby-comment cmt"># any( *args )</span>
|
390
|
-
560: <span class="ruby-identifier">any</span>( <span class="ruby-operator">*</span><span class="ruby-identifier">result_args</span> )
|
391
|
-
561: <span class="ruby-keyword kw">end</span>
|
392
|
-
562: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
393
|
-
563: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">class</span>, <span class="ruby-identifier">e</span>.<span class="ruby-identifier">to_s</span>
|
394
|
-
564: <span class="ruby-keyword kw">end</span>
|
395
|
-
565: <span class="ruby-keyword kw">else</span>
|
396
|
-
566: <span class="ruby-identifier">filter_output</span>
|
397
|
-
567: <span class="ruby-keyword kw">end</span>
|
398
|
-
568: }
|
399
|
-
569:
|
400
|
-
570: <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>)
|
401
|
-
571: <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>
|
402
|
-
572: <span class="ruby-comment cmt">#r[1].each do |k,v|</span>
|
403
|
-
573: <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>
|
404
|
-
574: <span class="ruby-ivar">@response</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
|
405
|
-
575: <span class="ruby-keyword kw">end</span>
|
406
|
-
576: <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>
|
407
|
-
577: <span class="ruby-keyword kw">else</span>
|
408
|
-
578: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">r</span>
|
409
|
-
579: <span class="ruby-keyword kw">end</span>
|
410
|
-
580:
|
411
|
-
581: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">finish</span>
|
412
|
-
582: <span class="ruby-keyword kw">end</span>
|
413
|
-
583:
|
414
|
-
584: <span class="ruby-identifier">include</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Helpers</span>
|
415
|
-
585: <span class="ruby-identifier">include</span> <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Views</span>
|
416
|
-
586: }
|
417
|
-
587: <span class="ruby-keyword kw">end</span>
|
418
|
-
</pre>
|
419
|
-
</div>
|
420
|
-
</div>
|
421
|
-
</div>
|
422
|
-
|
423
|
-
<div id="method-M000010" class="method-detail">
|
424
|
-
<a name="M000010"></a>
|
425
|
-
|
426
|
-
<div class="method-heading">
|
427
|
-
<a href="#M000010" class="method-signature">
|
428
|
-
<span class="method-name">application</span><span class="method-args">( args = {} ) {|self| ...}</span>
|
429
|
-
</a>
|
430
|
-
</div>
|
431
|
-
|
432
|
-
<div class="method-description">
|
433
|
-
<p>
|
434
|
-
Return the Rack App.
|
435
|
-
</p>
|
436
|
-
<p>
|
437
|
-
Options : see <a
|
438
|
-
href="Capcode/Configuration.html#M000028">Capcode::Configuration.set</a>
|
439
|
-
</p>
|
440
|
-
<p>
|
441
|
-
Options <a href="Capcode.html#M000013">set</a> here replace the ones <a
|
442
|
-
href="Capcode.html#M000013">set</a> globally
|
443
|
-
</p>
|
444
|
-
<p><a class="source-toggle" href="#"
|
445
|
-
onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
|
446
|
-
<div class="method-source-code" id="M000010-source">
|
447
|
-
<pre>
|
448
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 656</span>
|
449
|
-
656: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">application</span>( <span class="ruby-identifier">args</span> = {} )
|
450
|
-
657: <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>)
|
451
|
-
658: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">print_debug</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>)
|
452
|
-
659:
|
453
|
-
660: <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>
|
454
|
-
661: <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> [
|
455
|
-
662: <span class="ruby-value str">"Filter"</span>,
|
456
|
-
663: <span class="ruby-value str">"Helpers"</span>,
|
457
|
-
664: <span class="ruby-value str">"RouteError"</span>,
|
458
|
-
665: <span class="ruby-value str">"Views"</span>,
|
459
|
-
666: <span class="ruby-value str">"ParameterError"</span>,
|
460
|
-
667: <span class="ruby-value str">"HTTPError"</span>,
|
461
|
-
668: <span class="ruby-value str">"StaticFiles"</span>,
|
462
|
-
669: <span class="ruby-value str">"Configuration"</span>,
|
463
|
-
670: <span class="ruby-value str">"MissingLibrary"</span>,
|
464
|
-
671: <span class="ruby-value str">"Route"</span>,
|
465
|
-
672: <span class="ruby-value str">"RenderError"</span>
|
466
|
-
673: ].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">k</span>)
|
467
|
-
674: }.<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>
|
468
|
-
675: <span class="ruby-keyword kw">begin</span>
|
469
|
-
676: <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>
|
470
|
-
677: <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>
|
471
|
-
678: <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>
|
472
|
-
679: <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>)
|
473
|
-
680: <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>
|
474
|
-
681: <span class="ruby-keyword kw">end</span>
|
475
|
-
682: <span class="ruby-keyword kw">end</span>
|
476
|
-
683: <span class="ruby-keyword kw">rescue</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
477
|
-
684: <span class="ruby-identifier">raise</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span>
|
478
|
-
685: <span class="ruby-keyword kw">end</span>
|
479
|
-
686: <span class="ruby-keyword kw">end</span>
|
480
|
-
687:
|
481
|
-
688: <span class="ruby-comment cmt"># Set Static directory</span>
|
482
|
-
689: <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>
|
483
|
-
690:
|
484
|
-
691: <span class="ruby-comment cmt"># Initialize Rack App</span>
|
485
|
-
692: <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>)
|
486
|
-
693: <span class="ruby-comment cmt"># app = Rack::URLMap.new(Capcode.routes)</span>
|
487
|
-
694: <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>)
|
488
|
-
695: <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>)
|
489
|
-
696: <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>(
|
490
|
-
697: <span class="ruby-identifier">app</span>,
|
491
|
-
698: <span class="ruby-comment cmt">#:urls => [@@__STATIC_DIR], </span>
|
492
|
-
699: <span class="ruby-identifier">:urls</span> =<span class="ruby-operator">></span> [<span class="ruby-constant">Capcode</span>.<span class="ruby-identifier">static</span>],
|
493
|
-
700: <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>))
|
494
|
-
701: ) <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>
|
495
|
-
702: <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>)
|
496
|
-
703: <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>) )
|
497
|
-
704: <span class="ruby-identifier">app</span> = <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">StaticFiles</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">app</span>)
|
498
|
-
705: <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>)
|
499
|
-
706: <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>)
|
500
|
-
707: <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>)
|
501
|
-
708: <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>)
|
502
|
-
709: <span class="ruby-comment cmt">#app = Rack::Reloader.new(app) ## -- NE RELOAD QUE capcode.rb -- So !!!</span>
|
503
|
-
710: <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-ivar">@cclogger</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>)) )
|
504
|
-
711:
|
505
|
-
712: <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>
|
506
|
-
713: <span class="ruby-identifier">middleware</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">block</span> = <span class="ruby-identifier">mw</span>
|
507
|
-
714: <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>)
|
508
|
-
715: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>
|
509
|
-
716: <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> )
|
510
|
-
717: <span class="ruby-keyword kw">else</span>
|
511
|
-
718: <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> )
|
512
|
-
719: <span class="ruby-keyword kw">end</span>
|
513
|
-
720: <span class="ruby-keyword kw">end</span>
|
514
|
-
721:
|
515
|
-
722: <span class="ruby-comment cmt"># Start database</span>
|
516
|
-
723: <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>
|
517
|
-
724: <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>) )
|
518
|
-
725: <span class="ruby-keyword kw">end</span>
|
519
|
-
726:
|
520
|
-
727: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
521
|
-
728: <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>)
|
522
|
-
729: <span class="ruby-keyword kw">yield</span>( <span class="ruby-keyword kw">self</span> )
|
523
|
-
730: <span class="ruby-keyword kw">end</span>
|
524
|
-
731:
|
525
|
-
732: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">app</span>
|
526
|
-
733: <span class="ruby-keyword kw">end</span>
|
527
|
-
</pre>
|
528
|
-
</div>
|
529
|
-
</div>
|
530
|
-
</div>
|
531
|
-
|
532
|
-
<div id="method-M000014" class="method-detail">
|
533
|
-
<a name="M000014"></a>
|
534
|
-
|
535
|
-
<div class="method-heading">
|
536
|
-
<a href="#M000014" class="method-signature">
|
537
|
-
<span class="method-name">before_filter</span><span class="method-args">( action, opts = {} )</span>
|
538
|
-
</a>
|
539
|
-
</div>
|
540
|
-
|
541
|
-
<div class="method-description">
|
542
|
-
<p>
|
543
|
-
Add a before filter :
|
544
|
-
</p>
|
545
|
-
<pre>
|
546
|
-
module Capcode
|
547
|
-
before_filter :my_global_action
|
548
|
-
before_filter :need_login, :except => [:Login]
|
549
|
-
before_filter :check_mail, :only => [:MailBox]
|
550
|
-
# ...
|
551
|
-
end
|
552
|
-
</pre>
|
553
|
-
<p>
|
554
|
-
If the action return nil, the normal get or post will be executed, else no.
|
555
|
-
</p>
|
556
|
-
<p><a class="source-toggle" href="#"
|
557
|
-
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
558
|
-
<div class="method-source-code" id="M000014-source">
|
559
|
-
<pre>
|
560
|
-
<span class="ruby-comment cmt"># File lib/capcode/filters.rb, line 14</span>
|
561
|
-
14: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">before_filter</span>( <span class="ruby-identifier">action</span>, <span class="ruby-identifier">opts</span> = {} )
|
562
|
-
15: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Filter</span>.<span class="ruby-identifier">filters</span>[<span class="ruby-identifier">action</span>] = { }
|
563
|
-
16: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Filter</span>.<span class="ruby-identifier">ordered_actions</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">action</span>
|
564
|
-
17:
|
565
|
-
18: <span class="ruby-identifier">opts</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>
|
566
|
-
19: <span class="ruby-constant">Capcode</span><span class="ruby-operator">::</span><span class="ruby-constant">Filter</span>.<span class="ruby-identifier">filters</span>[<span class="ruby-identifier">action</span>][<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
|
567
|
-
20: <span class="ruby-keyword kw">end</span>
|
568
|
-
21: <span class="ruby-keyword kw">end</span>
|
569
|
-
</pre>
|
570
|
-
</div>
|
571
|
-
</div>
|
572
|
-
</div>
|
573
|
-
|
574
|
-
<div id="method-M000003" class="method-detail">
|
575
|
-
<a name="M000003"></a>
|
576
|
-
|
577
|
-
<div class="method-heading">
|
578
|
-
<a href="#M000003" class="method-signature">
|
579
|
-
<span class="method-name">env</span><span class="method-args">()</span>
|
580
|
-
</a>
|
581
|
-
</div>
|
582
|
-
|
583
|
-
<div class="method-description">
|
584
|
-
<p>
|
585
|
-
Hash containing all the environment variables
|
586
|
-
</p>
|
587
|
-
<p><a class="source-toggle" href="#"
|
588
|
-
onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
|
589
|
-
<div class="method-source-code" id="M000003-source">
|
590
|
-
<pre>
|
591
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 455</span>
|
592
|
-
455: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">env</span>
|
593
|
-
456: <span class="ruby-ivar">@env</span>
|
594
|
-
457: <span class="ruby-keyword kw">end</span>
|
595
|
-
</pre>
|
596
|
-
</div>
|
597
|
-
</div>
|
598
|
-
</div>
|
599
|
-
|
600
|
-
<div id="method-M000009" class="method-detail">
|
601
|
-
<a name="M000009"></a>
|
602
|
-
|
603
|
-
<div class="method-heading">
|
604
|
-
<a href="#M000009" class="method-signature">
|
605
|
-
<span class="method-name">http_authentication</span><span class="method-args">( opts = {}, &b )</span>
|
606
|
-
</a>
|
607
|
-
</div>
|
608
|
-
|
609
|
-
<div class="method-description">
|
610
|
-
<p>
|
611
|
-
Allow you to add and HTTP Authentication (Basic or Digest) to controllers
|
612
|
-
for or specific route
|
613
|
-
</p>
|
614
|
-
<p>
|
615
|
-
Options :
|
616
|
-
</p>
|
617
|
-
<ul>
|
618
|
-
<li><tt>:type</tt> : Authentication type (<tt>:basic</tt> or <tt>:digest</tt>)
|
619
|
-
- default : <tt>:basic</tt>
|
620
|
-
|
621
|
-
</li>
|
622
|
-
<li><tt>:realm</tt> : realm ;) - default : "Capcode.app"
|
623
|
-
|
624
|
-
</li>
|
625
|
-
<li><tt>:opaque</tt> : Your secret passphrase. You MUST <a
|
626
|
-
href="Capcode.html#M000013">set</a> it if you <a
|
627
|
-
href="Capcode.html#M000008">use</a> Digest Auth - default :
|
628
|
-
"opaque"
|
629
|
-
|
630
|
-
</li>
|
631
|
-
<li><tt>:routes</tt> : Routes - default : "/"
|
632
|
-
|
633
|
-
</li>
|
634
|
-
</ul>
|
635
|
-
<p>
|
636
|
-
The block must return a Hash of username => password like that :
|
637
|
-
</p>
|
638
|
-
<pre>
|
639
|
-
{
|
640
|
-
"user1" => "pass1",
|
641
|
-
"user2" => "pass2",
|
642
|
-
# ...
|
643
|
-
}
|
644
|
-
</pre>
|
645
|
-
<p><a class="source-toggle" href="#"
|
646
|
-
onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
|
647
|
-
<div class="method-source-code" id="M000009-source">
|
648
|
-
<pre>
|
649
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 630</span>
|
650
|
-
630: <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> )
|
651
|
-
631: <span class="ruby-identifier">options</span> = {
|
652
|
-
632: <span class="ruby-identifier">:type</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">:basic</span>,
|
653
|
-
633: <span class="ruby-identifier">:realm</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"Capcode.app"</span>,
|
654
|
-
634: <span class="ruby-identifier">:opaque</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"opaque"</span>,
|
655
|
-
635: <span class="ruby-identifier">:routes</span> =<span class="ruby-operator">></span> <span class="ruby-value str">"/"</span>
|
656
|
-
636: }.<span class="ruby-identifier">merge</span>( <span class="ruby-identifier">opts</span> )
|
657
|
-
637:
|
658
|
-
638: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:autz</span>] = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">call</span>()
|
659
|
-
639:
|
660
|
-
640: <span class="ruby-ivar">@__auth__</span> <span class="ruby-operator">||=</span> {}
|
661
|
-
641:
|
662
|
-
642: <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>
|
663
|
-
643: <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>
|
664
|
-
644: <span class="ruby-ivar">@__auth__</span>[<span class="ruby-identifier">r</span>] = <span class="ruby-identifier">options</span>
|
665
|
-
645: <span class="ruby-keyword kw">end</span>
|
666
|
-
646: <span class="ruby-keyword kw">else</span>
|
667
|
-
647: <span class="ruby-ivar">@__auth__</span>[<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:routes</span>]] = <span class="ruby-identifier">options</span>
|
668
|
-
648: <span class="ruby-keyword kw">end</span>
|
669
|
-
649: <span class="ruby-keyword kw">end</span>
|
670
|
-
</pre>
|
671
|
-
</div>
|
672
|
-
</div>
|
673
|
-
</div>
|
674
|
-
|
675
|
-
<div id="method-M000012" class="method-detail">
|
676
|
-
<a name="M000012"></a>
|
677
|
-
|
678
|
-
<div class="method-heading">
|
679
|
-
<a href="#M000012" class="method-signature">
|
680
|
-
<span class="method-name">logger</span><span class="method-args">()</span>
|
681
|
-
</a>
|
682
|
-
</div>
|
683
|
-
|
684
|
-
<div class="method-description">
|
685
|
-
<p><a class="source-toggle" href="#"
|
686
|
-
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
687
|
-
<div class="method-source-code" id="M000012-source">
|
688
|
-
<pre>
|
689
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 884</span>
|
690
|
-
884: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">logger</span>
|
691
|
-
885: <span class="ruby-ivar">@cclogger</span>
|
692
|
-
886: <span class="ruby-keyword kw">end</span>
|
693
|
-
</pre>
|
694
|
-
</div>
|
695
|
-
</div>
|
696
|
-
</div>
|
697
|
-
|
698
|
-
<div id="method-M000007" class="method-detail">
|
699
|
-
<a name="M000007"></a>
|
700
|
-
|
701
|
-
<div class="method-heading">
|
702
|
-
<a href="#M000007" class="method-signature">
|
703
|
-
<span class="method-name">map</span><span class="method-args">( route ) {|| ...}</span>
|
704
|
-
</a>
|
705
|
-
</div>
|
706
|
-
|
707
|
-
<div class="method-description">
|
708
|
-
<p>
|
709
|
-
This method help you to <a href="Capcode.html#M000007">map</a> and URL to a
|
710
|
-
Rack or What you want Helper
|
711
|
-
</p>
|
712
|
-
<pre>
|
713
|
-
Capcode.map( "/file" ) do
|
714
|
-
Rack::File.new( "." )
|
715
|
-
end
|
716
|
-
</pre>
|
717
|
-
<p><a class="source-toggle" href="#"
|
718
|
-
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
719
|
-
<div class="method-source-code" id="M000007-source">
|
720
|
-
<pre>
|
721
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 595</span>
|
722
|
-
595: <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> )
|
723
|
-
596: <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>
|
724
|
-
597: <span class="ruby-keyword kw">end</span>
|
725
|
-
</pre>
|
726
|
-
</div>
|
727
|
-
</div>
|
728
|
-
</div>
|
729
|
-
|
730
|
-
<div id="method-M000002" class="method-detail">
|
731
|
-
<a name="M000002"></a>
|
732
|
-
|
733
|
-
<div class="method-heading">
|
734
|
-
<a href="#M000002" class="method-signature">
|
735
|
-
<span class="method-name">params</span><span class="method-args">()</span>
|
736
|
-
</a>
|
737
|
-
</div>
|
738
|
-
|
739
|
-
<div class="method-description">
|
740
|
-
<p>
|
741
|
-
Hash containing all the <a href="Capcode.html#M000005">request</a>
|
742
|
-
parameters (GET or POST)
|
743
|
-
</p>
|
744
|
-
<p><a class="source-toggle" href="#"
|
745
|
-
onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
|
746
|
-
<div class="method-source-code" id="M000002-source">
|
747
|
-
<pre>
|
748
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 450</span>
|
749
|
-
450: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">params</span>
|
750
|
-
451: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">params</span>
|
751
|
-
452: <span class="ruby-keyword kw">end</span>
|
752
|
-
</pre>
|
753
|
-
</div>
|
754
|
-
</div>
|
755
|
-
</div>
|
756
|
-
|
757
|
-
<div id="method-M000005" class="method-detail">
|
758
|
-
<a name="M000005"></a>
|
759
|
-
|
760
|
-
<div class="method-heading">
|
761
|
-
<a href="#M000005" class="method-signature">
|
762
|
-
<span class="method-name">request</span><span class="method-args">()</span>
|
763
|
-
</a>
|
764
|
-
</div>
|
765
|
-
|
766
|
-
<div class="method-description">
|
767
|
-
<p>
|
768
|
-
Return the Rack::Request object
|
769
|
-
</p>
|
770
|
-
<p><a class="source-toggle" href="#"
|
771
|
-
onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
|
772
|
-
<div class="method-source-code" id="M000005-source">
|
773
|
-
<pre>
|
774
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 465</span>
|
775
|
-
465: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request</span>
|
776
|
-
466: <span class="ruby-ivar">@request</span>
|
777
|
-
467: <span class="ruby-keyword kw">end</span>
|
778
|
-
</pre>
|
779
|
-
</div>
|
780
|
-
</div>
|
781
|
-
</div>
|
782
|
-
|
783
|
-
<div id="method-M000006" class="method-detail">
|
784
|
-
<a name="M000006"></a>
|
785
|
-
|
786
|
-
<div class="method-heading">
|
787
|
-
<a href="#M000006" class="method-signature">
|
788
|
-
<span class="method-name">response</span><span class="method-args">()</span>
|
789
|
-
</a>
|
790
|
-
</div>
|
791
|
-
|
792
|
-
<div class="method-description">
|
793
|
-
<p>
|
794
|
-
Return the Rack::Response object
|
795
|
-
</p>
|
796
|
-
<p><a class="source-toggle" href="#"
|
797
|
-
onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
|
798
|
-
<div class="method-source-code" id="M000006-source">
|
799
|
-
<pre>
|
800
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 470</span>
|
801
|
-
470: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">response</span>
|
802
|
-
471: <span class="ruby-ivar">@response</span>
|
803
|
-
472: <span class="ruby-keyword kw">end</span>
|
804
|
-
</pre>
|
805
|
-
</div>
|
806
|
-
</div>
|
807
|
-
</div>
|
808
|
-
|
809
|
-
<div id="method-M000011" class="method-detail">
|
810
|
-
<a name="M000011"></a>
|
811
|
-
|
812
|
-
<div class="method-heading">
|
813
|
-
<a href="#M000011" class="method-signature">
|
814
|
-
<span class="method-name">run</span><span class="method-args">( args = {} ) {|self| ...}</span>
|
815
|
-
</a>
|
816
|
-
</div>
|
817
|
-
|
818
|
-
<div class="method-description">
|
819
|
-
<p>
|
820
|
-
Start your <a href="Capcode.html#M000010">application</a>.
|
821
|
-
</p>
|
822
|
-
<p>
|
823
|
-
Options : see <a
|
824
|
-
href="Capcode/Configuration.html#M000028">Capcode::Configuration.set</a>
|
825
|
-
</p>
|
826
|
-
<p>
|
827
|
-
Options <a href="Capcode.html#M000013">set</a> here replace the ones <a
|
828
|
-
href="Capcode.html#M000013">set</a> globally
|
829
|
-
</p>
|
830
|
-
<p><a class="source-toggle" href="#"
|
831
|
-
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
832
|
-
<div class="method-source-code" id="M000011-source">
|
833
|
-
<pre>
|
834
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 740</span>
|
835
|
-
740: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>( <span class="ruby-identifier">args</span> = {} )
|
836
|
-
741: <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>)
|
837
|
-
742:
|
838
|
-
743: <span class="ruby-comment cmt"># Parse options</span>
|
839
|
-
744: <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>
|
840
|
-
745: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">banner</span> = <span class="ruby-node">"Usage: #{File.basename($0)} [options]"</span>
|
841
|
-
746: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">""</span>
|
842
|
-
747: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">"Specific options:"</span>
|
843
|
-
748:
|
844
|
-
749: <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> ) {
|
845
|
-
750: <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>
|
846
|
-
751: }
|
847
|
-
752: <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>
|
848
|
-
753: <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>
|
849
|
-
754: }
|
850
|
-
755: <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>
|
851
|
-
756: <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>
|
852
|
-
757: }
|
853
|
-
758: <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>
|
854
|
-
759: <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>
|
855
|
-
760: }
|
856
|
-
761: <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>
|
857
|
-
762: <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>
|
858
|
-
763: }
|
859
|
-
764: <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>
|
860
|
-
765: <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>
|
861
|
-
766: }
|
862
|
-
767: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>( <span class="ruby-value str">"-S"</span>, <span class="ruby-value str">"--server SERVER"</span>, <span class="ruby-node">"Server to use (default: #{Capcode::Configuration.get(:server)})"</span> ) { <span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span>
|
863
|
-
768: <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">r</span>
|
864
|
-
769: }
|
865
|
-
770:
|
866
|
-
771: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">""</span>
|
867
|
-
772: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">separator</span> <span class="ruby-value str">"Common options:"</span>
|
868
|
-
773:
|
869
|
-
774: <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>
|
870
|
-
775: <span class="ruby-identifier">puts</span> <span class="ruby-identifier">opts</span>
|
871
|
-
776: <span class="ruby-identifier">exit</span>
|
872
|
-
777: <span class="ruby-keyword kw">end</span>
|
873
|
-
778: <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>
|
874
|
-
779: <span class="ruby-identifier">puts</span> <span class="ruby-node">"Capcode version #{Capcode::CAPCOD_VERION} (ruby v#{RUBY_VERSION})"</span>
|
875
|
-
780: <span class="ruby-identifier">exit</span>
|
876
|
-
781: <span class="ruby-keyword kw">end</span>
|
877
|
-
782: <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>
|
878
|
-
783: <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>
|
879
|
-
784: <span class="ruby-keyword kw">end</span>
|
880
|
-
785: <span class="ruby-keyword kw">end</span>
|
881
|
-
786:
|
882
|
-
787: <span class="ruby-keyword kw">begin</span>
|
883
|
-
788: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse!</span> <span class="ruby-constant">ARGV</span>
|
884
|
-
789: <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>
|
885
|
-
790: <span class="ruby-identifier">puts</span> <span class="ruby-node">"!! #{ex.message}"</span>
|
886
|
-
791: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** use `#{File.basename($0)} --help` for more details..."</span>
|
887
|
-
792: <span class="ruby-identifier">exit</span> <span class="ruby-value">1</span>
|
888
|
-
793: <span class="ruby-keyword kw">end</span>
|
889
|
-
794:
|
890
|
-
795: <span class="ruby-comment cmt"># Run in the Working directory</span>
|
891
|
-
796: <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>)
|
892
|
-
797: <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>
|
893
|
-
798:
|
894
|
-
799: <span class="ruby-comment cmt"># Check that mongrel exists </span>
|
895
|
-
800: <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>
|
896
|
-
801: <span class="ruby-keyword kw">begin</span>
|
897
|
-
802: <span class="ruby-identifier">require</span> <span class="ruby-value str">'mongrel'</span>
|
898
|
-
803: <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>
|
899
|
-
804: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">LoadError</span>
|
900
|
-
805: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"!! could not load mongrel. Falling back to webrick."</span>
|
901
|
-
806: <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>
|
902
|
-
807: <span class="ruby-keyword kw">end</span>
|
903
|
-
808: <span class="ruby-keyword kw">end</span>
|
904
|
-
809:
|
905
|
-
810: <span class="ruby-comment cmt"># From rackup !!!</span>
|
906
|
-
811: <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>)
|
907
|
-
812: <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>
|
908
|
-
813: <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>
|
909
|
-
814: <span class="ruby-identifier">exit</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fork</span>
|
910
|
-
815: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">setsid</span>
|
911
|
-
816: <span class="ruby-identifier">exit</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">fork</span>
|
912
|
-
817: <span class="ruby-comment cmt"># Dir.chdir "/"</span>
|
913
|
-
818: <span class="ruby-constant">File</span>.<span class="ruby-identifier">umask</span> <span class="ruby-value">0000</span>
|
914
|
-
819: <span class="ruby-constant">STDIN</span>.<span class="ruby-identifier">reopen</span> <span class="ruby-value str">"/dev/null"</span>
|
915
|
-
820: <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>
|
916
|
-
821: <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>
|
917
|
-
822: <span class="ruby-keyword kw">else</span>
|
918
|
-
823: <span class="ruby-constant">Process</span>.<span class="ruby-identifier">daemon</span>
|
919
|
-
824: <span class="ruby-keyword kw">end</span>
|
920
|
-
825: <span class="ruby-keyword kw">else</span>
|
921
|
-
826: <span class="ruby-identifier">puts</span> <span class="ruby-node">"!! daemonize option unavailable on #{RUBY_PLATFORM} platform."</span>
|
922
|
-
827: <span class="ruby-keyword kw">end</span>
|
923
|
-
828:
|
924
|
-
829: <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>) }
|
925
|
-
830: <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>)) }
|
926
|
-
831: <span class="ruby-keyword kw">end</span>
|
927
|
-
832:
|
928
|
-
833: <span class="ruby-identifier">app</span> = <span class="ruby-keyword kw">nil</span>
|
929
|
-
834: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
|
930
|
-
835: <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> ) }
|
931
|
-
836: <span class="ruby-keyword kw">else</span>
|
932
|
-
837: <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>)
|
933
|
-
838: <span class="ruby-keyword kw">end</span>
|
934
|
-
839:
|
935
|
-
840: <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>)
|
936
|
-
841: <span class="ruby-identifier">puts</span> <span class="ruby-value str">"Run console..."</span>
|
937
|
-
842: <span class="ruby-constant">IRB</span>.<span class="ruby-identifier">start</span>
|
938
|
-
843: <span class="ruby-identifier">exit</span>
|
939
|
-
844: <span class="ruby-keyword kw">end</span>
|
940
|
-
845:
|
941
|
-
846: <span class="ruby-comment cmt"># Start server</span>
|
942
|
-
847: <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>
|
943
|
-
848: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"mongrel"</span>
|
944
|
-
849: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting Mongrel on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>
|
945
|
-
850: <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>
|
946
|
-
851: <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> }
|
947
|
-
852: }
|
948
|
-
853: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"webrick"</span>
|
949
|
-
854: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting WEBrick on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>
|
950
|
-
855: <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>
|
951
|
-
856: <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> }
|
952
|
-
857: }
|
953
|
-
858: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"thin"</span>
|
954
|
-
859: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting Thin on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>
|
955
|
-
860: <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>
|
956
|
-
861: <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> }
|
957
|
-
862: }
|
958
|
-
863: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"unicorn"</span>
|
959
|
-
864: <span class="ruby-identifier">require</span> <span class="ruby-value str">'unicorn/launcher'</span>
|
960
|
-
865: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting Unicorn on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>
|
961
|
-
866: <span class="ruby-constant">Unicorn</span>.<span class="ruby-identifier">run</span>( <span class="ruby-identifier">app</span>, {<span class="ruby-identifier">:listeners</span> =<span class="ruby-operator">></span> [<span class="ruby-node">"#{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>]} )
|
962
|
-
867: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"rainbows"</span>
|
963
|
-
868: <span class="ruby-identifier">require</span> <span class="ruby-value str">'unicorn/launcher'</span>
|
964
|
-
869: <span class="ruby-identifier">require</span> <span class="ruby-value str">'rainbows'</span>
|
965
|
-
870: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting Rainbow on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>
|
966
|
-
871: <span class="ruby-constant">Rainbows</span>.<span class="ruby-identifier">run</span>( <span class="ruby-identifier">app</span>, {<span class="ruby-identifier">:listeners</span> =<span class="ruby-operator">></span> [<span class="ruby-node">"#{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>]} )
|
967
|
-
872: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">"control_tower"</span>
|
968
|
-
873: <span class="ruby-identifier">require</span> <span class="ruby-value str">'control_tower'</span>
|
969
|
-
874: <span class="ruby-identifier">puts</span> <span class="ruby-node">"** Starting ControlTower on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"</span>
|
970
|
-
875: <span class="ruby-constant">ControlTower</span><span class="ruby-operator">::</span><span class="ruby-constant">Server</span>.<span class="ruby-identifier">new</span>( <span class="ruby-identifier">app</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-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">start</span>
|
971
|
-
876: <span class="ruby-keyword kw">end</span>
|
972
|
-
877: <span class="ruby-keyword kw">end</span>
|
973
|
-
878: <span class="ruby-keyword kw">end</span>
|
974
|
-
</pre>
|
975
|
-
</div>
|
976
|
-
</div>
|
977
|
-
</div>
|
978
|
-
|
979
|
-
<div id="method-M000004" class="method-detail">
|
980
|
-
<a name="M000004"></a>
|
981
|
-
|
982
|
-
<div class="method-heading">
|
983
|
-
<a href="#M000004" class="method-signature">
|
984
|
-
<span class="method-name">session</span><span class="method-args">()</span>
|
985
|
-
</a>
|
986
|
-
</div>
|
987
|
-
|
988
|
-
<div class="method-description">
|
989
|
-
<p>
|
990
|
-
Session hash
|
991
|
-
</p>
|
992
|
-
<p><a class="source-toggle" href="#"
|
993
|
-
onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
|
994
|
-
<div class="method-source-code" id="M000004-source">
|
995
|
-
<pre>
|
996
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 460</span>
|
997
|
-
460: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">session</span>
|
998
|
-
461: <span class="ruby-ivar">@env</span>[<span class="ruby-value str">'rack.session'</span>]
|
999
|
-
462: <span class="ruby-keyword kw">end</span>
|
1000
|
-
</pre>
|
1001
|
-
</div>
|
1002
|
-
</div>
|
1003
|
-
</div>
|
1004
|
-
|
1005
|
-
<div id="method-M000013" class="method-detail">
|
1006
|
-
<a name="M000013"></a>
|
1007
|
-
|
1008
|
-
<div class="method-heading">
|
1009
|
-
<a href="#M000013" class="method-signature">
|
1010
|
-
<span class="method-name">set</span><span class="method-args">(key, value, opts = {})</span>
|
1011
|
-
</a>
|
1012
|
-
</div>
|
1013
|
-
|
1014
|
-
<div class="method-description">
|
1015
|
-
<p><a class="source-toggle" href="#"
|
1016
|
-
onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
|
1017
|
-
<div class="method-source-code" id="M000013-source">
|
1018
|
-
<pre>
|
1019
|
-
<span class="ruby-comment cmt"># File lib/capcode/configuration.rb, line 3</span>
|
1020
|
-
3: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">opts</span> = {}); <span class="ruby-constant">Configuration</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">opts</span>); <span class="ruby-keyword kw">end</span>
|
1021
|
-
</pre>
|
1022
|
-
</div>
|
1023
|
-
</div>
|
1024
|
-
</div>
|
1025
|
-
|
1026
|
-
<div id="method-M000008" class="method-detail">
|
1027
|
-
<a name="M000008"></a>
|
1028
|
-
|
1029
|
-
<div class="method-heading">
|
1030
|
-
<a href="#M000008" class="method-signature">
|
1031
|
-
<span class="method-name">use</span><span class="method-args">(middleware, *args, &block)</span>
|
1032
|
-
</a>
|
1033
|
-
</div>
|
1034
|
-
|
1035
|
-
<div class="method-description">
|
1036
|
-
<p>
|
1037
|
-
This method allow you to <a href="Capcode.html#M000008">use</a> a Rack
|
1038
|
-
middleware
|
1039
|
-
</p>
|
1040
|
-
<p>
|
1041
|
-
Example :
|
1042
|
-
</p>
|
1043
|
-
<pre>
|
1044
|
-
module Capcode
|
1045
|
-
...
|
1046
|
-
use Rack::Codehighlighter, :coderay, :element => "pre",
|
1047
|
-
:pattern => /\A:::(\w+)\s*\n/, :logging => false
|
1048
|
-
...
|
1049
|
-
end
|
1050
|
-
</pre>
|
1051
|
-
<p><a class="source-toggle" href="#"
|
1052
|
-
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
1053
|
-
<div class="method-source-code" id="M000008-source">
|
1054
|
-
<pre>
|
1055
|
-
<span class="ruby-comment cmt"># File lib/capcode.rb, line 609</span>
|
1056
|
-
609: <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>)
|
1057
|
-
610: <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>]
|
1058
|
-
611: <span class="ruby-keyword kw">end</span>
|
1059
|
-
</pre>
|
1060
|
-
</div>
|
1061
|
-
</div>
|
1062
|
-
</div>
|
1063
|
-
|
1064
|
-
|
1065
|
-
</div>
|
1066
|
-
|
1067
|
-
|
1068
|
-
</div>
|
1069
|
-
|
1070
|
-
|
1071
|
-
<div id="validator-badges">
|
1072
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
1073
|
-
</div>
|
1074
|
-
|
1075
|
-
</body>
|
1076
|
-
</html>
|