serverside 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/CHANGELOG +10 -0
  2. data/README +3 -3
  3. data/Rakefile +4 -4
  4. data/bin/serverside +4 -4
  5. data/doc/rdoc/classes/Daemon.html +4 -4
  6. data/doc/rdoc/classes/ServerSide.html +14 -74
  7. data/doc/rdoc/classes/ServerSide/Application.html +13 -13
  8. data/doc/rdoc/classes/ServerSide/{Connection.html → HTTP.html} +12 -18
  9. data/doc/rdoc/classes/ServerSide/HTTP/Connection.html +200 -0
  10. data/doc/rdoc/classes/ServerSide/{Connection → HTTP}/Const.html +6 -6
  11. data/doc/rdoc/classes/ServerSide/{Connection/Base.html → HTTP/Request.html} +213 -164
  12. data/doc/rdoc/classes/ServerSide/{Server.html → HTTP/Server.html} +22 -22
  13. data/doc/rdoc/classes/ServerSide/Router.html +496 -0
  14. data/doc/rdoc/classes/ServerSide/StaticFiles.html +31 -30
  15. data/doc/rdoc/classes/ServerSide/Template.html +12 -12
  16. data/doc/rdoc/created.rid +1 -1
  17. data/doc/rdoc/files/CHANGELOG.html +22 -4
  18. data/doc/rdoc/files/COPYING.html +1 -1
  19. data/doc/rdoc/files/README.html +4 -4
  20. data/doc/rdoc/files/lib/serverside/application_rb.html +1 -1
  21. data/doc/rdoc/files/lib/serverside/cluster_rb.html +1 -1
  22. data/doc/rdoc/files/lib/serverside/connection_rb.html +1 -1
  23. data/doc/rdoc/files/lib/serverside/core_ext_rb.html +1 -1
  24. data/doc/rdoc/files/lib/serverside/daemon_rb.html +1 -1
  25. data/doc/rdoc/files/lib/serverside/request_rb.html +101 -0
  26. data/doc/rdoc/files/lib/serverside/routing_rb.html +1 -1
  27. data/doc/rdoc/files/lib/serverside/server_rb.html +1 -1
  28. data/doc/rdoc/files/lib/serverside/static_rb.html +1 -1
  29. data/doc/rdoc/files/lib/serverside/template_rb.html +1 -1
  30. data/doc/rdoc/files/lib/serverside_rb.html +1 -1
  31. data/doc/rdoc/fr_class_index.html +6 -5
  32. data/doc/rdoc/fr_file_index.html +1 -0
  33. data/doc/rdoc/fr_method_index.html +31 -31
  34. data/lib/serverside/application.rb +1 -1
  35. data/lib/serverside/connection.rb +12 -141
  36. data/lib/serverside/request.rb +150 -0
  37. data/lib/serverside/routing.rb +117 -126
  38. data/lib/serverside/server.rb +13 -12
  39. data/lib/serverside/static.rb +1 -1
  40. data/test/functional/primitive_static_server_test.rb +3 -3
  41. data/test/functional/routing_server.rb +1 -1
  42. data/test/functional/routing_server_test.rb +1 -1
  43. data/test/functional/static_profile.rb +1 -1
  44. data/test/functional/static_server_test.rb +2 -2
  45. data/test/unit/connection_test.rb +30 -224
  46. data/test/unit/request_test.rb +248 -0
  47. data/test/unit/routing_test.rb +4 -4
  48. data/test/unit/server_test.rb +10 -8
  49. data/test/unit/static_test.rb +1 -1
  50. metadata +61 -56
  51. data/doc/rdoc/classes/ServerSide/Connection/Router.html +0 -493
@@ -75,7 +75,7 @@
75
75
  <div id="description">
76
76
  <p>
77
77
  This module provides functionality for serving files and directory listings
78
- over HTTP. It is mainly used by ServerSide::Connection::Static.
78
+ over <a href="HTTP.html">HTTP</a>.
79
79
  </p>
80
80
 
81
81
  </div>
@@ -87,10 +87,10 @@ over HTTP. It is mainly used by ServerSide::Connection::Static.
87
87
  <h3 class="section-bar">Methods</h3>
88
88
 
89
89
  <div class="name-list">
90
- <a href="#M000025">serve_dir</a>&nbsp;&nbsp;
91
- <a href="#M000024">serve_file</a>&nbsp;&nbsp;
92
- <a href="#M000027">serve_static</a>&nbsp;&nbsp;
93
- <a href="#M000026">serve_template</a>&nbsp;&nbsp;
90
+ <a href="#M000023">serve_dir</a>&nbsp;&nbsp;
91
+ <a href="#M000022">serve_file</a>&nbsp;&nbsp;
92
+ <a href="#M000025">serve_static</a>&nbsp;&nbsp;
93
+ <a href="#M000024">serve_template</a>&nbsp;&nbsp;
94
94
  </div>
95
95
  </div>
96
96
 
@@ -118,22 +118,23 @@ over HTTP. It is mainly used by ServerSide::Connection::Static.
118
118
  <div id="methods">
119
119
  <h3 class="section-bar">Public Instance methods</h3>
120
120
 
121
- <div id="method-M000025" class="method-detail">
122
- <a name="M000025"></a>
121
+ <div id="method-M000023" class="method-detail">
122
+ <a name="M000023"></a>
123
123
 
124
124
  <div class="method-heading">
125
- <a href="#M000025" class="method-signature">
125
+ <a href="#M000023" class="method-signature">
126
126
  <span class="method-name">serve_dir</span><span class="method-args">(dir)</span>
127
127
  </a>
128
128
  </div>
129
129
 
130
130
  <div class="method-description">
131
131
  <p>
132
- Serves a directory listing over HTTP in the form of an HTML page.
132
+ Serves a directory listing over <a href="HTTP.html">HTTP</a> in the form of
133
+ an HTML page.
133
134
  </p>
134
135
  <p><a class="source-toggle" href="#"
135
- onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
136
- <div class="method-source-code" id="M000025-source">
136
+ onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
137
+ <div class="method-source-code" id="M000023-source">
137
138
  <pre>
138
139
  <span class="ruby-comment cmt"># File lib/serverside/static.rb, line 65</span>
139
140
  65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">serve_dir</span>(<span class="ruby-identifier">dir</span>)
@@ -148,25 +149,25 @@ Serves a directory listing over HTTP in the form of an HTML page.
148
149
  </div>
149
150
  </div>
150
151
 
151
- <div id="method-M000024" class="method-detail">
152
- <a name="M000024"></a>
152
+ <div id="method-M000022" class="method-detail">
153
+ <a name="M000022"></a>
153
154
 
154
155
  <div class="method-heading">
155
- <a href="#M000024" class="method-signature">
156
+ <a href="#M000022" class="method-signature">
156
157
  <span class="method-name">serve_file</span><span class="method-args">(fn)</span>
157
158
  </a>
158
159
  </div>
159
160
 
160
161
  <div class="method-description">
161
162
  <p>
162
- Serves a file over HTTP. The file is cached in memory for later retrieval.
163
- If the If-None-Match header is included with an ETag, it is checked against
164
- the file&#8217;s current ETag. If there&#8217;s a match, a 304 response is
165
- rendered.
163
+ Serves a file over <a href="HTTP.html">HTTP</a>. The file is cached in
164
+ memory for later retrieval. If the If-None-Match header is included with an
165
+ ETag, it is checked against the file&#8217;s current ETag. If there&#8217;s
166
+ a match, a 304 response is rendered.
166
167
  </p>
167
168
  <p><a class="source-toggle" href="#"
168
- onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
169
- <div class="method-source-code" id="M000024-source">
169
+ onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
170
+ <div class="method-source-code" id="M000022-source">
170
171
  <pre>
171
172
  <span class="ruby-comment cmt"># File lib/serverside/static.rb, line 43</span>
172
173
  43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">serve_file</span>(<span class="ruby-identifier">fn</span>)
@@ -194,11 +195,11 @@ rendered.
194
195
  </div>
195
196
  </div>
196
197
 
197
- <div id="method-M000027" class="method-detail">
198
- <a name="M000027"></a>
198
+ <div id="method-M000025" class="method-detail">
199
+ <a name="M000025"></a>
199
200
 
200
201
  <div class="method-heading">
201
- <a href="#M000027" class="method-signature">
202
+ <a href="#M000025" class="method-signature">
202
203
  <span class="method-name">serve_static</span><span class="method-args">(path)</span>
203
204
  </a>
204
205
  </div>
@@ -208,8 +209,8 @@ rendered.
208
209
  Serves static files and directory listings.
209
210
  </p>
210
211
  <p><a class="source-toggle" href="#"
211
- onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
212
- <div class="method-source-code" id="M000027-source">
212
+ onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
213
+ <div class="method-source-code" id="M000025-source">
213
214
  <pre>
214
215
  <span class="ruby-comment cmt"># File lib/serverside/static.rb, line 80</span>
215
216
  80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">serve_static</span>(<span class="ruby-identifier">path</span>)
@@ -230,19 +231,19 @@ Serves static files and directory listings.
230
231
  </div>
231
232
  </div>
232
233
 
233
- <div id="method-M000026" class="method-detail">
234
- <a name="M000026"></a>
234
+ <div id="method-M000024" class="method-detail">
235
+ <a name="M000024"></a>
235
236
 
236
237
  <div class="method-heading">
237
- <a href="#M000026" class="method-signature">
238
+ <a href="#M000024" class="method-signature">
238
239
  <span class="method-name">serve_template</span><span class="method-args">(fn, b = nil)</span>
239
240
  </a>
240
241
  </div>
241
242
 
242
243
  <div class="method-description">
243
244
  <p><a class="source-toggle" href="#"
244
- onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
245
- <div class="method-source-code" id="M000026-source">
245
+ onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
246
+ <div class="method-source-code" id="M000024-source">
246
247
  <pre>
247
248
  <span class="ruby-comment cmt"># File lib/serverside/static.rb, line 73</span>
248
249
  73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">serve_template</span>(<span class="ruby-identifier">fn</span>, <span class="ruby-identifier">b</span> = <span class="ruby-keyword kw">nil</span>)
@@ -96,8 +96,8 @@ file changes.
96
96
  <h3 class="section-bar">Methods</h3>
97
97
 
98
98
  <div class="name-list">
99
- <a href="#M000052">render</a>&nbsp;&nbsp;
100
- <a href="#M000051">set</a>&nbsp;&nbsp;
99
+ <a href="#M000042">render</a>&nbsp;&nbsp;
100
+ <a href="#M000041">set</a>&nbsp;&nbsp;
101
101
  </div>
102
102
  </div>
103
103
 
@@ -119,11 +119,11 @@ file changes.
119
119
  <div id="methods">
120
120
  <h3 class="section-bar">Public Class methods</h3>
121
121
 
122
- <div id="method-M000052" class="method-detail">
123
- <a name="M000052"></a>
122
+ <div id="method-M000042" class="method-detail">
123
+ <a name="M000042"></a>
124
124
 
125
125
  <div class="method-heading">
126
- <a href="#M000052" class="method-signature">
126
+ <a href="#M000042" class="method-signature">
127
127
  <span class="method-name">render</span><span class="method-args">(name, binding)</span>
128
128
  </a>
129
129
  </div>
@@ -136,8 +136,8 @@ compares it to the file stamp, and reloads the template content if
136
136
  necessary.
137
137
  </p>
138
138
  <p><a class="source-toggle" href="#"
139
- onclick="toggleCode('M000052-source');return false;">[Source]</a></p>
140
- <div class="method-source-code" id="M000052-source">
139
+ onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
140
+ <div class="method-source-code" id="M000042-source">
141
141
  <pre>
142
142
  <span class="ruby-comment cmt"># File lib/serverside/template.rb, line 22</span>
143
143
  22: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">render</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">binding</span>)
@@ -158,11 +158,11 @@ necessary.
158
158
  </div>
159
159
  </div>
160
160
 
161
- <div id="method-M000051" class="method-detail">
162
- <a name="M000051"></a>
161
+ <div id="method-M000041" class="method-detail">
162
+ <a name="M000041"></a>
163
163
 
164
164
  <div class="method-heading">
165
- <a href="#M000051" class="method-signature">
165
+ <a href="#M000041" class="method-signature">
166
166
  <span class="method-name">set</span><span class="method-args">(name, body, stamp = nil)</span>
167
167
  </a>
168
168
  </div>
@@ -173,8 +173,8 @@ Stores a template for later use. The stamp parameter is used only when the
173
173
  content of a template file is stored.
174
174
  </p>
175
175
  <p><a class="source-toggle" href="#"
176
- onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
177
- <div class="method-source-code" id="M000051-source">
176
+ onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
177
+ <div class="method-source-code" id="M000041-source">
178
178
  <pre>
179
179
  <span class="ruby-comment cmt"># File lib/serverside/template.rb, line 14</span>
180
180
  14: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">body</span>, <span class="ruby-identifier">stamp</span> = <span class="ruby-keyword kw">nil</span>)
@@ -1 +1 @@
1
- Sun Sep 03 11:49:32 IDT 2006
1
+ Sat Sep 30 23:13:26 IDT 2006
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Sep 03 11:48:20 IDT 2006</td>
59
+ <td>Sat Sep 30 23:07:59 IDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -70,6 +70,25 @@
70
70
 
71
71
  <div id="description">
72
72
  <p>
73
+ <b>SVN</b>
74
+ </p>
75
+ <ul>
76
+ <li>Refactored HTTP-related code into a new HTTP::Request class and a
77
+ simplified HTTP::Connection.
78
+
79
+ </li>
80
+ <li>Another small change to docs.
81
+
82
+ </li>
83
+ <li>Fixed small error in Rakefile that prevented doc_rforge task from updating
84
+ the docs.
85
+
86
+ </li>
87
+ <li>Fixed minor documentation error.
88
+
89
+ </li>
90
+ </ul>
91
+ <p>
73
92
  *0.2.5*
74
93
  </p>
75
94
  <ul>
@@ -190,9 +209,8 @@ file server mode.
190
209
  <li>Added static file serving code.
191
210
 
192
211
  </li>
193
- <li>Renamed ServerSide::Request to <a
194
- href="../classes/ServerSide/Connection.html">ServerSide::Connection</a>.
195
- This is more appropriate.
212
+ <li>Renamed ServerSide::Request to ServerSide::Connection. This is more
213
+ appropriate.
196
214
 
197
215
  </li>
198
216
  <li>Added functional static server test.
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Aug 16 11:52:20 IDT 2006</td>
59
+ <td>Thu Aug 17 18:37:26 IDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Sep 03 11:46:31 IDT 2006</td>
59
+ <td>Sat Sep 30 23:10:14 IDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -93,10 +93,10 @@ tools to easily create servers and clusters of servers.
93
93
  </li>
94
94
  </ul>
95
95
  <p>
96
- To check out the repository, just perform:
96
+ To check out the source code:
97
97
  </p>
98
98
  <pre>
99
- svn co {http://serverside.googlecode.com/svn/}[http://serverside.googlecode.com/svn/]
99
+ svn co http://serverside.googlecode.com/svn/trunk
100
100
  </pre>
101
101
  <h2>Installation</h2>
102
102
  <pre>
@@ -139,7 +139,7 @@ href="http://classes/ServerSide/Connection/Router.html">routing rules</a>.
139
139
  Here&#8217;s a simple routing rule:
140
140
  </p>
141
141
  <pre>
142
- ServerSide.route(:path =&gt; '/hello/:name') {
142
+ ServerSide::Router.route(:path =&gt; '/hello/:name') {
143
143
  send_response(200, 'text', &quot;Hello #{@parameters[:name]}!&quot;)
144
144
  }
145
145
  </pre>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Sep 03 09:49:09 IDT 2006</td>
59
+ <td>Sat Sep 30 23:04:45 IDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Mon Aug 21 10:29:28 IDT 2006</td>
59
+ <td>Thu Aug 24 18:47:24 IDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Sep 03 09:49:09 IDT 2006</td>
59
+ <td>Sat Sep 30 23:06:05 IDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Aug 27 10:06:32 IDT 2006</td>
59
+ <td>Fri Aug 25 16:38:37 IDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Mon Aug 28 10:38:28 IDT 2006</td>
59
+ <td>Mon Aug 21 01:03:58 IDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -0,0 +1,101 @@
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>File: request.rb</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="fileHeader">
50
+ <h1>request.rb</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>lib/serverside/request.rb
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Sat Sep 30 22:55:32 IDT 2006</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+
72
+
73
+ </div>
74
+
75
+
76
+ </div>
77
+
78
+
79
+ <!-- if includes -->
80
+
81
+ <div id="section">
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+ <!-- if method_list -->
91
+
92
+
93
+ </div>
94
+
95
+
96
+ <div id="validator-badges">
97
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
98
+ </div>
99
+
100
+ </body>
101
+ </html>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Sep 03 09:49:09 IDT 2006</td>
59
+ <td>Sat Sep 30 22:47:12 IDT 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>