hobix 0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. data/COPYING +18 -0
  2. data/README +18 -0
  3. data/Rakefile +96 -0
  4. data/bin/hobix +94 -0
  5. data/contrib/blosxom-to-hobix.rb +253 -0
  6. data/contrib/txp-to-hobix.rb +56 -0
  7. data/contrib/webrick-all-mine.rb +20 -0
  8. data/doc/CHANGELOG +285 -0
  9. data/doc/rdoc/classes/Hobix/API.html +382 -0
  10. data/doc/rdoc/classes/Hobix/Article.html +111 -0
  11. data/doc/rdoc/classes/Hobix/BaseContent.html +692 -0
  12. data/doc/rdoc/classes/Hobix/BaseEntry.html +218 -0
  13. data/doc/rdoc/classes/Hobix/BaseFacet.html +205 -0
  14. data/doc/rdoc/classes/Hobix/BaseOutput.html +122 -0
  15. data/doc/rdoc/classes/Hobix/BasePlugin.html +201 -0
  16. data/doc/rdoc/classes/Hobix/BaseProperties/ClassMethods.html +243 -0
  17. data/doc/rdoc/classes/Hobix/BaseProperties.html +218 -0
  18. data/doc/rdoc/classes/Hobix/BasePublish.html +157 -0
  19. data/doc/rdoc/classes/Hobix/BaseStorage.html +417 -0
  20. data/doc/rdoc/classes/Hobix/BixWik/Entry.html +196 -0
  21. data/doc/rdoc/classes/Hobix/BixWik/IndexEntry.html +170 -0
  22. data/doc/rdoc/classes/Hobix/BixWik/WikiRedCloth.html +111 -0
  23. data/doc/rdoc/classes/Hobix/BixWik.html +418 -0
  24. data/doc/rdoc/classes/Hobix/BixWikPlugin.html +158 -0
  25. data/doc/rdoc/classes/Hobix/CommandLine.html +1970 -0
  26. data/doc/rdoc/classes/Hobix/Comment.html +113 -0
  27. data/doc/rdoc/classes/Hobix/Config.html +212 -0
  28. data/doc/rdoc/classes/Hobix/DataMarsh.html +667 -0
  29. data/doc/rdoc/classes/Hobix/Entry.html +178 -0
  30. data/doc/rdoc/classes/Hobix/EntryEnum.html +162 -0
  31. data/doc/rdoc/classes/Hobix/Enumerable.html +170 -0
  32. data/doc/rdoc/classes/Hobix/Facets/WikiEdit.html +180 -0
  33. data/doc/rdoc/classes/Hobix/Facets.html +111 -0
  34. data/doc/rdoc/classes/Hobix/LinkList.html +182 -0
  35. data/doc/rdoc/classes/Hobix/Out/Quick.html +412 -0
  36. data/doc/rdoc/classes/Hobix/Out.html +119 -0
  37. data/doc/rdoc/classes/Hobix/Page.html +381 -0
  38. data/doc/rdoc/classes/Hobix/Trackback.html +113 -0
  39. data/doc/rdoc/classes/Hobix/UriStr.html +198 -0
  40. data/doc/rdoc/classes/Hobix/WebApp/QueryString.html +207 -0
  41. data/doc/rdoc/classes/Hobix/WebApp/QueryValidationFailure.html +111 -0
  42. data/doc/rdoc/classes/Hobix/WebApp.html +1383 -0
  43. data/doc/rdoc/classes/Hobix/Weblog/AuthorNotFound.html +111 -0
  44. data/doc/rdoc/classes/Hobix/Weblog.html +2082 -0
  45. data/doc/rdoc/classes/Hobix.html +399 -0
  46. data/doc/rdoc/classes/Kernel.html +139 -0
  47. data/doc/rdoc/classes/Regexp.html +154 -0
  48. data/doc/rdoc/classes/YAML/Omap.html +144 -0
  49. data/doc/rdoc/classes/YAML.html +111 -0
  50. data/doc/rdoc/created.rid +1 -0
  51. data/doc/rdoc/files/COPYING.html +129 -0
  52. data/doc/rdoc/files/README.html +131 -0
  53. data/doc/rdoc/files/doc/CHANGELOG.html +101 -0
  54. data/doc/rdoc/files/lib/hobix/api_rb.html +119 -0
  55. data/doc/rdoc/files/lib/hobix/article_rb.html +126 -0
  56. data/doc/rdoc/files/lib/hobix/base_rb.html +128 -0
  57. data/doc/rdoc/files/lib/hobix/bixwik_rb.html +126 -0
  58. data/doc/rdoc/files/lib/hobix/commandline_rb.html +140 -0
  59. data/doc/rdoc/files/lib/hobix/comments_rb.html +126 -0
  60. data/doc/rdoc/files/lib/hobix/config_rb.html +125 -0
  61. data/doc/rdoc/files/lib/hobix/datamarsh_rb.html +108 -0
  62. data/doc/rdoc/files/lib/hobix/entry_rb.html +118 -0
  63. data/doc/rdoc/files/lib/hobix/linklist_rb.html +127 -0
  64. data/doc/rdoc/files/lib/hobix/publisher_rb.html +126 -0
  65. data/doc/rdoc/files/lib/hobix/trackbacks_rb.html +128 -0
  66. data/doc/rdoc/files/lib/hobix/webapp_rb.html +127 -0
  67. data/doc/rdoc/files/lib/hobix/weblog_rb.html +135 -0
  68. data/doc/rdoc/files/lib/hobix_rb.html +127 -0
  69. data/doc/rdoc/fr_class_index.html +67 -0
  70. data/doc/rdoc/fr_file_index.html +44 -0
  71. data/doc/rdoc/fr_method_index.html +307 -0
  72. data/doc/rdoc/index.html +24 -0
  73. data/doc/rdoc/rdoc-style.css +208 -0
  74. data/git_hobix_update.php +13 -0
  75. data/lib/hobix/api.rb +91 -0
  76. data/lib/hobix/article.rb +22 -0
  77. data/lib/hobix/base.rb +480 -0
  78. data/lib/hobix/bixwik.rb +200 -0
  79. data/lib/hobix/commandline.rb +677 -0
  80. data/lib/hobix/comments.rb +98 -0
  81. data/lib/hobix/config.rb +39 -0
  82. data/lib/hobix/datamarsh.rb +110 -0
  83. data/lib/hobix/entry.rb +84 -0
  84. data/lib/hobix/facets/comments.rb +99 -0
  85. data/lib/hobix/facets/publisher.rb +314 -0
  86. data/lib/hobix/facets/trackbacks.rb +80 -0
  87. data/lib/hobix/linklist.rb +81 -0
  88. data/lib/hobix/out/atom.rb +101 -0
  89. data/lib/hobix/out/erb.rb +64 -0
  90. data/lib/hobix/out/okaynews.rb +55 -0
  91. data/lib/hobix/out/quick.rb +314 -0
  92. data/lib/hobix/out/rdf.rb +97 -0
  93. data/lib/hobix/out/redrum.rb +26 -0
  94. data/lib/hobix/out/rss.rb +128 -0
  95. data/lib/hobix/plugin/akismet.rb +196 -0
  96. data/lib/hobix/plugin/bloglines.rb +73 -0
  97. data/lib/hobix/plugin/calendar.rb +212 -0
  98. data/lib/hobix/plugin/flickr.rb +110 -0
  99. data/lib/hobix/plugin/recent_comments.rb +84 -0
  100. data/lib/hobix/plugin/sections.rb +91 -0
  101. data/lib/hobix/plugin/tags.rb +60 -0
  102. data/lib/hobix/publish/ping.rb +53 -0
  103. data/lib/hobix/publish/replicate.rb +283 -0
  104. data/lib/hobix/publisher.rb +18 -0
  105. data/lib/hobix/search/dictionary.rb +141 -0
  106. data/lib/hobix/search/porter_stemmer.rb +203 -0
  107. data/lib/hobix/search/simple.rb +209 -0
  108. data/lib/hobix/search/vector.rb +100 -0
  109. data/lib/hobix/storage/filesys.rb +408 -0
  110. data/lib/hobix/trackbacks.rb +93 -0
  111. data/lib/hobix/util/objedit.rb +193 -0
  112. data/lib/hobix/util/patcher.rb +155 -0
  113. data/lib/hobix/webapp/cli.rb +195 -0
  114. data/lib/hobix/webapp/htmlform.rb +107 -0
  115. data/lib/hobix/webapp/message.rb +177 -0
  116. data/lib/hobix/webapp/urigen.rb +141 -0
  117. data/lib/hobix/webapp/webrick-servlet.rb +90 -0
  118. data/lib/hobix/webapp.rb +723 -0
  119. data/lib/hobix/weblog.rb +893 -0
  120. data/lib/hobix.rb +230 -0
  121. data/share/default-blog/hobix.yaml +16 -0
  122. data/share/default-blog/htdocs/site.css +174 -0
  123. data/share/default-blog/skel/entry.html.quick +0 -0
  124. data/share/default-blog/skel/index.atom.atom +0 -0
  125. data/share/default-blog/skel/index.html.quick-summary +0 -0
  126. data/share/default-blog/skel/index.xml.rss +0 -0
  127. data/share/default-blog/skel/index.yaml.okaynews +0 -0
  128. data/share/default-blog/skel/monthly.html.quick-archive +0 -0
  129. data/share/default-blog/skel/section.html.quick-archive +0 -0
  130. data/share/default-blog/skel/yearly.html.quick-archive +0 -0
  131. data/share/default-blog-modes.yaml +7 -0
  132. data/share/default-blog.apache-cgi.patch +8 -0
  133. data/share/default-blog.apache-ssi.patch +38 -0
  134. data/share/default-blog.apache2-ssi.patch +3 -0
  135. data/share/default-blog.cgi.patch +8 -0
  136. data/share/default-blog.comments.patch +5 -0
  137. data/share/default-blog.prototype.patch +766 -0
  138. data/share/default-blog.publisher.patch +5 -0
  139. data/share/default-blog.wiki.patch +29 -0
  140. data/share/publisher/css/control.css +90 -0
  141. data/share/publisher/css/form.css +238 -0
  142. data/share/publisher/css/form.import.css +72 -0
  143. data/share/publisher/css/main-menu.css +134 -0
  144. data/share/publisher/i/hobix-emblazen-1.png +0 -0
  145. data/share/publisher/i/hobix-emblazen-2.png +0 -0
  146. data/share/publisher/i/hobix-emblazen-3.png +0 -0
  147. data/share/publisher/i/hobix-emblazen-4.png +0 -0
  148. data/share/publisher/i/hobix-emblazen-5.png +0 -0
  149. data/share/publisher/i/hobix-emblazen-6.png +0 -0
  150. data/share/publisher/i/hobix-emblazen-7.png +0 -0
  151. data/share/publisher/index.erb +66 -0
  152. data/share/publisher/js/controls.js +261 -0
  153. data/share/publisher/js/dragdrop.js +476 -0
  154. data/share/publisher/js/effects.js +570 -0
  155. data/share/publisher/js/prototype.js +1011 -0
  156. metadata +230 -0
@@ -0,0 +1,1383 @@
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>Class: Hobix::WebApp</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>Class</strong></td>
53
+ <td class="class-name-in-header">Hobix::WebApp</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/hobix/webapp_rb.html">
59
+ lib/hobix/webapp.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ Object
69
+ </td>
70
+ </tr>
71
+ </table>
72
+ </div>
73
+ <!-- banner header -->
74
+
75
+ <div id="bodyContent">
76
+
77
+
78
+
79
+ <div id="contextContent">
80
+
81
+
82
+
83
+ </div>
84
+
85
+ <div id="method-list">
86
+ <h3 class="section-bar">Methods</h3>
87
+
88
+ <div class="name-list">
89
+ <a href="#M000138">&lt;&lt;</a>&nbsp;&nbsp;
90
+ <a href="#M000158">_GET</a>&nbsp;&nbsp;
91
+ <a href="#M000159">_POST</a>&nbsp;&nbsp;
92
+ <a href="#M000178">absuri</a>&nbsp;&nbsp;
93
+ <a href="#M000157">action_uri</a>&nbsp;&nbsp;
94
+ <a href="#M000161">add_header</a>&nbsp;&nbsp;
95
+ <a href="#M000174">check_last_modified</a>&nbsp;&nbsp;
96
+ <a href="#M000163">clear_header</a>&nbsp;&nbsp;
97
+ <a href="#M000168">content_type</a>&nbsp;&nbsp;
98
+ <a href="#M000167">content_type=</a>&nbsp;&nbsp;
99
+ <a href="#M000166">each_header</a>&nbsp;&nbsp;
100
+ <a href="#M000144">each_request_header</a>&nbsp;&nbsp;
101
+ <a href="#M000165">get_header</a>&nbsp;&nbsp;
102
+ <a href="#M000145">get_request_header</a>&nbsp;&nbsp;
103
+ <a href="#M000164">has_header?</a>&nbsp;&nbsp;
104
+ <a href="#M000177">make_absolute_uri</a>&nbsp;&nbsp;
105
+ <a href="#M000175">make_relative_uri</a>&nbsp;&nbsp;
106
+ <a href="#M000170">open_resource</a>&nbsp;&nbsp;
107
+ <a href="#M000151">path_info</a>&nbsp;&nbsp;
108
+ <a href="#M000139">print</a>&nbsp;&nbsp;
109
+ <a href="#M000140">printf</a>&nbsp;&nbsp;
110
+ <a href="#M000141">putc</a>&nbsp;&nbsp;
111
+ <a href="#M000142">puts</a>&nbsp;&nbsp;
112
+ <a href="#M000180">query_html_get_application_x_www_form_urlencoded</a>&nbsp;&nbsp;
113
+ <a href="#M000181">query_html_post_application_x_www_form_urlencoded</a>&nbsp;&nbsp;
114
+ <a href="#M000152">query_string</a>&nbsp;&nbsp;
115
+ <a href="#M000176">reluri</a>&nbsp;&nbsp;
116
+ <a href="#M000154">remote_addr</a>&nbsp;&nbsp;
117
+ <a href="#M000162">remove_header</a>&nbsp;&nbsp;
118
+ <a href="#M000147">request_body</a>&nbsp;&nbsp;
119
+ <a href="#M000155">request_content_type</a>&nbsp;&nbsp;
120
+ <a href="#M000146">request_method</a>&nbsp;&nbsp;
121
+ <a href="#M000156">request_uri</a>&nbsp;&nbsp;
122
+ <a href="#M000169">resource_path</a>&nbsp;&nbsp;
123
+ <a href="#M000150">script_name</a>&nbsp;&nbsp;
124
+ <a href="#M000172">send_not_found</a>&nbsp;&nbsp;
125
+ <a href="#M000171">send_resource</a>&nbsp;&nbsp;
126
+ <a href="#M000173">send_unauthorized</a>&nbsp;&nbsp;
127
+ <a href="#M000148">server_name</a>&nbsp;&nbsp;
128
+ <a href="#M000149">server_port</a>&nbsp;&nbsp;
129
+ <a href="#M000153">server_protocol</a>&nbsp;&nbsp;
130
+ <a href="#M000160">set_header</a>&nbsp;&nbsp;
131
+ <a href="#M000179">setup_redirection</a>&nbsp;&nbsp;
132
+ <a href="#M000143">write</a>&nbsp;&nbsp;
133
+ </div>
134
+ </div>
135
+
136
+ </div>
137
+
138
+
139
+ <!-- if includes -->
140
+
141
+ <div id="section">
142
+
143
+ <div id="class-list">
144
+ <h3 class="section-bar">Classes and Modules</h3>
145
+
146
+ Class <a href="WebApp/QueryString.html" class="link">Hobix::WebApp::QueryString</a><br />
147
+ Class <a href="WebApp/QueryValidationFailure.html" class="link">Hobix::WebApp::QueryValidationFailure</a><br />
148
+
149
+ </div>
150
+
151
+ <div id="constants-list">
152
+ <h3 class="section-bar">Constants</h3>
153
+
154
+ <div class="name-list">
155
+ <table summary="Constants">
156
+ <tr class="top-aligned-row context-row">
157
+ <td class="context-item-name">NameChar</td>
158
+ <td>=</td>
159
+ <td class="context-item-value">/[-A-Za-z0-9._:]/</td>
160
+ </tr>
161
+ <tr class="top-aligned-row context-row">
162
+ <td class="context-item-name">NameExp</td>
163
+ <td>=</td>
164
+ <td class="context-item-value">/[A-Za-z_:]#{NameChar}*/</td>
165
+ </tr>
166
+ <tr class="top-aligned-row context-row">
167
+ <td class="context-item-name">XmlVersionNum</td>
168
+ <td>=</td>
169
+ <td class="context-item-value">/[a-zA-Z0-9_.:-]+/</td>
170
+ </tr>
171
+ <tr class="top-aligned-row context-row">
172
+ <td class="context-item-name">XmlVersionInfo_C</td>
173
+ <td>=</td>
174
+ <td class="context-item-value">/\s+version\s*=\s*(?:'(#{XmlVersionNum})'|&quot;(#{XmlVersionNum})&quot;)/</td>
175
+ </tr>
176
+ <tr class="top-aligned-row context-row">
177
+ <td class="context-item-name">XmlVersionInfo</td>
178
+ <td>=</td>
179
+ <td class="context-item-value">XmlVersionInfo_C.disable_capture</td>
180
+ </tr>
181
+ <tr class="top-aligned-row context-row">
182
+ <td class="context-item-name">XmlEncName</td>
183
+ <td>=</td>
184
+ <td class="context-item-value">/[A-Za-z][A-Za-z0-9._-]*/</td>
185
+ </tr>
186
+ <tr class="top-aligned-row context-row">
187
+ <td class="context-item-name">XmlEncodingDecl_C</td>
188
+ <td>=</td>
189
+ <td class="context-item-value">/\s+encoding\s*=\s*(?:&quot;(#{XmlEncName})&quot;|'(#{XmlEncName})')/</td>
190
+ </tr>
191
+ <tr class="top-aligned-row context-row">
192
+ <td class="context-item-name">XmlEncodingDecl</td>
193
+ <td>=</td>
194
+ <td class="context-item-value">XmlEncodingDecl_C.disable_capture</td>
195
+ </tr>
196
+ <tr class="top-aligned-row context-row">
197
+ <td class="context-item-name">XmlSDDecl_C</td>
198
+ <td>=</td>
199
+ <td class="context-item-value">/\s+standalone\s*=\s*(?:'(yes|no)'|&quot;(yes|no)&quot;)/</td>
200
+ </tr>
201
+ <tr class="top-aligned-row context-row">
202
+ <td class="context-item-name">XmlSDDecl</td>
203
+ <td>=</td>
204
+ <td class="context-item-value">XmlSDDecl_C.disable_capture</td>
205
+ </tr>
206
+ <tr class="top-aligned-row context-row">
207
+ <td class="context-item-name">XmlDecl_C</td>
208
+ <td>=</td>
209
+ <td class="context-item-value">/&lt;\?xml#{XmlVersionInfo_C}#{XmlEncodingDecl_C}?#{XmlSDDecl_C}?\s*\?&gt;/</td>
210
+ </tr>
211
+ <tr class="top-aligned-row context-row">
212
+ <td class="context-item-name">XmlDecl</td>
213
+ <td>=</td>
214
+ <td class="context-item-value">/&lt;\?xml#{XmlVersionInfo}#{XmlEncodingDecl}?#{XmlSDDecl}?\s*\?&gt;/</td>
215
+ </tr>
216
+ <tr class="top-aligned-row context-row">
217
+ <td class="context-item-name">SystemLiteral_C</td>
218
+ <td>=</td>
219
+ <td class="context-item-value">/&quot;([^&quot;]*)&quot;|'([^']*)'/</td>
220
+ </tr>
221
+ <tr class="top-aligned-row context-row">
222
+ <td class="context-item-name">PubidLiteral_C</td>
223
+ <td>=</td>
224
+ <td class="context-item-value">%r{&quot;([\sa-zA-Z0-9\-'()+,./:=?;!*\#@$_%]*)&quot;|'([\sa-zA-Z0-9\-()+,./:=?;!*\#@$_%]*)'}</td>
225
+ </tr>
226
+ <tr class="top-aligned-row context-row">
227
+ <td class="context-item-name">ExternalID_C</td>
228
+ <td>=</td>
229
+ <td class="context-item-value">/(?:SYSTEM|PUBLIC\s+#{PubidLiteral_C})(?:\s+#{SystemLiteral_C})?/</td>
230
+ </tr>
231
+ <tr class="top-aligned-row context-row">
232
+ <td class="context-item-name">DocType_C</td>
233
+ <td>=</td>
234
+ <td class="context-item-value">/&lt;!DOCTYPE\s+(#{NameExp})(?:\s+#{ExternalID_C})?\s*(?:\[.*?\]\s*)?&gt;/m</td>
235
+ </tr>
236
+ <tr class="top-aligned-row context-row">
237
+ <td class="context-item-name">DocType</td>
238
+ <td>=</td>
239
+ <td class="context-item-value">DocType_C.disable_capture</td>
240
+ </tr>
241
+ <tr class="top-aligned-row context-row">
242
+ <td class="context-item-name">WebAPPDevelopHost</td>
243
+ <td>=</td>
244
+ <td class="context-item-value">ENV['WEBAPP_DEVELOP_HOST']</td>
245
+ </tr>
246
+ </table>
247
+ </div>
248
+ </div>
249
+
250
+
251
+
252
+
253
+
254
+
255
+ <!-- if method_list -->
256
+ <div id="methods">
257
+ <h3 class="section-bar">Public Instance methods</h3>
258
+
259
+ <div id="method-M000138" class="method-detail">
260
+ <a name="M000138"></a>
261
+
262
+ <div class="method-heading">
263
+ <a href="#M000138" class="method-signature">
264
+ <span class="method-name">&lt;&lt;</span><span class="method-args">(str)</span>
265
+ </a>
266
+ </div>
267
+
268
+ <div class="method-description">
269
+ <p><a class="source-toggle" href="#"
270
+ onclick="toggleCode('M000138-source');return false;">[Source]</a></p>
271
+ <div class="method-source-code" id="M000138-source">
272
+ <pre>
273
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 69</span>
274
+ 69: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;&lt;</span>(<span class="ruby-identifier">str</span>) <span class="ruby-ivar">@response_body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span> <span class="ruby-keyword kw">end</span>
275
+ </pre>
276
+ </div>
277
+ </div>
278
+ </div>
279
+
280
+ <div id="method-M000158" class="method-detail">
281
+ <a name="M000158"></a>
282
+
283
+ <div class="method-heading">
284
+ <a href="#M000158" class="method-signature">
285
+ <span class="method-name">_GET</span><span class="method-args">()</span>
286
+ </a>
287
+ </div>
288
+
289
+ <div class="method-description">
290
+ <p><a class="source-toggle" href="#"
291
+ onclick="toggleCode('M000158-source');return false;">[Source]</a></p>
292
+ <div class="method-source-code" id="M000158-source">
293
+ <pre>
294
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 94</span>
295
+ 94: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_GET</span>()
296
+ 95: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@_get_vars</span>
297
+ 96: <span class="ruby-ivar">@_get_vars</span> = {}
298
+ 97: <span class="ruby-identifier">query_html_get_application_x_www_form_urlencoded</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>
299
+ 98: <span class="ruby-identifier">v</span>.<span class="ruby-identifier">gsub!</span>( <span class="ruby-regexp re">/\r\n/</span>, <span class="ruby-value str">&quot;\n&quot;</span> ) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">gsub!</span>
300
+ 99: <span class="ruby-ivar">@_get_vars</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
301
+ 100: <span class="ruby-keyword kw">end</span>
302
+ 101: <span class="ruby-keyword kw">end</span>
303
+ 102: <span class="ruby-ivar">@_get_vars</span>
304
+ 103: <span class="ruby-keyword kw">end</span>
305
+ </pre>
306
+ </div>
307
+ </div>
308
+ </div>
309
+
310
+ <div id="method-M000159" class="method-detail">
311
+ <a name="M000159"></a>
312
+
313
+ <div class="method-heading">
314
+ <a href="#M000159" class="method-signature">
315
+ <span class="method-name">_POST</span><span class="method-args">()</span>
316
+ </a>
317
+ </div>
318
+
319
+ <div class="method-description">
320
+ <p><a class="source-toggle" href="#"
321
+ onclick="toggleCode('M000159-source');return false;">[Source]</a></p>
322
+ <div class="method-source-code" id="M000159-source">
323
+ <pre>
324
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 105</span>
325
+ 105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">_POST</span>()
326
+ 106: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@_post_vars</span>
327
+ 107: <span class="ruby-ivar">@_post_vars</span> = {}
328
+ 108: <span class="ruby-identifier">query_html_post_application_x_www_form_urlencoded</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>
329
+ 109: <span class="ruby-identifier">v</span>.<span class="ruby-identifier">gsub!</span>( <span class="ruby-regexp re">/\r\n/</span>, <span class="ruby-value str">&quot;\n&quot;</span> ) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">defined?</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">gsub!</span>
330
+ 110: <span class="ruby-ivar">@_post_vars</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
331
+ 111: <span class="ruby-keyword kw">end</span>
332
+ 112: <span class="ruby-keyword kw">end</span>
333
+ 113: <span class="ruby-ivar">@_post_vars</span>
334
+ 114: <span class="ruby-keyword kw">end</span>
335
+ </pre>
336
+ </div>
337
+ </div>
338
+ </div>
339
+
340
+ <div id="method-M000178" class="method-detail">
341
+ <a name="M000178"></a>
342
+
343
+ <div class="method-heading">
344
+ <span class="method-name">absuri</span><span class="method-args">(hash={})</span>
345
+ </div>
346
+
347
+ <div class="method-description">
348
+ <p>
349
+ Alias for <a href="WebApp.html#M000177">make_absolute_uri</a>
350
+ </p>
351
+ </div>
352
+ </div>
353
+
354
+ <div id="method-M000157" class="method-detail">
355
+ <a name="M000157"></a>
356
+
357
+ <div class="method-heading">
358
+ <a href="#M000157" class="method-signature">
359
+ <span class="method-name">action_uri</span><span class="method-args">()</span>
360
+ </a>
361
+ </div>
362
+
363
+ <div class="method-description">
364
+ <p><a class="source-toggle" href="#"
365
+ onclick="toggleCode('M000157-source');return false;">[Source]</a></p>
366
+ <div class="method-source-code" id="M000157-source">
367
+ <pre>
368
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 92</span>
369
+ 92: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">action_uri</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">action_uri</span> <span class="ruby-keyword kw">end</span>
370
+ </pre>
371
+ </div>
372
+ </div>
373
+ </div>
374
+
375
+ <div id="method-M000161" class="method-detail">
376
+ <a name="M000161"></a>
377
+
378
+ <div class="method-heading">
379
+ <a href="#M000161" class="method-signature">
380
+ <span class="method-name">add_header</span><span class="method-args">(field_name, field_body)</span>
381
+ </a>
382
+ </div>
383
+
384
+ <div class="method-description">
385
+ <p><a class="source-toggle" href="#"
386
+ onclick="toggleCode('M000161-source');return false;">[Source]</a></p>
387
+ <div class="method-source-code" id="M000161-source">
388
+ <pre>
389
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 117</span>
390
+ 117: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_header</span>(<span class="ruby-identifier">field_name</span>, <span class="ruby-identifier">field_body</span>) <span class="ruby-ivar">@response_header</span>.<span class="ruby-identifier">add</span>(<span class="ruby-identifier">field_name</span>, <span class="ruby-identifier">field_body</span>) <span class="ruby-keyword kw">end</span>
391
+ </pre>
392
+ </div>
393
+ </div>
394
+ </div>
395
+
396
+ <div id="method-M000174" class="method-detail">
397
+ <a name="M000174"></a>
398
+
399
+ <div class="method-heading">
400
+ <a href="#M000174" class="method-signature">
401
+ <span class="method-name">check_last_modified</span><span class="method-args">(last_modified) {|| ...}</span>
402
+ </a>
403
+ </div>
404
+
405
+ <div class="method-description">
406
+ <p><a class="source-toggle" href="#"
407
+ onclick="toggleCode('M000174-source');return false;">[Source]</a></p>
408
+ <div class="method-source-code" id="M000174-source">
409
+ <pre>
410
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 211</span>
411
+ 211: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">check_last_modified</span>(<span class="ruby-identifier">last_modified</span>)
412
+ 212: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ims</span> = <span class="ruby-ivar">@request_header</span>[<span class="ruby-value str">'If-Modified-Since'</span>] <span class="ruby-keyword kw">and</span>
413
+ 213: ((<span class="ruby-identifier">ims</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">httpdate</span>(<span class="ruby-identifier">ims</span>)) <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>) <span class="ruby-keyword kw">and</span>
414
+ 214: <span class="ruby-identifier">last_modified</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">ims</span>
415
+ 215: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">status_line</span> = <span class="ruby-value str">'304 Not Modified'</span>
416
+ 216: <span class="ruby-keyword kw">return</span>
417
+ 217: <span class="ruby-keyword kw">end</span>
418
+ 218: <span class="ruby-ivar">@response_header</span>.<span class="ruby-identifier">set</span> <span class="ruby-value str">'Last-Modified'</span>, <span class="ruby-identifier">last_modified</span>.<span class="ruby-identifier">httpdate</span>
419
+ 219: <span class="ruby-keyword kw">yield</span>
420
+ 220: <span class="ruby-keyword kw">end</span>
421
+ </pre>
422
+ </div>
423
+ </div>
424
+ </div>
425
+
426
+ <div id="method-M000163" class="method-detail">
427
+ <a name="M000163"></a>
428
+
429
+ <div class="method-heading">
430
+ <a href="#M000163" class="method-signature">
431
+ <span class="method-name">clear_header</span><span class="method-args">()</span>
432
+ </a>
433
+ </div>
434
+
435
+ <div class="method-description">
436
+ <p><a class="source-toggle" href="#"
437
+ onclick="toggleCode('M000163-source');return false;">[Source]</a></p>
438
+ <div class="method-source-code" id="M000163-source">
439
+ <pre>
440
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 119</span>
441
+ 119: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clear_header</span>() <span class="ruby-ivar">@response_header</span>.<span class="ruby-identifier">clear</span> <span class="ruby-keyword kw">end</span>
442
+ </pre>
443
+ </div>
444
+ </div>
445
+ </div>
446
+
447
+ <div id="method-M000168" class="method-detail">
448
+ <a name="M000168"></a>
449
+
450
+ <div class="method-heading">
451
+ <a href="#M000168" class="method-signature">
452
+ <span class="method-name">content_type</span><span class="method-args">()</span>
453
+ </a>
454
+ </div>
455
+
456
+ <div class="method-description">
457
+ <p><a class="source-toggle" href="#"
458
+ onclick="toggleCode('M000168-source');return false;">[Source]</a></p>
459
+ <div class="method-source-code" id="M000168-source">
460
+ <pre>
461
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 129</span>
462
+ 129: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">content_type</span>
463
+ 130: <span class="ruby-ivar">@response_header</span>[<span class="ruby-value str">'Content-Type'</span>]
464
+ 131: <span class="ruby-keyword kw">end</span>
465
+ </pre>
466
+ </div>
467
+ </div>
468
+ </div>
469
+
470
+ <div id="method-M000167" class="method-detail">
471
+ <a name="M000167"></a>
472
+
473
+ <div class="method-heading">
474
+ <a href="#M000167" class="method-signature">
475
+ <span class="method-name">content_type=</span><span class="method-args">(media_type)</span>
476
+ </a>
477
+ </div>
478
+
479
+ <div class="method-description">
480
+ <p><a class="source-toggle" href="#"
481
+ onclick="toggleCode('M000167-source');return false;">[Source]</a></p>
482
+ <div class="method-source-code" id="M000167-source">
483
+ <pre>
484
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 126</span>
485
+ 126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">content_type=</span>(<span class="ruby-identifier">media_type</span>)
486
+ 127: <span class="ruby-ivar">@response_header</span>.<span class="ruby-identifier">set</span> <span class="ruby-value str">'Content-Type'</span>, <span class="ruby-identifier">media_type</span>
487
+ 128: <span class="ruby-keyword kw">end</span>
488
+ </pre>
489
+ </div>
490
+ </div>
491
+ </div>
492
+
493
+ <div id="method-M000166" class="method-detail">
494
+ <a name="M000166"></a>
495
+
496
+ <div class="method-heading">
497
+ <a href="#M000166" class="method-signature">
498
+ <span class="method-name">each_header</span><span class="method-args">() {|field_name, field_body| ...}</span>
499
+ </a>
500
+ </div>
501
+
502
+ <div class="method-description">
503
+ <p><a class="source-toggle" href="#"
504
+ onclick="toggleCode('M000166-source');return false;">[Source]</a></p>
505
+ <div class="method-source-code" id="M000166-source">
506
+ <pre>
507
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 122</span>
508
+ 122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_header</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-comment cmt"># :yields: field_name, field_body</span>
509
+ 123: <span class="ruby-ivar">@response_header</span>.<span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
510
+ 124: <span class="ruby-keyword kw">end</span>
511
+ </pre>
512
+ </div>
513
+ </div>
514
+ </div>
515
+
516
+ <div id="method-M000144" class="method-detail">
517
+ <a name="M000144"></a>
518
+
519
+ <div class="method-heading">
520
+ <a href="#M000144" class="method-signature">
521
+ <span class="method-name">each_request_header</span><span class="method-args">() {|field_name, field_body| ...}</span>
522
+ </a>
523
+ </div>
524
+
525
+ <div class="method-description">
526
+ <p><a class="source-toggle" href="#"
527
+ onclick="toggleCode('M000144-source');return false;">[Source]</a></p>
528
+ <div class="method-source-code" id="M000144-source">
529
+ <pre>
530
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 76</span>
531
+ 76: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_request_header</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-comment cmt"># :yields: field_name, field_body</span>
532
+ 77: <span class="ruby-ivar">@request_header</span>.<span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
533
+ 78: <span class="ruby-keyword kw">end</span>
534
+ </pre>
535
+ </div>
536
+ </div>
537
+ </div>
538
+
539
+ <div id="method-M000165" class="method-detail">
540
+ <a name="M000165"></a>
541
+
542
+ <div class="method-heading">
543
+ <a href="#M000165" class="method-signature">
544
+ <span class="method-name">get_header</span><span class="method-args">(field_name)</span>
545
+ </a>
546
+ </div>
547
+
548
+ <div class="method-description">
549
+ <p><a class="source-toggle" href="#"
550
+ onclick="toggleCode('M000165-source');return false;">[Source]</a></p>
551
+ <div class="method-source-code" id="M000165-source">
552
+ <pre>
553
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 121</span>
554
+ 121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_header</span>(<span class="ruby-identifier">field_name</span>) <span class="ruby-ivar">@response_header</span>[<span class="ruby-identifier">field_name</span>] <span class="ruby-keyword kw">end</span>
555
+ </pre>
556
+ </div>
557
+ </div>
558
+ </div>
559
+
560
+ <div id="method-M000145" class="method-detail">
561
+ <a name="M000145"></a>
562
+
563
+ <div class="method-heading">
564
+ <a href="#M000145" class="method-signature">
565
+ <span class="method-name">get_request_header</span><span class="method-args">(field_name)</span>
566
+ </a>
567
+ </div>
568
+
569
+ <div class="method-description">
570
+ <p><a class="source-toggle" href="#"
571
+ onclick="toggleCode('M000145-source');return false;">[Source]</a></p>
572
+ <div class="method-source-code" id="M000145-source">
573
+ <pre>
574
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 79</span>
575
+ 79: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_request_header</span>(<span class="ruby-identifier">field_name</span>) <span class="ruby-ivar">@request_header</span>[<span class="ruby-identifier">field_name</span>] <span class="ruby-keyword kw">end</span>
576
+ </pre>
577
+ </div>
578
+ </div>
579
+ </div>
580
+
581
+ <div id="method-M000164" class="method-detail">
582
+ <a name="M000164"></a>
583
+
584
+ <div class="method-heading">
585
+ <a href="#M000164" class="method-signature">
586
+ <span class="method-name">has_header?</span><span class="method-args">(field_name)</span>
587
+ </a>
588
+ </div>
589
+
590
+ <div class="method-description">
591
+ <p><a class="source-toggle" href="#"
592
+ onclick="toggleCode('M000164-source');return false;">[Source]</a></p>
593
+ <div class="method-source-code" id="M000164-source">
594
+ <pre>
595
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 120</span>
596
+ 120: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_header?</span>(<span class="ruby-identifier">field_name</span>) <span class="ruby-ivar">@response_header</span>.<span class="ruby-identifier">has?</span>(<span class="ruby-identifier">field_name</span>) <span class="ruby-keyword kw">end</span>
597
+ </pre>
598
+ </div>
599
+ </div>
600
+ </div>
601
+
602
+ <div id="method-M000177" class="method-detail">
603
+ <a name="M000177"></a>
604
+
605
+ <div class="method-heading">
606
+ <a href="#M000177" class="method-signature">
607
+ <span class="method-name">make_absolute_uri(:script=>string, :path_info=>string, :query=>query, :fragment=>string) &rarr; URI<br />
608
+ </span>
609
+ </a>
610
+ </div>
611
+
612
+ <div class="method-description">
613
+ <p>
614
+ <a href="WebApp.html#M000177">make_absolute_uri</a> returns a absolute URI
615
+ which base URI is the URI of the web application is invoked.
616
+ </p>
617
+ <p>
618
+ The argument is same as <a
619
+ href="WebApp.html#M000175">make_relative_uri</a>.
620
+ </p>
621
+ <p><a class="source-toggle" href="#"
622
+ onclick="toggleCode('M000177-source');return false;">[Source]</a></p>
623
+ <div class="method-source-code" id="M000177-source">
624
+ <pre>
625
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 274</span>
626
+ 274: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_absolute_uri</span>(<span class="ruby-identifier">hash</span>={})
627
+ 275: <span class="ruby-ivar">@urigen</span>.<span class="ruby-identifier">make_absolute_uri</span>(<span class="ruby-identifier">hash</span>)
628
+ 276: <span class="ruby-keyword kw">end</span>
629
+ </pre>
630
+ </div>
631
+ </div>
632
+ </div>
633
+
634
+ <div id="method-M000175" class="method-detail">
635
+ <a name="M000175"></a>
636
+
637
+ <div class="method-heading">
638
+ <a href="#M000175" class="method-signature">
639
+ <span class="method-name">reluri(:script=>string, :path_info=>string, :query=>query, :fragment=>string) &rarr; URI<br />
640
+ make_relative_uri(:script=>string, :path_info=>string, :query=>query, :fragment=>string) &rarr; URI<br />
641
+ </span>
642
+ </a>
643
+ </div>
644
+
645
+ <div class="method-description">
646
+ <pre>
647
+ make_relative_uri returns a relative URI which base URI is the URI the
648
+ web application is invoked.
649
+
650
+ The argument should be a hash which may have following components.
651
+ - :script specifies script_name relative from the directory containing
652
+ the web application script.
653
+ If it is not specified, the web application itself is assumed.
654
+ - :path_info specifies path_info component for calling web application.
655
+ It should begin with a slash.
656
+ If it is not specified, &quot;&quot; is assumed.
657
+ - :query specifies query a component.
658
+ It should be a Hash or a WebApp::QueryString.
659
+ - :fragment specifies a fragment identifier.
660
+ If it is not specified, a fragment identifier is not appended to
661
+ the result URL.
662
+
663
+ Since the method escapes the components properly,
664
+ you should specify them in unescaped form.
665
+
666
+ In the example follow, assume that the web application bar.cgi is invoked
667
+ as http://host/foo/bar.cgi/baz/qux.
668
+
669
+ webapp.reluri(:path_info=&gt;&quot;/hoge&quot;) =&gt; URI(&quot;../hoge&quot;)
670
+ webapp.reluri(:path_info=&gt;&quot;/baz/fuga&quot;) =&gt; URI(&quot;fuga&quot;)
671
+ webapp.reluri(:path_info=&gt;&quot;/baz/&quot;) =&gt; URI(&quot;./&quot;)
672
+ webapp.reluri(:path_info=&gt;&quot;/&quot;) =&gt; URI(&quot;../&quot;)
673
+ webapp.reluri() =&gt; URI(&quot;../../bar.cgi&quot;)
674
+ webapp.reluri(:script=&gt;&quot;funyo.cgi&quot;) =&gt; URI(&quot;../../funyo.cgi&quot;)
675
+ webapp.reluri(:script=&gt;&quot;punyo/gunyo.cgi&quot;) =&gt; URI(&quot;../../punyo/gunyo.cgi&quot;)
676
+ webapp.reluri(:script=&gt;&quot;../genyo.cgi&quot;) =&gt; URI(&quot;../../../genyo.cgi&quot;)
677
+ webapp.reluri(:fragment=&gt;&quot;sec1&quot;) =&gt; URI(&quot;../../bar.cgi#sec1&quot;)
678
+ </pre>
679
+ <p>
680
+ )
681
+ </p>
682
+ <pre>
683
+ webapp.reluri(:path_info=&gt;&quot;/h?#o/x y&quot;) =&gt; URI(&quot;../h%3F%23o/x%20y&quot;)
684
+ webapp.reluri(:script=&gt;&quot;ho%o.cgi&quot;) =&gt; URI(&quot;../../ho%25o.cgi&quot;)
685
+ webapp.reluri(:fragment=&gt;&quot;sp ce&quot;) =&gt; URI(&quot;../../bar.cgi#sp%20ce&quot;)
686
+ </pre>
687
+ <p><a class="source-toggle" href="#"
688
+ onclick="toggleCode('M000175-source');return false;">[Source]</a></p>
689
+ <div class="method-source-code" id="M000175-source">
690
+ <pre>
691
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 262</span>
692
+ 262: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_relative_uri</span>(<span class="ruby-identifier">hash</span>={})
693
+ 263: <span class="ruby-ivar">@urigen</span>.<span class="ruby-identifier">make_relative_uri</span>(<span class="ruby-identifier">hash</span>)
694
+ 264: <span class="ruby-keyword kw">end</span>
695
+ </pre>
696
+ </div>
697
+ </div>
698
+ </div>
699
+
700
+ <div id="method-M000170" class="method-detail">
701
+ <a name="M000170"></a>
702
+
703
+ <div class="method-heading">
704
+ <a href="#M000170" class="method-signature">
705
+ <span class="method-name">open_resource(path)<br />
706
+ open_resource(path) {|io| ... }<br />
707
+ </span>
708
+ </a>
709
+ </div>
710
+
711
+ <div class="method-description">
712
+ <p>
713
+ opens <em>path</em> as relative from a web application directory.
714
+ </p>
715
+ <p><a class="source-toggle" href="#"
716
+ onclick="toggleCode('M000170-source');return false;">[Source]</a></p>
717
+ <div class="method-source-code" id="M000170-source">
718
+ <pre>
719
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 157</span>
720
+ 157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open_resource</span>(<span class="ruby-identifier">path</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
721
+ 158: <span class="ruby-identifier">resource_path</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">open</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
722
+ 159: <span class="ruby-keyword kw">end</span>
723
+ </pre>
724
+ </div>
725
+ </div>
726
+ </div>
727
+
728
+ <div id="method-M000151" class="method-detail">
729
+ <a name="M000151"></a>
730
+
731
+ <div class="method-heading">
732
+ <a href="#M000151" class="method-signature">
733
+ <span class="method-name">path_info</span><span class="method-args">()</span>
734
+ </a>
735
+ </div>
736
+
737
+ <div class="method-description">
738
+ <p><a class="source-toggle" href="#"
739
+ onclick="toggleCode('M000151-source');return false;">[Source]</a></p>
740
+ <div class="method-source-code" id="M000151-source">
741
+ <pre>
742
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 86</span>
743
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">path_info</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">path_info</span> <span class="ruby-keyword kw">end</span>
744
+ </pre>
745
+ </div>
746
+ </div>
747
+ </div>
748
+
749
+ <div id="method-M000139" class="method-detail">
750
+ <a name="M000139"></a>
751
+
752
+ <div class="method-heading">
753
+ <a href="#M000139" class="method-signature">
754
+ <span class="method-name">print</span><span class="method-args">(*strs)</span>
755
+ </a>
756
+ </div>
757
+
758
+ <div class="method-description">
759
+ <p><a class="source-toggle" href="#"
760
+ onclick="toggleCode('M000139-source');return false;">[Source]</a></p>
761
+ <div class="method-source-code" id="M000139-source">
762
+ <pre>
763
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 70</span>
764
+ 70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">print</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">strs</span>) <span class="ruby-ivar">@response_body</span>.<span class="ruby-identifier">print</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">strs</span>) <span class="ruby-keyword kw">end</span>
765
+ </pre>
766
+ </div>
767
+ </div>
768
+ </div>
769
+
770
+ <div id="method-M000140" class="method-detail">
771
+ <a name="M000140"></a>
772
+
773
+ <div class="method-heading">
774
+ <a href="#M000140" class="method-signature">
775
+ <span class="method-name">printf</span><span class="method-args">(fmt, *args)</span>
776
+ </a>
777
+ </div>
778
+
779
+ <div class="method-description">
780
+ <p><a class="source-toggle" href="#"
781
+ onclick="toggleCode('M000140-source');return false;">[Source]</a></p>
782
+ <div class="method-source-code" id="M000140-source">
783
+ <pre>
784
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 71</span>
785
+ 71: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">printf</span>(<span class="ruby-identifier">fmt</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>) <span class="ruby-ivar">@response_body</span>.<span class="ruby-identifier">printf</span>(<span class="ruby-identifier">fmt</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>) <span class="ruby-keyword kw">end</span>
786
+ </pre>
787
+ </div>
788
+ </div>
789
+ </div>
790
+
791
+ <div id="method-M000141" class="method-detail">
792
+ <a name="M000141"></a>
793
+
794
+ <div class="method-heading">
795
+ <a href="#M000141" class="method-signature">
796
+ <span class="method-name">putc</span><span class="method-args">(ch)</span>
797
+ </a>
798
+ </div>
799
+
800
+ <div class="method-description">
801
+ <p><a class="source-toggle" href="#"
802
+ onclick="toggleCode('M000141-source');return false;">[Source]</a></p>
803
+ <div class="method-source-code" id="M000141-source">
804
+ <pre>
805
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 72</span>
806
+ 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">putc</span>(<span class="ruby-identifier">ch</span>) <span class="ruby-ivar">@response_body</span>.<span class="ruby-identifier">putc</span> <span class="ruby-identifier">ch</span> <span class="ruby-keyword kw">end</span>
807
+ </pre>
808
+ </div>
809
+ </div>
810
+ </div>
811
+
812
+ <div id="method-M000142" class="method-detail">
813
+ <a name="M000142"></a>
814
+
815
+ <div class="method-heading">
816
+ <a href="#M000142" class="method-signature">
817
+ <span class="method-name">puts</span><span class="method-args">(*strs)</span>
818
+ </a>
819
+ </div>
820
+
821
+ <div class="method-description">
822
+ <p><a class="source-toggle" href="#"
823
+ onclick="toggleCode('M000142-source');return false;">[Source]</a></p>
824
+ <div class="method-source-code" id="M000142-source">
825
+ <pre>
826
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 73</span>
827
+ 73: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">puts</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">strs</span>) <span class="ruby-ivar">@response_body</span>.<span class="ruby-identifier">puts</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">strs</span>) <span class="ruby-keyword kw">end</span>
828
+ </pre>
829
+ </div>
830
+ </div>
831
+ </div>
832
+
833
+ <div id="method-M000180" class="method-detail">
834
+ <a name="M000180"></a>
835
+
836
+ <div class="method-heading">
837
+ <a href="#M000180" class="method-signature">
838
+ <span class="method-name">query_html_get_application_x_www_form_urlencoded</span><span class="method-args">()</span>
839
+ </a>
840
+ </div>
841
+
842
+ <div class="method-description">
843
+ <p><a class="source-toggle" href="#"
844
+ onclick="toggleCode('M000180-source');return false;">[Source]</a></p>
845
+ <div class="method-source-code" id="M000180-source">
846
+ <pre>
847
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 366</span>
848
+ 366: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_html_get_application_x_www_form_urlencoded</span>
849
+ 367: <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">query_string</span>.<span class="ruby-identifier">decode_as_application_x_www_form_urlencoded</span>
850
+ 368: <span class="ruby-keyword kw">end</span>
851
+ </pre>
852
+ </div>
853
+ </div>
854
+ </div>
855
+
856
+ <div id="method-M000181" class="method-detail">
857
+ <a name="M000181"></a>
858
+
859
+ <div class="method-heading">
860
+ <a href="#M000181" class="method-signature">
861
+ <span class="method-name">query_html_post_application_x_www_form_urlencoded</span><span class="method-args">()</span>
862
+ </a>
863
+ </div>
864
+
865
+ <div class="method-description">
866
+ <p><a class="source-toggle" href="#"
867
+ onclick="toggleCode('M000181-source');return false;">[Source]</a></p>
868
+ <div class="method-source-code" id="M000181-source">
869
+ <pre>
870
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 370</span>
871
+ 370: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_html_post_application_x_www_form_urlencoded</span>
872
+ 371: <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">/\Apost\z/i</span> <span class="ruby-operator">=~</span> <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">request_method</span> <span class="ruby-comment cmt"># xxx: should not check?</span>
873
+ 372: <span class="ruby-identifier">q</span> = <span class="ruby-constant">QueryString</span>.<span class="ruby-identifier">primitive_new_for_raw_query_string</span>(<span class="ruby-ivar">@request</span>.<span class="ruby-identifier">body_object</span>.<span class="ruby-identifier">read</span>)
874
+ 373: <span class="ruby-keyword kw">if</span> <span class="ruby-regexp re">%r|\Amultipart/form-data.*boundary=\&quot;?([^\&quot;;,]+)\&quot;?|n</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">request_content_type</span>)
875
+ 374: <span class="ruby-identifier">boundary</span> = <span class="ruby-identifier">$1</span>.<span class="ruby-identifier">dup</span>
876
+ 375: <span class="ruby-identifier">q</span>.<span class="ruby-identifier">decode_as_multipart_form_data</span> <span class="ruby-identifier">boundary</span>
877
+ 376: <span class="ruby-keyword kw">else</span>
878
+ 377: <span class="ruby-identifier">q</span>.<span class="ruby-identifier">decode_as_application_x_www_form_urlencoded</span>
879
+ 378: <span class="ruby-keyword kw">end</span>
880
+ 379: <span class="ruby-keyword kw">else</span>
881
+ 380: <span class="ruby-comment cmt"># xxx: warning?</span>
882
+ 381: <span class="ruby-constant">HTMLFormQuery</span>.<span class="ruby-identifier">new</span>
883
+ 382: <span class="ruby-keyword kw">end</span>
884
+ 383: <span class="ruby-keyword kw">end</span>
885
+ </pre>
886
+ </div>
887
+ </div>
888
+ </div>
889
+
890
+ <div id="method-M000152" class="method-detail">
891
+ <a name="M000152"></a>
892
+
893
+ <div class="method-heading">
894
+ <a href="#M000152" class="method-signature">
895
+ <span class="method-name">query_string</span><span class="method-args">()</span>
896
+ </a>
897
+ </div>
898
+
899
+ <div class="method-description">
900
+ <p><a class="source-toggle" href="#"
901
+ onclick="toggleCode('M000152-source');return false;">[Source]</a></p>
902
+ <div class="method-source-code" id="M000152-source">
903
+ <pre>
904
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 87</span>
905
+ 87: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_string</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">query_string</span> <span class="ruby-keyword kw">end</span>
906
+ </pre>
907
+ </div>
908
+ </div>
909
+ </div>
910
+
911
+ <div id="method-M000176" class="method-detail">
912
+ <a name="M000176"></a>
913
+
914
+ <div class="method-heading">
915
+ <span class="method-name">reluri</span><span class="method-args">(hash={})</span>
916
+ </div>
917
+
918
+ <div class="method-description">
919
+ <p>
920
+ Alias for <a href="WebApp.html#M000175">make_relative_uri</a>
921
+ </p>
922
+ </div>
923
+ </div>
924
+
925
+ <div id="method-M000154" class="method-detail">
926
+ <a name="M000154"></a>
927
+
928
+ <div class="method-heading">
929
+ <a href="#M000154" class="method-signature">
930
+ <span class="method-name">remote_addr</span><span class="method-args">()</span>
931
+ </a>
932
+ </div>
933
+
934
+ <div class="method-description">
935
+ <p><a class="source-toggle" href="#"
936
+ onclick="toggleCode('M000154-source');return false;">[Source]</a></p>
937
+ <div class="method-source-code" id="M000154-source">
938
+ <pre>
939
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 89</span>
940
+ 89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remote_addr</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">remote_addr</span> <span class="ruby-keyword kw">end</span>
941
+ </pre>
942
+ </div>
943
+ </div>
944
+ </div>
945
+
946
+ <div id="method-M000162" class="method-detail">
947
+ <a name="M000162"></a>
948
+
949
+ <div class="method-heading">
950
+ <a href="#M000162" class="method-signature">
951
+ <span class="method-name">remove_header</span><span class="method-args">(field_name)</span>
952
+ </a>
953
+ </div>
954
+
955
+ <div class="method-description">
956
+ <p><a class="source-toggle" href="#"
957
+ onclick="toggleCode('M000162-source');return false;">[Source]</a></p>
958
+ <div class="method-source-code" id="M000162-source">
959
+ <pre>
960
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 118</span>
961
+ 118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_header</span>(<span class="ruby-identifier">field_name</span>) <span class="ruby-ivar">@response_header</span>.<span class="ruby-identifier">remove</span>(<span class="ruby-identifier">field_name</span>) <span class="ruby-keyword kw">end</span>
962
+ </pre>
963
+ </div>
964
+ </div>
965
+ </div>
966
+
967
+ <div id="method-M000147" class="method-detail">
968
+ <a name="M000147"></a>
969
+
970
+ <div class="method-heading">
971
+ <a href="#M000147" class="method-signature">
972
+ <span class="method-name">request_body</span><span class="method-args">()</span>
973
+ </a>
974
+ </div>
975
+
976
+ <div class="method-description">
977
+ <p><a class="source-toggle" href="#"
978
+ onclick="toggleCode('M000147-source');return false;">[Source]</a></p>
979
+ <div class="method-source-code" id="M000147-source">
980
+ <pre>
981
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 82</span>
982
+ 82: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request_body</span>() <span class="ruby-ivar">@request_body</span>.<span class="ruby-identifier">string</span> <span class="ruby-keyword kw">end</span>
983
+ </pre>
984
+ </div>
985
+ </div>
986
+ </div>
987
+
988
+ <div id="method-M000155" class="method-detail">
989
+ <a name="M000155"></a>
990
+
991
+ <div class="method-heading">
992
+ <a href="#M000155" class="method-signature">
993
+ <span class="method-name">request_content_type</span><span class="method-args">()</span>
994
+ </a>
995
+ </div>
996
+
997
+ <div class="method-description">
998
+ <p><a class="source-toggle" href="#"
999
+ onclick="toggleCode('M000155-source');return false;">[Source]</a></p>
1000
+ <div class="method-source-code" id="M000155-source">
1001
+ <pre>
1002
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 90</span>
1003
+ 90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request_content_type</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">content_type</span> <span class="ruby-keyword kw">end</span>
1004
+ </pre>
1005
+ </div>
1006
+ </div>
1007
+ </div>
1008
+
1009
+ <div id="method-M000146" class="method-detail">
1010
+ <a name="M000146"></a>
1011
+
1012
+ <div class="method-heading">
1013
+ <a href="#M000146" class="method-signature">
1014
+ <span class="method-name">request_method</span><span class="method-args">()</span>
1015
+ </a>
1016
+ </div>
1017
+
1018
+ <div class="method-description">
1019
+ <p><a class="source-toggle" href="#"
1020
+ onclick="toggleCode('M000146-source');return false;">[Source]</a></p>
1021
+ <div class="method-source-code" id="M000146-source">
1022
+ <pre>
1023
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 81</span>
1024
+ 81: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request_method</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">request_method</span> <span class="ruby-keyword kw">end</span>
1025
+ </pre>
1026
+ </div>
1027
+ </div>
1028
+ </div>
1029
+
1030
+ <div id="method-M000156" class="method-detail">
1031
+ <a name="M000156"></a>
1032
+
1033
+ <div class="method-heading">
1034
+ <a href="#M000156" class="method-signature">
1035
+ <span class="method-name">request_uri</span><span class="method-args">()</span>
1036
+ </a>
1037
+ </div>
1038
+
1039
+ <div class="method-description">
1040
+ <p><a class="source-toggle" href="#"
1041
+ onclick="toggleCode('M000156-source');return false;">[Source]</a></p>
1042
+ <div class="method-source-code" id="M000156-source">
1043
+ <pre>
1044
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 91</span>
1045
+ 91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">request_uri</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">request_uri</span> <span class="ruby-keyword kw">end</span>
1046
+ </pre>
1047
+ </div>
1048
+ </div>
1049
+ </div>
1050
+
1051
+ <div id="method-M000169" class="method-detail">
1052
+ <a name="M000169"></a>
1053
+
1054
+ <div class="method-heading">
1055
+ <a href="#M000169" class="method-signature">
1056
+ <span class="method-name">resource_path</span><span class="method-args">(arg)</span>
1057
+ </a>
1058
+ </div>
1059
+
1060
+ <div class="method-description">
1061
+ <p>
1062
+ returns a Pathname object. <em>path</em> is interpreted as a relative path
1063
+ from the directory which a web application exists.
1064
+ </p>
1065
+ <p>
1066
+ If /home/user/public_html/foo/bar.cgi is a web application which <a
1067
+ href="WebApp.html">WebApp</a> {} calls,
1068
+ webapp.resource_path(&quot;baz&quot;) returns a pathname points to
1069
+ /home/user/public_html/foo/baz.
1070
+ </p>
1071
+ <p>
1072
+ <em>path</em> must not have &quot;..&quot; component and must not be
1073
+ absolute. Otherwise ArgumentError is raised.
1074
+ </p>
1075
+ <p><a class="source-toggle" href="#"
1076
+ onclick="toggleCode('M000169-source');return false;">[Source]</a></p>
1077
+ <div class="method-source-code" id="M000169-source">
1078
+ <pre>
1079
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 143</span>
1080
+ 143: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">resource_path</span>(<span class="ruby-identifier">arg</span>)
1081
+ 144: <span class="ruby-identifier">path</span> = <span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">arg</span>)
1082
+ 145: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;absolute path: #{arg.inspect}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">path</span>.<span class="ruby-identifier">relative?</span>
1083
+ 146: <span class="ruby-identifier">path</span>.<span class="ruby-identifier">each_filename</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
1084
+ 147: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;path contains .. : #{arg.inspect}&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">f</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'..'</span>
1085
+ 148: }
1086
+ 149: <span class="ruby-ivar">@manager</span>.<span class="ruby-identifier">resource_basedir</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">path</span>
1087
+ 150: <span class="ruby-keyword kw">end</span>
1088
+ </pre>
1089
+ </div>
1090
+ </div>
1091
+ </div>
1092
+
1093
+ <div id="method-M000150" class="method-detail">
1094
+ <a name="M000150"></a>
1095
+
1096
+ <div class="method-heading">
1097
+ <a href="#M000150" class="method-signature">
1098
+ <span class="method-name">script_name</span><span class="method-args">()</span>
1099
+ </a>
1100
+ </div>
1101
+
1102
+ <div class="method-description">
1103
+ <p><a class="source-toggle" href="#"
1104
+ onclick="toggleCode('M000150-source');return false;">[Source]</a></p>
1105
+ <div class="method-source-code" id="M000150-source">
1106
+ <pre>
1107
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 85</span>
1108
+ 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">script_name</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">script_name</span> <span class="ruby-keyword kw">end</span>
1109
+ </pre>
1110
+ </div>
1111
+ </div>
1112
+ </div>
1113
+
1114
+ <div id="method-M000172" class="method-detail">
1115
+ <a name="M000172"></a>
1116
+
1117
+ <div class="method-heading">
1118
+ <a href="#M000172" class="method-signature">
1119
+ <span class="method-name">send_not_found</span><span class="method-args">(msg)</span>
1120
+ </a>
1121
+ </div>
1122
+
1123
+ <div class="method-description">
1124
+ <p><a class="source-toggle" href="#"
1125
+ onclick="toggleCode('M000172-source');return false;">[Source]</a></p>
1126
+ <div class="method-source-code" id="M000172-source">
1127
+ <pre>
1128
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 181</span>
1129
+ 181: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_not_found</span>(<span class="ruby-identifier">msg</span>)
1130
+ 182: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">status_line</span> = <span class="ruby-value str">'404 Not Found'</span>
1131
+ 183: <span class="ruby-ivar">@response_body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&lt;html&gt;\n &lt;head&gt;&lt;title&gt;404 Not Found&lt;/title&gt;&lt;/head&gt;\n &lt;body&gt;\n &lt;h1&gt;404 Not Found&lt;/h1&gt;\n &lt;p&gt;\#{msg}&lt;/p&gt;\n &lt;hr /&gt;\n &lt;small&gt;&lt;a href=\&quot;http://hobix.com/\&quot;&gt;hobix&lt;/a&gt; \#{ Hobix::VERSION } / &lt;a href=\&quot;http://docs.hobix.com\&quot;&gt;docs&lt;/a&gt; / &lt;a href=\&quot;http://let.us.all.hobix.com\&quot;&gt;wiki&lt;/a&gt; / &lt;a href=\&quot;http://google.com/search?q=hobix+\#{ URI.escape action_uri }\&quot;&gt;search google for this action&lt;/a&gt;&lt;/small&gt;\n &lt;/body&gt;\n&lt;/html&gt;\n&quot;</span>
1132
+ 184: <span class="ruby-keyword kw">end</span>
1133
+ </pre>
1134
+ </div>
1135
+ </div>
1136
+ </div>
1137
+
1138
+ <div id="method-M000171" class="method-detail">
1139
+ <a name="M000171"></a>
1140
+
1141
+ <div class="method-heading">
1142
+ <a href="#M000171" class="method-signature">
1143
+ <span class="method-name">send_resource(path)<br />
1144
+ </span>
1145
+ </a>
1146
+ </div>
1147
+
1148
+ <div class="method-description">
1149
+ <p>
1150
+ send the resource indicated by <em>path</em>. Last-Modified: and
1151
+ If-Modified-Since: header is supported.
1152
+ </p>
1153
+ <p><a class="source-toggle" href="#"
1154
+ onclick="toggleCode('M000171-source');return false;">[Source]</a></p>
1155
+ <div class="method-source-code" id="M000171-source">
1156
+ <pre>
1157
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 166</span>
1158
+ 166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_resource</span>(<span class="ruby-identifier">path</span>)
1159
+ 167: <span class="ruby-identifier">path</span> = <span class="ruby-identifier">resource_path</span>(<span class="ruby-identifier">path</span>)
1160
+ 168: <span class="ruby-keyword kw">begin</span>
1161
+ 169: <span class="ruby-identifier">mtime</span> = <span class="ruby-identifier">path</span>.<span class="ruby-identifier">mtime</span>
1162
+ 170: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ENOENT</span>
1163
+ 171: <span class="ruby-identifier">send_not_found</span> <span class="ruby-node">&quot;Resource not found: #{path}&quot;</span>
1164
+ 172: <span class="ruby-keyword kw">return</span>
1165
+ 173: <span class="ruby-keyword kw">end</span>
1166
+ 174: <span class="ruby-identifier">check_last_modified</span>(<span class="ruby-identifier">path</span>.<span class="ruby-identifier">mtime</span>) {
1167
+ 175: <span class="ruby-identifier">path</span>.<span class="ruby-identifier">open</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
1168
+ 176: <span class="ruby-ivar">@response_body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>
1169
+ 177: }
1170
+ 178: }
1171
+ 179: <span class="ruby-keyword kw">end</span>
1172
+ </pre>
1173
+ </div>
1174
+ </div>
1175
+ </div>
1176
+
1177
+ <div id="method-M000173" class="method-detail">
1178
+ <a name="M000173"></a>
1179
+
1180
+ <div class="method-heading">
1181
+ <a href="#M000173" class="method-signature">
1182
+ <span class="method-name">send_unauthorized</span><span class="method-args">()</span>
1183
+ </a>
1184
+ </div>
1185
+
1186
+ <div class="method-description">
1187
+ <p><a class="source-toggle" href="#"
1188
+ onclick="toggleCode('M000173-source');return false;">[Source]</a></p>
1189
+ <div class="method-source-code" id="M000173-source">
1190
+ <pre>
1191
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 197</span>
1192
+ 197: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send_unauthorized</span>
1193
+ 198: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">status_line</span> = <span class="ruby-value str">'401 Unauthorized'</span>
1194
+ 199: <span class="ruby-ivar">@response_body</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&lt;html&gt;\n &lt;head&gt;&lt;title&gt;401 Unauthorized&lt;/title&gt;&lt;/head&gt;\n &lt;body&gt;\n &lt;h1&gt;401 Authorized&lt;/h1&gt;\n &lt;p&gt;You lack decent credentials to enter herein.&lt;/p&gt;\n &lt;/body&gt;\n&lt;/html&gt;\n&quot;</span>
1195
+ 200: <span class="ruby-keyword kw">end</span>
1196
+ </pre>
1197
+ </div>
1198
+ </div>
1199
+ </div>
1200
+
1201
+ <div id="method-M000148" class="method-detail">
1202
+ <a name="M000148"></a>
1203
+
1204
+ <div class="method-heading">
1205
+ <a href="#M000148" class="method-signature">
1206
+ <span class="method-name">server_name</span><span class="method-args">()</span>
1207
+ </a>
1208
+ </div>
1209
+
1210
+ <div class="method-description">
1211
+ <p><a class="source-toggle" href="#"
1212
+ onclick="toggleCode('M000148-source');return false;">[Source]</a></p>
1213
+ <div class="method-source-code" id="M000148-source">
1214
+ <pre>
1215
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 83</span>
1216
+ 83: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">server_name</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">server_name</span> <span class="ruby-keyword kw">end</span>
1217
+ </pre>
1218
+ </div>
1219
+ </div>
1220
+ </div>
1221
+
1222
+ <div id="method-M000149" class="method-detail">
1223
+ <a name="M000149"></a>
1224
+
1225
+ <div class="method-heading">
1226
+ <a href="#M000149" class="method-signature">
1227
+ <span class="method-name">server_port</span><span class="method-args">()</span>
1228
+ </a>
1229
+ </div>
1230
+
1231
+ <div class="method-description">
1232
+ <p><a class="source-toggle" href="#"
1233
+ onclick="toggleCode('M000149-source');return false;">[Source]</a></p>
1234
+ <div class="method-source-code" id="M000149-source">
1235
+ <pre>
1236
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 84</span>
1237
+ 84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">server_port</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">server_port</span> <span class="ruby-keyword kw">end</span>
1238
+ </pre>
1239
+ </div>
1240
+ </div>
1241
+ </div>
1242
+
1243
+ <div id="method-M000153" class="method-detail">
1244
+ <a name="M000153"></a>
1245
+
1246
+ <div class="method-heading">
1247
+ <a href="#M000153" class="method-signature">
1248
+ <span class="method-name">server_protocol</span><span class="method-args">()</span>
1249
+ </a>
1250
+ </div>
1251
+
1252
+ <div class="method-description">
1253
+ <p><a class="source-toggle" href="#"
1254
+ onclick="toggleCode('M000153-source');return false;">[Source]</a></p>
1255
+ <div class="method-source-code" id="M000153-source">
1256
+ <pre>
1257
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 88</span>
1258
+ 88: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">server_protocol</span>() <span class="ruby-ivar">@request</span>.<span class="ruby-identifier">server_protocol</span> <span class="ruby-keyword kw">end</span>
1259
+ </pre>
1260
+ </div>
1261
+ </div>
1262
+ </div>
1263
+
1264
+ <div id="method-M000160" class="method-detail">
1265
+ <a name="M000160"></a>
1266
+
1267
+ <div class="method-heading">
1268
+ <a href="#M000160" class="method-signature">
1269
+ <span class="method-name">set_header</span><span class="method-args">(field_name, field_body)</span>
1270
+ </a>
1271
+ </div>
1272
+
1273
+ <div class="method-description">
1274
+ <p><a class="source-toggle" href="#"
1275
+ onclick="toggleCode('M000160-source');return false;">[Source]</a></p>
1276
+ <div class="method-source-code" id="M000160-source">
1277
+ <pre>
1278
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 116</span>
1279
+ 116: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_header</span>(<span class="ruby-identifier">field_name</span>, <span class="ruby-identifier">field_body</span>) <span class="ruby-ivar">@response_header</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">field_name</span>, <span class="ruby-identifier">field_body</span>) <span class="ruby-keyword kw">end</span>
1280
+ </pre>
1281
+ </div>
1282
+ </div>
1283
+ </div>
1284
+
1285
+ <div id="method-M000179" class="method-detail">
1286
+ <a name="M000179"></a>
1287
+
1288
+ <div class="method-heading">
1289
+ <a href="#M000179" class="method-signature">
1290
+ <span class="method-name">setup_redirection</span><span class="method-args">(status, uri)</span>
1291
+ </a>
1292
+ </div>
1293
+
1294
+ <div class="method-description">
1295
+ <p>
1296
+ setup_redirect makes a status line and a Location header appropriate as
1297
+ redirection.
1298
+ </p>
1299
+ <p>
1300
+ <em>status</em> specifies the status line. It should be a Fixnum 3xx or
1301
+ String &#8216;3xx &#8230;&#8217;.
1302
+ </p>
1303
+ <p>
1304
+ <em>uri</em> specifies the Location header body. It should be a URI, String
1305
+ or Hash. If a Hash is given, <a
1306
+ href="WebApp.html#M000177">make_absolute_uri</a> is called to convert to
1307
+ URI. If given URI is relative, it is converted as absolute URI.
1308
+ </p>
1309
+ <p><a class="source-toggle" href="#"
1310
+ onclick="toggleCode('M000179-source');return false;">[Source]</a></p>
1311
+ <div class="method-source-code" id="M000179-source">
1312
+ <pre>
1313
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 334</span>
1314
+ 334: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setup_redirection</span>(<span class="ruby-identifier">status</span>, <span class="ruby-identifier">uri</span>)
1315
+ 335: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">status</span>
1316
+ 336: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Fixnum</span>
1317
+ 337: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">status</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">300</span> <span class="ruby-operator">||</span> <span class="ruby-value">400</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">status</span>
1318
+ 338: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;unexpected status: #{status.inspect}&quot;</span>
1319
+ 339: <span class="ruby-keyword kw">end</span>
1320
+ 340: <span class="ruby-identifier">status</span> = <span class="ruby-node">&quot;#{status} #{StatusMessage[status]}&quot;</span>
1321
+ 341: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">String</span>
1322
+ 342: <span class="ruby-keyword kw">unless</span> <span class="ruby-regexp re">/\A3\d\d(\z| )/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">status</span>
1323
+ 343: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;unexpected status: #{status.inspect}&quot;</span>
1324
+ 344: <span class="ruby-keyword kw">end</span>
1325
+ 345: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">status</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">3</span>
1326
+ 346: <span class="ruby-identifier">status</span> = <span class="ruby-node">&quot;#{status} #{StatusMessage[status.to_i]}&quot;</span>
1327
+ 347: <span class="ruby-keyword kw">end</span>
1328
+ 348: <span class="ruby-keyword kw">else</span>
1329
+ 349: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;unexpected status: #{status.inspect}&quot;</span>
1330
+ 350: <span class="ruby-keyword kw">end</span>
1331
+ 351: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">uri</span>
1332
+ 352: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">URI</span>
1333
+ 353: <span class="ruby-identifier">uri</span> = <span class="ruby-ivar">@urigen</span>.<span class="ruby-identifier">base_uri</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">uri</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">relative?</span>
1334
+ 354: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">String</span>
1335
+ 355: <span class="ruby-identifier">uri</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">uri</span>)
1336
+ 356: <span class="ruby-identifier">uri</span> = <span class="ruby-ivar">@urigen</span>.<span class="ruby-identifier">base_uri</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">uri</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">relative?</span>
1337
+ 357: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Hash</span>
1338
+ 358: <span class="ruby-identifier">uri</span> = <span class="ruby-identifier">make_absolute_uri</span>(<span class="ruby-identifier">uri</span>)
1339
+ 359: <span class="ruby-keyword kw">else</span>
1340
+ 360: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;unexpected uri: #{uri.inspect}&quot;</span>
1341
+ 361: <span class="ruby-keyword kw">end</span>
1342
+ 362: <span class="ruby-ivar">@response</span>.<span class="ruby-identifier">status_line</span> = <span class="ruby-identifier">status</span>
1343
+ 363: <span class="ruby-ivar">@response_header</span>.<span class="ruby-identifier">set</span> <span class="ruby-value str">'Location'</span>, <span class="ruby-identifier">uri</span>.<span class="ruby-identifier">to_s</span>
1344
+ 364: <span class="ruby-keyword kw">end</span>
1345
+ </pre>
1346
+ </div>
1347
+ </div>
1348
+ </div>
1349
+
1350
+ <div id="method-M000143" class="method-detail">
1351
+ <a name="M000143"></a>
1352
+
1353
+ <div class="method-heading">
1354
+ <a href="#M000143" class="method-signature">
1355
+ <span class="method-name">write</span><span class="method-args">(str)</span>
1356
+ </a>
1357
+ </div>
1358
+
1359
+ <div class="method-description">
1360
+ <p><a class="source-toggle" href="#"
1361
+ onclick="toggleCode('M000143-source');return false;">[Source]</a></p>
1362
+ <div class="method-source-code" id="M000143-source">
1363
+ <pre>
1364
+ <span class="ruby-comment cmt"># File lib/hobix/webapp.rb, line 74</span>
1365
+ 74: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">str</span>) <span class="ruby-ivar">@response_body</span>.<span class="ruby-identifier">write</span> <span class="ruby-identifier">str</span> <span class="ruby-keyword kw">end</span>
1366
+ </pre>
1367
+ </div>
1368
+ </div>
1369
+ </div>
1370
+
1371
+
1372
+ </div>
1373
+
1374
+
1375
+ </div>
1376
+
1377
+
1378
+ <div id="validator-badges">
1379
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1380
+ </div>
1381
+
1382
+ </body>
1383
+ </html>