Capcode 0.3.0 → 0.4.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.
@@ -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,