Capcode 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -66,6 +66,7 @@
66
66
  "<a href="../../files/lib/capcode_rb.html" value="File: capcode.rb">lib/capcode.rb</a>",
67
67
  <a href="http://greg.rubyfr.net">nil</a>].each do<br />
68
68
  <a href="../../classes/Capcode.html" title="Module: Capcode">Capcode</a>.view_html<br />
69
+ <a href="../../classes/Capcode/Views.html" title="Module: Capcode::Views">Capcode::Views</a>.view_html<br />
69
70
  <a href="../../classes/Capcode/Helpers.html" title="Module: Capcode::Helpers">Capcode::Helpers</a>.view_html<br />
70
71
  <a href="../../classes/Capcode/HTTPError.html" title="Class: Capcode::HTTPError">Capcode::HTTPError</a>.view_html<br />
71
72
  <a href="../../classes/Capcode/RouteError.html" title="Class: Capcode::RouteError">Capcode::RouteError</a>.view_html<br />
@@ -113,6 +114,7 @@ Do the same (r500 and r501) to customize 500 and 501 errors
113
114
  <ul>
114
115
  <li>Rack</li>
115
116
  <li><a href="Capcode/Helpers.html">Capcode::Helpers</a></li>
117
+ <li><a href="Capcode/Views.html">Capcode::Views</a></li>
116
118
  </ul>
117
119
 
118
120
 
@@ -66,6 +66,7 @@
66
66
  "<a href="../../files/lib/capcode_rb.html" value="File: capcode.rb">lib/capcode.rb</a>",
67
67
  <a href="http://greg.rubyfr.net">nil</a>].each do<br />
68
68
  <a href="../../classes/Capcode.html" title="Module: Capcode">Capcode</a>.view_html<br />
69
+ <a href="../../classes/Capcode/Views.html" title="Module: Capcode::Views">Capcode::Views</a>.view_html<br />
69
70
  <a href="../../classes/Capcode/Helpers.html" title="Module: Capcode::Helpers">Capcode::Helpers</a>.view_html<br />
70
71
  <a href="../../classes/Capcode/HTTPError.html" title="Class: Capcode::HTTPError">Capcode::HTTPError</a>.view_html<br />
71
72
  <a href="../../classes/Capcode/RouteError.html" title="Class: Capcode::RouteError">Capcode::RouteError</a>.view_html<br />
@@ -97,14 +98,15 @@ controllers
97
98
  <ul>
98
99
  <li>Rack</li>
99
100
  <li><a href="Capcode/Helpers.html">Capcode::Helpers</a></li>
101
+ <li><a href="Capcode/Views.html">Capcode::Views</a></li>
100
102
  </ul>
101
103
 
102
104
  <h2 class="ruled">Methods</h2>
103
105
  <h4 class="ruled">Public Instance method:
104
- <strong><a name="M000011">URL( klass, *a )</a></strong> <a href="#M000011"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: URL" /></a></h4>
106
+ <strong><a name="M000012">URL( klass, *a )</a></strong> <a href="#M000012"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: URL" /></a></h4>
105
107
 
106
108
  <p>
107
- Builds an <a href="Helpers.html#M000011">URL</a> route to a controller or a
109
+ Builds an <a href="Helpers.html#M000012">URL</a> route to a controller or a
108
110
  path
109
111
  </p>
110
112
  <p>
@@ -125,29 +127,29 @@ then
125
127
  </pre>
126
128
 
127
129
  <div class="sourcecode">
128
- <p class="source-link">[ <a href="javascript:toggleSource('M000011_source')" id="l_M000011_source">show source</a> ]</p>
129
- <div id="M000011_source" class="dyn-source">
130
+ <p class="source-link">[ <a href="javascript:toggleSource('M000012_source')" id="l_M000012_source">show source</a> ]</p>
131
+ <div id="M000012_source" class="dyn-source">
130
132
  <pre>
131
- <span class="ruby-comment cmt"># File lib/capcode.rb, line 63</span>
132
- 63: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">URL</span>( <span class="ruby-identifier">klass</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span> )
133
- 64: <span class="ruby-identifier">path</span> = <span class="ruby-keyword kw">nil</span>
134
- 65: <span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">delete_if</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">nil?</span> }
135
- 66:
136
- 67: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Class</span>
137
- 68: <span class="ruby-constant">Capcode</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">p</span>, <span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
138
- 69: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">p</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">klass</span>
139
- 70: <span class="ruby-keyword kw">end</span>
140
- 71: <span class="ruby-keyword kw">else</span>
141
- 72: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">klass</span>
142
- 73: <span class="ruby-keyword kw">end</span>
143
- 74:
144
- 75: <span class="ruby-identifier">path</span><span class="ruby-operator">+</span>((<span class="ruby-identifier">a</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">&gt;</span><span class="ruby-value">0</span>)<span class="ruby-operator">?</span>(<span class="ruby-value str">&quot;/&quot;</span><span class="ruby-operator">+</span><span class="ruby-identifier">a</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;/&quot;</span>))<span class="ruby-operator">:</span>(<span class="ruby-value str">&quot;&quot;</span>))
145
- 76: <span class="ruby-keyword kw">end</span>
133
+ <span class="ruby-comment cmt"># File lib/capcode.rb, line 70</span>
134
+ 70: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">URL</span>( <span class="ruby-identifier">klass</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span> )
135
+ 71: <span class="ruby-identifier">path</span> = <span class="ruby-keyword kw">nil</span>
136
+ 72: <span class="ruby-identifier">a</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">delete_if</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">nil?</span> }
137
+ 73:
138
+ 74: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Class</span>
139
+ 75: <span class="ruby-constant">Capcode</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">p</span>, <span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
140
+ 76: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">p</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">klass</span>
141
+ 77: <span class="ruby-keyword kw">end</span>
142
+ 78: <span class="ruby-keyword kw">else</span>
143
+ 79: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">klass</span>
144
+ 80: <span class="ruby-keyword kw">end</span>
145
+ 81:
146
+ 82: <span class="ruby-identifier">path</span><span class="ruby-operator">+</span>((<span class="ruby-identifier">a</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">&gt;</span><span class="ruby-value">0</span>)<span class="ruby-operator">?</span>(<span class="ruby-value str">&quot;/&quot;</span><span class="ruby-operator">+</span><span class="ruby-identifier">a</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;/&quot;</span>))<span class="ruby-operator">:</span>(<span class="ruby-value str">&quot;&quot;</span>))
147
+ 83: <span class="ruby-keyword kw">end</span>
146
148
  </pre>
147
149
  </div>
148
150
  </div>
149
151
  <h4 class="ruled">Public Instance method:
150
- <strong><a name="M000009">json( d )</a></strong> <a href="#M000009"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: json" /></a></h4>
152
+ <strong><a name="M000010">json( d )</a></strong> <a href="#M000010"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: json" /></a></h4>
151
153
 
152
154
  <p>
153
155
  Help you to return a JSON response
@@ -163,22 +165,22 @@ Help you to return a JSON response
163
165
  </pre>
164
166
 
165
167
  <div class="sourcecode">
166
- <p class="source-link">[ <a href="javascript:toggleSource('M000009_source')" id="l_M000009_source">show source</a> ]</p>
167
- <div id="M000009_source" class="dyn-source">
168
+ <p class="source-link">[ <a href="javascript:toggleSource('M000010_source')" id="l_M000010_source">show source</a> ]</p>
169
+ <div id="M000010_source" class="dyn-source">
168
170
  <pre>
169
- <span class="ruby-comment cmt"># File lib/capcode.rb, line 28</span>
170
- 28: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">json</span>( <span class="ruby-identifier">d</span> )
171
- 29: <span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-value str">'application/json'</span>
172
- 30: <span class="ruby-identifier">d</span>.<span class="ruby-identifier">to_json</span>
173
- 31: <span class="ruby-keyword kw">end</span>
171
+ <span class="ruby-comment cmt"># File lib/capcode.rb, line 35</span>
172
+ 35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">json</span>( <span class="ruby-identifier">d</span> )
173
+ 36: <span class="ruby-ivar">@response</span>[<span class="ruby-value str">'Content-Type'</span>] = <span class="ruby-value str">'application/json'</span>
174
+ 37: <span class="ruby-identifier">d</span>.<span class="ruby-identifier">to_json</span>
175
+ 38: <span class="ruby-keyword kw">end</span>
174
176
  </pre>
175
177
  </div>
176
178
  </div>
177
179
  <h4 class="ruled">Public Instance method:
178
- <strong><a name="M000010">redirect( klass, *a )</a></strong> <a href="#M000010"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: redirect" /></a></h4>
180
+ <strong><a name="M000011">redirect( klass, *a )</a></strong> <a href="#M000011"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: redirect" /></a></h4>
179
181
 
180
182
  <p>
181
- Send a <a href="Helpers.html#M000010">redirect</a> response
183
+ Send a <a href="Helpers.html#M000011">redirect</a> response
182
184
  </p>
183
185
  <pre>
184
186
  module Capcode
@@ -195,13 +197,31 @@ Send a <a href="Helpers.html#M000010">redirect</a> response
195
197
  </pre>
196
198
 
197
199
  <div class="sourcecode">
198
- <p class="source-link">[ <a href="javascript:toggleSource('M000010_source')" id="l_M000010_source">show source</a> ]</p>
199
- <div id="M000010_source" class="dyn-source">
200
+ <p class="source-link">[ <a href="javascript:toggleSource('M000011_source')" id="l_M000011_source">show source</a> ]</p>
201
+ <div id="M000011_source" class="dyn-source">
202
+ <pre>
203
+ <span class="ruby-comment cmt"># File lib/capcode.rb, line 53</span>
204
+ 53: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect</span>( <span class="ruby-identifier">klass</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span> )
205
+ 54: [<span class="ruby-value">302</span>, {<span class="ruby-value str">'Location'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">URL</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)}, <span class="ruby-value str">''</span>]
206
+ 55: <span class="ruby-keyword kw">end</span>
207
+ </pre>
208
+ </div>
209
+ </div>
210
+ <h4 class="ruled">Public Instance method:
211
+ <strong><a name="M000009">render( v )</a></strong> <a href="#M000009"><img src="../../permalink.gif" border="0" title="Permalink to Public Instance method: render" /></a></h4>
212
+
213
+ <p>
214
+ Render a view
215
+ </p>
216
+
217
+ <div class="sourcecode">
218
+ <p class="source-link">[ <a href="javascript:toggleSource('M000009_source')" id="l_M000009_source">show source</a> ]</p>
219
+ <div id="M000009_source" class="dyn-source">
200
220
  <pre>
201
- <span class="ruby-comment cmt"># File lib/capcode.rb, line 46</span>
202
- 46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">redirect</span>( <span class="ruby-identifier">klass</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span> )
203
- 47: [<span class="ruby-value">302</span>, {<span class="ruby-value str">'Location'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">URL</span>(<span class="ruby-identifier">klass</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)}, <span class="ruby-value str">''</span>]
204
- 48: <span class="ruby-keyword kw">end</span>
221
+ <span class="ruby-comment cmt"># File lib/capcode.rb, line 22</span>
222
+ 22: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>( <span class="ruby-identifier">v</span> )
223
+ 23: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_s</span>
224
+ 24: <span class="ruby-keyword kw">end</span>
205
225
  </pre>
206
226
  </div>
207
227
  </div>
@@ -3,7 +3,7 @@
3
3
  <html>
4
4
  <head>
5
5
  <title>
6
- Capcode, the Documentation &raquo; Class: Capcode::RouteError
6
+ Capcode, the Documentation &raquo; Module: Capcode::Views
7
7
  </title>
8
8
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
9
9
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
@@ -50,7 +50,7 @@
50
50
  <body>
51
51
  <!--
52
52
  <div id="menu">
53
- <h3 class="title">Class: Capcode::RouteError</h3>
53
+ <h3 class="title">Module: Capcode::Views</h3>
54
54
  </div>
55
55
  -->
56
56
  <div id="fullpage">
@@ -58,7 +58,7 @@
58
58
  <table>
59
59
  <tr><td><img src="../../rubyfr.png" /></td>
60
60
  <td id="pagertd">
61
- <strong># Class: Capcode::RouteError<br />
61
+ <strong># Module: Capcode::Views<br />
62
62
  [
63
63
  "<a href="../../files/README.html" value="File: README">README</a>",
64
64
  "<a href="../../files/AUTHORS.html" value="File: AUTHORS">AUTHORS</a>",
@@ -66,6 +66,7 @@
66
66
  "<a href="../../files/lib/capcode_rb.html" value="File: capcode.rb">lib/capcode.rb</a>",
67
67
  <a href="http://greg.rubyfr.net">nil</a>].each do<br />
68
68
  <a href="../../classes/Capcode.html" title="Module: Capcode">Capcode</a>.view_html<br />
69
+ <a href="../../classes/Capcode/Views.html" title="Module: Capcode::Views">Capcode::Views</a>.view_html<br />
69
70
  <a href="../../classes/Capcode/Helpers.html" title="Module: Capcode::Helpers">Capcode::Helpers</a>.view_html<br />
70
71
  <a href="../../classes/Capcode/HTTPError.html" title="Class: Capcode::HTTPError">Capcode::HTTPError</a>.view_html<br />
71
72
  <a href="../../classes/Capcode/RouteError.html" title="Class: Capcode::RouteError">Capcode::RouteError</a>.view_html<br />
@@ -77,35 +78,14 @@ end</strong>
77
78
  </div>
78
79
 
79
80
 
80
- <div id="Capcode::RouteError" class="page_shade">
81
+ <div id="Capcode::Views" class="page_shade">
81
82
  <div class="page">
82
- <h3>Class Capcode::RouteError &lt; ArgumentError</h3>
83
+ <h3>Module Capcode::Views</h3>
83
84
 
84
85
  (in files
85
86
  <a href="../../files/lib/capcode_rb.html">lib/capcode.rb</a>
86
87
  )
87
88
 
88
- <p>
89
- <a href="HTTPError.html">HTTPError</a> help you to create your own 404, 500
90
- and/or 501 response
91
- </p>
92
- <p>
93
- To create a custom 404 reponse, create a fonction HTTPError.r404 in your
94
- application :
95
- </p>
96
- <pre>
97
- module Capcode
98
- class HTTPError
99
- def r404(f)
100
- &quot;#{f} not found :(&quot;
101
- end
102
- end
103
- end
104
- </pre>
105
- <p>
106
- Do the same (r500 and r501) to customize 500 and 501 errors
107
- </p>
108
-
109
89
 
110
90
 
111
91
 
@@ -113,6 +93,7 @@ Do the same (r500 and r501) to customize 500 and 501 errors
113
93
  <ul>
114
94
  <li>Rack</li>
115
95
  <li><a href="Capcode/Helpers.html">Capcode::Helpers</a></li>
96
+ <li><a href="Capcode/Views.html">Capcode::Views</a></li>
116
97
  </ul>
117
98
 
118
99
 
@@ -1 +1 @@
1
- Wed, 29 Apr 2009 18:55:19 +0200
1
+ Thu, 30 Apr 2009 07:38:39 +0200
@@ -66,6 +66,7 @@
66
66
  "<a href="../files/lib/capcode_rb.html" value="File: capcode.rb">lib/capcode.rb</a>",
67
67
  <a href="http://greg.rubyfr.net">nil</a>].each do<br />
68
68
  <a href="../classes/Capcode.html" title="Module: Capcode">Capcode</a>.view_html<br />
69
+ <a href="../classes/Capcode/Views.html" title="Module: Capcode::Views">Capcode::Views</a>.view_html<br />
69
70
  <a href="../classes/Capcode/Helpers.html" title="Module: Capcode::Helpers">Capcode::Helpers</a>.view_html<br />
70
71
  <a href="../classes/Capcode/HTTPError.html" title="Class: Capcode::HTTPError">Capcode::HTTPError</a>.view_html<br />
71
72
  <a href="../classes/Capcode/RouteError.html" title="Class: Capcode::RouteError">Capcode::RouteError</a>.view_html<br />
@@ -66,6 +66,7 @@
66
66
  "<a href="../files/lib/capcode_rb.html" value="File: capcode.rb">lib/capcode.rb</a>",
67
67
  <a href="http://greg.rubyfr.net">nil</a>].each do<br />
68
68
  <a href="../classes/Capcode.html" title="Module: Capcode">Capcode</a>.view_html<br />
69
+ <a href="../classes/Capcode/Views.html" title="Module: Capcode::Views">Capcode::Views</a>.view_html<br />
69
70
  <a href="../classes/Capcode/Helpers.html" title="Module: Capcode::Helpers">Capcode::Helpers</a>.view_html<br />
70
71
  <a href="../classes/Capcode/HTTPError.html" title="Class: Capcode::HTTPError">Capcode::HTTPError</a>.view_html<br />
71
72
  <a href="../classes/Capcode/RouteError.html" title="Class: Capcode::RouteError">Capcode::RouteError</a>.view_html<br />
@@ -66,6 +66,7 @@
66
66
  "<a href="../files/lib/capcode_rb.html" value="File: capcode.rb">lib/capcode.rb</a>",
67
67
  <a href="http://greg.rubyfr.net">nil</a>].each do<br />
68
68
  <a href="../classes/Capcode.html" title="Module: Capcode">Capcode</a>.view_html<br />
69
+ <a href="../classes/Capcode/Views.html" title="Module: Capcode::Views">Capcode::Views</a>.view_html<br />
69
70
  <a href="../classes/Capcode/Helpers.html" title="Module: Capcode::Helpers">Capcode::Helpers</a>.view_html<br />
70
71
  <a href="../classes/Capcode/HTTPError.html" title="Class: Capcode::HTTPError">Capcode::HTTPError</a>.view_html<br />
71
72
  <a href="../classes/Capcode/RouteError.html" title="Class: Capcode::RouteError">Capcode::RouteError</a>.view_html<br />
@@ -79,7 +80,7 @@ end</strong>
79
80
  <div id="README" class="page_shade">
80
81
  <div class="page">
81
82
  <div class="header">
82
- <div class="path">README / Wed Apr 29 18:53:54 +0200 2009</div>
83
+ <div class="path">README / Thu Apr 30 07:34:27 +0200 2009</div>
83
84
  </div>
84
85
 
85
86
  <h1><a href="../classes/Capcode.html">Capcode</a></h1>
@@ -96,6 +97,15 @@ Copyright (C) 2009 Gregoire Lejeune
96
97
  <a href="../classes/Capcode.html">Capcode</a> is a web microframework
97
98
  </p>
98
99
  <h2>FEATURES/PROBLEMS:</h2>
100
+ <h3>0.4.0</h3>
101
+ <ul>
102
+ <li>Major bug correction !
103
+
104
+ </li>
105
+ <li>Add views&#8230;
106
+
107
+ </li>
108
+ </ul>
99
109
  <h3>0.3.0</h3>
100
110
  <ul>
101
111
  <li>Work with Rack 1.0.0
@@ -139,7 +149,7 @@ Copyright (C) 2009 Gregoire Lejeune
139
149
 
140
150
  Capcode.run( )
141
151
  </pre>
142
- <h2>Running <a href="../classes/Capcode.html">Capcode</a> Apps</h2>
152
+ <h3>Running <a href="../classes/Capcode.html">Capcode</a> Apps</h3>
143
153
  <ul>
144
154
  <li>Run: <tt>ruby sample.rb</tt>
145
155
 
@@ -148,7 +158,7 @@ Copyright (C) 2009 Gregoire Lejeune
148
158
 
149
159
  </li>
150
160
  </ul>
151
- <h2>Create model</h2>
161
+ <h3>Create model</h3>
152
162
  <pre>
153
163
  require 'rubygems'
154
164
  require 'capcode'
@@ -167,6 +177,58 @@ Copyright (C) 2009 Gregoire Lejeune
167
177
  See <tt>examples/blog-dm.rb</tt> and/or <tt>examples/blog-couchdb.rb</tt>
168
178
  for complete examples.
169
179
  </p>
180
+ <h3>Create View</h3>
181
+ <pre>
182
+ # file: sample.rb
183
+ require 'rubygems'
184
+ require 'capcode'
185
+
186
+ module Capcode
187
+ class Hello &lt; Route '/hello'
188
+ def get
189
+ @t = Time.now
190
+ render :time
191
+ end
192
+ end
193
+ end
194
+
195
+ module Capcode::Views
196
+ def time
197
+ &quot;Hello world #{@t}&quot;
198
+ end
199
+ end
200
+
201
+ Capcode.run( )
202
+ </pre>
203
+ <h3>Create Helper</h3>
204
+ <pre>
205
+ # file: sample.rb
206
+ require 'rubygems'
207
+ require 'capcode'
208
+
209
+ module Capcode
210
+ class Hello &lt; Route '/hello'
211
+ def get
212
+ @t = Time.now
213
+ render :time
214
+ end
215
+ end
216
+ end
217
+
218
+ module Capcode::Helpers
219
+ def bold( &amp;b )
220
+ &quot;&lt;b&gt;&quot;+yield+&quot;&lt;/b&gt;&quot;
221
+ end
222
+ end
223
+
224
+ module Capcode::Views
225
+ def time
226
+ &quot;Hello world &quot; + bold { @t }
227
+ end
228
+ end
229
+
230
+ Capcode.run( )
231
+ </pre>
170
232
  <h2>REQUIREMENTS:</h2>
171
233
  <ul>
172
234
  <li>rack
@@ -66,6 +66,7 @@
66
66
  "<a href="../../files/lib/capcode_rb.html" value="File: capcode.rb">lib/capcode.rb</a>",
67
67
  <a href="http://greg.rubyfr.net">nil</a>].each do<br />
68
68
  <a href="../../classes/Capcode.html" title="Module: Capcode">Capcode</a>.view_html<br />
69
+ <a href="../../classes/Capcode/Views.html" title="Module: Capcode::Views">Capcode::Views</a>.view_html<br />
69
70
  <a href="../../classes/Capcode/Helpers.html" title="Module: Capcode::Helpers">Capcode::Helpers</a>.view_html<br />
70
71
  <a href="../../classes/Capcode/HTTPError.html" title="Class: Capcode::HTTPError">Capcode::HTTPError</a>.view_html<br />
71
72
  <a href="../../classes/Capcode/RouteError.html" title="Class: Capcode::RouteError">Capcode::RouteError</a>.view_html<br />
@@ -79,7 +80,7 @@ end</strong>
79
80
  <div id="lib/capcode.rb" class="page_shade">
80
81
  <div class="page">
81
82
  <div class="header">
82
- <div class="path">lib/capcode.rb / Wed Apr 29 18:52:03 +0200 2009</div>
83
+ <div class="path">lib/capcode.rb / Thu Apr 30 07:38:28 +0200 2009</div>
83
84
  </div>
84
85
 
85
86
  <pre>
@@ -18,11 +18,13 @@ module Capcode
18
18
 
19
19
  class Hello < Route '/hello/(.*)'
20
20
  def get( you )
21
- you = "you" if you.nil?
21
+ @you = you
22
+ @you = "you" if you.nil?
22
23
 
23
- session = { :user => you }
24
+ session = { :user => @you }
24
25
 
25
- "Hello " + bold { you } + " it's '#{Time.now} !"
26
+ # "Hello " + bold { you } + " it's '#{Time.now} !"
27
+ render :hello
26
28
  end
27
29
  end
28
30
 
@@ -54,6 +56,12 @@ module Capcode
54
56
  end
55
57
  end
56
58
 
59
+ module Capcode::Views
60
+ def hello
61
+ "Hello " + bold { @you } + " it's '#{Time.now} !"
62
+ end
63
+ end
64
+
57
65
  Capcode.map( "/file" ) do
58
66
  Rack::File.new( "." )
59
67
  end
@@ -8,14 +8,21 @@ require 'capcode/core_ext'
8
8
  module Capcode
9
9
  @@__ROUTES = {}
10
10
 
11
- class ParameterError < ArgumentError
11
+ class ParameterError < ArgumentError #:nodoc:
12
12
  end
13
13
 
14
- class RouteError < ArgumentError
14
+ class RouteError < ArgumentError #:nodoc:
15
15
  end
16
16
 
17
+ module Views; end
18
+
17
19
  # Helpers contains methods available in your controllers
18
20
  module Helpers
21
+ # Render a view
22
+ def render( v )
23
+ self.send v.to_s
24
+ end
25
+
19
26
  # Help you to return a JSON response
20
27
  #
21
28
  # module Capcode
@@ -201,15 +208,10 @@ module Capcode
201
208
 
202
209
  end
203
210
 
204
- # TODO : correct above to use this :
205
- #puts "finalPath = #{finalPath}"
206
- #puts "finalNArgs = #{finalNArgs}"
207
- #print "finalArgs = "; p finalArgs
208
-
209
211
  nargs = self.class.__urls__[1]
210
212
  regexp = Regexp.new( self.class.__urls__[0][finalPath] )
211
213
 
212
- args = regexp.match( Rack::Utils.unescape(@request.path_info).gsub( /^\//, "" ) )
214
+ args = regexp.match( Rack::Utils.unescape(@request.path).gsub( Regexp.new( "^#{finalPath}" ), "" ).gsub( /^\//, "" ) )
213
215
  if args.nil?
214
216
  raise Capcode::ParameterError, "Path info `#{@request.path_info}' does not match route regexp `#{regexp.source}'"
215
217
  else
@@ -238,6 +240,7 @@ module Capcode
238
240
  end
239
241
 
240
242
  include Capcode::Helpers
243
+ include Capcode::Views
241
244
  }
242
245
  end
243
246
 
@@ -260,6 +263,7 @@ module Capcode
260
263
  # * <tt>:session</tt> = Session parameters. See Rack::Session for more informations
261
264
  # * <tt>:pid</tt> = PID file (default: $0.pid)
262
265
  # * <tt>:daemonize</tt> = Daemonize application (default: false)
266
+ # * <tt>:db_config</tt> = database configuration file (default: database.yml)
263
267
  def run( args = {} )
264
268
  conf = {
265
269
  :port => args[:port]||3000,