wee 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. data/ChangeLog +75 -0
  2. data/README +17 -9
  3. data/Rakefile +2 -2
  4. data/TODO +20 -0
  5. data/benchmark/Makefile +14 -9
  6. data/benchmark/counter.rb +11 -30
  7. data/benchmark/report_req.rb +12 -0
  8. data/doc/rdoc/classes/Array.html +12 -12
  9. data/doc/rdoc/classes/Cache/StorageCache.html +38 -38
  10. data/doc/rdoc/classes/Cache/Strategy/CapacityBounded.html +30 -30
  11. data/doc/rdoc/classes/Cache/Strategy/LFU.html +24 -24
  12. data/doc/rdoc/classes/Cache/Strategy/LRU.html +24 -24
  13. data/doc/rdoc/classes/Cache/Strategy/Unbounded.html +24 -24
  14. data/doc/rdoc/classes/Enumerable.html +6 -6
  15. data/doc/rdoc/classes/Object.html +12 -12
  16. data/doc/rdoc/classes/OgApplication.html +126 -0
  17. data/doc/rdoc/classes/OgScaffolder.html +401 -0
  18. data/doc/rdoc/classes/OgSession.html +172 -0
  19. data/doc/rdoc/classes/String.html +12 -12
  20. data/doc/rdoc/classes/Struct.html +12 -12
  21. data/doc/rdoc/classes/Wee.html +5 -62
  22. data/doc/rdoc/classes/Wee/AnswerDecoration.html +9 -9
  23. data/doc/rdoc/classes/Wee/Application.html +107 -39
  24. data/doc/rdoc/classes/Wee/Brush.html +22 -18
  25. data/doc/rdoc/classes/Wee/Brush/ActionCallbackMixin.html +17 -11
  26. data/doc/rdoc/classes/Wee/Brush/ActionURLCallbackMixin.html +18 -10
  27. data/doc/rdoc/classes/Wee/Brush/AnchorTag.html +30 -64
  28. data/doc/rdoc/classes/Wee/Brush/FileUploadTag.html +8 -10
  29. data/doc/rdoc/classes/Wee/Brush/FormTag.html +27 -79
  30. data/doc/rdoc/classes/Wee/Brush/GenericEncodedTextBrush.html +12 -12
  31. data/doc/rdoc/classes/Wee/Brush/GenericSingleTagBrush.html +146 -0
  32. data/doc/rdoc/classes/Wee/Brush/GenericTagBrush.html +179 -65
  33. data/doc/rdoc/classes/Wee/Brush/GenericTextBrush.html +12 -12
  34. data/doc/rdoc/classes/Wee/Brush/ImageButtonTag.html +16 -18
  35. data/doc/rdoc/classes/Wee/Brush/ImageTag.html +203 -0
  36. data/doc/rdoc/classes/Wee/Brush/InputCallbackMixin.html +17 -11
  37. data/doc/rdoc/classes/Wee/Brush/InputTag.html +15 -15
  38. data/doc/rdoc/classes/Wee/Brush/JavascriptTag.html +147 -0
  39. data/doc/rdoc/classes/Wee/Brush/Page.html +17 -17
  40. data/doc/rdoc/classes/Wee/Brush/SelectListTag.html +25 -50
  41. data/doc/rdoc/classes/Wee/Brush/SelectOptionTag.html +7 -38
  42. data/doc/rdoc/classes/Wee/Brush/SubmitButtonTag.html +7 -7
  43. data/doc/rdoc/classes/Wee/Brush/TableDataTag.html +15 -16
  44. data/doc/rdoc/classes/Wee/Brush/TableHeaderTag.html +7 -7
  45. data/doc/rdoc/classes/Wee/Brush/TableRowTag.html +65 -50
  46. data/doc/rdoc/classes/Wee/Brush/TableTag.html +7 -7
  47. data/doc/rdoc/classes/Wee/Brush/TextAreaTag.html +14 -64
  48. data/doc/rdoc/classes/Wee/Brush/TextInputTag.html +7 -7
  49. data/doc/rdoc/classes/Wee/Brush/ToCallback.html +146 -0
  50. data/doc/rdoc/classes/Wee/CallbackRegistry.html +40 -40
  51. data/doc/rdoc/classes/Wee/CallbackStream.html +18 -18
  52. data/doc/rdoc/classes/Wee/Canvas.html +24 -24
  53. data/doc/rdoc/classes/Wee/Component.html +232 -149
  54. data/doc/rdoc/classes/Wee/Component/OnAnswer.html +153 -0
  55. data/doc/rdoc/classes/Wee/Decoration.html +42 -42
  56. data/doc/rdoc/classes/Wee/Delegate.html +27 -27
  57. data/doc/rdoc/classes/Wee/ErrorResponse.html +12 -12
  58. data/doc/rdoc/classes/Wee/FormDecoration.html +148 -0
  59. data/doc/rdoc/classes/Wee/GenericResponse.html +6 -6
  60. data/doc/rdoc/classes/Wee/HtmlCanvas.html +296 -215
  61. data/doc/rdoc/classes/Wee/HtmlWriter.html +83 -81
  62. data/doc/rdoc/classes/Wee/LiteralMethodCallback.html +21 -16
  63. data/doc/rdoc/classes/Wee/MessageBox.html +180 -0
  64. data/doc/rdoc/classes/Wee/PageDecoration.html +30 -30
  65. data/doc/rdoc/classes/Wee/Presenter.html +237 -69
  66. data/doc/rdoc/classes/Wee/RedirectResponse.html +6 -6
  67. data/doc/rdoc/classes/Wee/RefreshResponse.html +6 -6
  68. data/doc/rdoc/classes/Wee/Request.html +18 -18
  69. data/doc/rdoc/classes/Wee/RequestHandler.html +43 -39
  70. data/doc/rdoc/classes/Wee/Response.html +24 -24
  71. data/doc/rdoc/classes/Wee/Session.html +746 -72
  72. data/doc/rdoc/classes/Wee/SimpleIdGenerator.html +18 -18
  73. data/doc/rdoc/classes/Wee/Snapshot.html +19 -19
  74. data/doc/rdoc/classes/Wee/Utils.html +138 -2
  75. data/doc/rdoc/classes/Wee/Utils/LRUCache.html +7 -7
  76. data/doc/rdoc/classes/Wee/ValueHolder.html +18 -18
  77. data/doc/rdoc/classes/Wee/WEBrickAdaptor.html +43 -68
  78. data/doc/rdoc/classes/Wee/WrapperDecoration.html +150 -0
  79. data/doc/rdoc/created.rid +1 -1
  80. data/doc/rdoc/files/README.html +29 -15
  81. data/doc/rdoc/files/lib/wee/adaptors/webrick_rb.html +1 -1
  82. data/doc/rdoc/files/lib/wee/application_rb.html +1 -1
  83. data/doc/rdoc/files/lib/wee/components/form_decoration_rb.html +101 -0
  84. data/doc/rdoc/files/lib/wee/components/messagebox_rb.html +101 -0
  85. data/doc/rdoc/files/lib/wee/components/page_decoration_rb.html +1 -1
  86. data/doc/rdoc/files/lib/wee/components/wrapper_decoration_rb.html +101 -0
  87. data/doc/rdoc/files/lib/wee/components_rb.html +4 -1
  88. data/doc/rdoc/files/lib/wee/continuation/core/component_rb.html +101 -0
  89. data/doc/rdoc/files/lib/wee/continuation/session_rb.html +110 -0
  90. data/doc/rdoc/files/lib/wee/continuation_rb.html +116 -0
  91. data/doc/rdoc/files/lib/wee/core/callback_rb.html +1 -1
  92. data/doc/rdoc/files/lib/wee/core/component_rb.html +1 -1
  93. data/doc/rdoc/files/lib/wee/core/presenter_rb.html +1 -1
  94. data/doc/rdoc/files/lib/wee/core_rb.html +3 -3
  95. data/doc/rdoc/files/lib/wee/databases/og_rb.html +108 -0
  96. data/doc/rdoc/files/lib/wee/renderer/html/brushes_rb.html +1 -1
  97. data/doc/rdoc/files/lib/wee/renderer/html/canvas_rb.html +1 -1
  98. data/doc/rdoc/files/lib/wee/renderer/html/writer_rb.html +1 -1
  99. data/doc/rdoc/files/lib/wee/requesthandler_rb.html +1 -1
  100. data/doc/rdoc/files/lib/wee/session_rb.html +1 -2
  101. data/doc/rdoc/files/lib/wee/utils/autoreload_rb.html +1 -1
  102. data/doc/rdoc/files/lib/wee/utils/cache_rb.html +1 -1
  103. data/doc/rdoc/files/lib/wee/utils/helper_rb.html +1 -8
  104. data/doc/rdoc/files/lib/wee/utils_rb.html +110 -0
  105. data/doc/rdoc/files/lib/wee_rb.html +1 -1
  106. data/doc/rdoc/fr_class_index.html +11 -1
  107. data/doc/rdoc/fr_file_index.html +8 -0
  108. data/doc/rdoc/fr_method_index.html +269 -228
  109. data/examples/calculator.rb +69 -0
  110. data/examples/calendar.rb +5 -17
  111. data/examples/example.rb +2 -2
  112. data/examples/hw.rb +17 -0
  113. data/examples/live-update.rb +45 -0
  114. data/examples/og-test.rb +51 -0
  115. data/lib/wee.rb +1 -1
  116. data/lib/wee/adaptors/webrick.rb +2 -0
  117. data/lib/wee/application.rb +16 -0
  118. data/lib/wee/components.rb +3 -0
  119. data/lib/wee/components/form_decoration.rb +7 -0
  120. data/{test → lib/wee}/components/messagebox.rb +1 -1
  121. data/lib/wee/components/page_decoration.rb +5 -5
  122. data/lib/wee/components/wrapper_decoration.rb +7 -0
  123. data/lib/wee/continuation.rb +5 -0
  124. data/lib/wee/continuation/core/component.rb +55 -0
  125. data/lib/wee/continuation/session.rb +217 -0
  126. data/lib/wee/core/callback.rb +11 -6
  127. data/lib/wee/core/component.rb +45 -33
  128. data/lib/wee/core/presenter.rb +68 -0
  129. data/lib/wee/databases/og.rb +114 -0
  130. data/lib/wee/renderer/html/brushes.rb +179 -98
  131. data/lib/wee/renderer/html/canvas.rb +37 -13
  132. data/lib/wee/renderer/html/writer.rb +34 -32
  133. data/lib/wee/requesthandler.rb +6 -3
  134. data/lib/wee/session.rb +73 -54
  135. data/lib/wee/utils.rb +5 -0
  136. data/lib/wee/utils/autoreload.rb +1 -1
  137. data/lib/wee/utils/cache.rb +0 -2
  138. data/lib/wee/utils/helper.rb +40 -8
  139. data/test/components/calltest-cont.rb +16 -0
  140. data/test/components/calltest.rb +15 -10
  141. data/test/stress.rb +31 -28
  142. data/test/stress_and_measure.rb +53 -0
  143. data/test/stressed_application.rb +15 -0
  144. data/test/test_html_writer.rb +9 -4
  145. metadata +236 -195
  146. data/benchmark/bench.sh +0 -24
@@ -97,7 +97,6 @@ Usage:
97
97
  w.end_tag('body')
98
98
  w.end_tag('html')
99
99
 
100
- p w.valid? # => true
101
100
  p doc # => '<html><body><a href="http://...">link</a></body></html>'
102
101
  </pre>
103
102
 
@@ -110,13 +109,13 @@ Usage:
110
109
  <h3 class="section-bar">Methods</h3>
111
110
 
112
111
  <div class="name-list">
113
- <a href="#M000203">&lt;&lt;</a>&nbsp;&nbsp;
114
- <a href="#M000204">encode_text</a>&nbsp;&nbsp;
115
- <a href="#M000201">end_tag</a>&nbsp;&nbsp;
116
- <a href="#M000199">new</a>&nbsp;&nbsp;
117
- <a href="#M000200">start_tag</a>&nbsp;&nbsp;
118
- <a href="#M000202">text</a>&nbsp;&nbsp;
119
- <a href="#M000205">valid?</a>&nbsp;&nbsp;
112
+ <a href="#M000245">&lt;&lt;</a>&nbsp;&nbsp;
113
+ <a href="#M000246">encode_text</a>&nbsp;&nbsp;
114
+ <a href="#M000243">end_tag</a>&nbsp;&nbsp;
115
+ <a href="#M000240">new</a>&nbsp;&nbsp;
116
+ <a href="#M000242">single_tag</a>&nbsp;&nbsp;
117
+ <a href="#M000241">start_tag</a>&nbsp;&nbsp;
118
+ <a href="#M000244">text</a>&nbsp;&nbsp;
120
119
  </div>
121
120
  </div>
122
121
 
@@ -151,25 +150,23 @@ Usage:
151
150
  <div id="methods">
152
151
  <h3 class="section-bar">Public Class methods</h3>
153
152
 
154
- <div id="method-M000199" class="method-detail">
155
- <a name="M000199"></a>
153
+ <div id="method-M000240" class="method-detail">
154
+ <a name="M000240"></a>
156
155
 
157
156
  <div class="method-heading">
158
- <a href="#M000199" class="method-signature">
157
+ <a href="#M000240" class="method-signature">
159
158
  <span class="method-name">new</span><span class="method-args">(port)</span>
160
159
  </a>
161
160
  </div>
162
161
 
163
162
  <div class="method-description">
164
163
  <p><a class="source-toggle" href="#"
165
- onclick="toggleCode('M000199-source');return false;">[Source]</a></p>
166
- <div class="method-source-code" id="M000199-source">
164
+ onclick="toggleCode('M000240-source');return false;">[Source]</a></p>
165
+ <div class="method-source-code" id="M000240-source">
167
166
  <pre>
168
- <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 23</span>
167
+ <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 22</span>
169
168
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">port</span>)
170
169
  <span class="ruby-ivar">@port</span> = <span class="ruby-identifier">port</span>
171
- <span class="ruby-ivar">@open_start_tag</span> = <span class="ruby-keyword kw">false</span>
172
- <span class="ruby-ivar">@tag_stack</span> = []
173
170
  <span class="ruby-keyword kw">end</span>
174
171
  </pre>
175
172
  </div>
@@ -178,8 +175,8 @@ Usage:
178
175
 
179
176
  <h3 class="section-bar">Public Instance methods</h3>
180
177
 
181
- <div id="method-M000203" class="method-detail">
182
- <a name="M000203"></a>
178
+ <div id="method-M000245" class="method-detail">
179
+ <a name="M000245"></a>
183
180
 
184
181
  <div class="method-heading">
185
182
  <span class="method-name">&lt;&lt;</span><span class="method-args">(str)</span>
@@ -187,58 +184,53 @@ Usage:
187
184
 
188
185
  <div class="method-description">
189
186
  <p>
190
- Alias for <a href="HtmlWriter.html#M000202">text</a>
187
+ Alias for <a href="HtmlWriter.html#M000244">text</a>
191
188
  </p>
192
189
  </div>
193
190
  </div>
194
191
 
195
- <div id="method-M000204" class="method-detail">
196
- <a name="M000204"></a>
192
+ <div id="method-M000246" class="method-detail">
193
+ <a name="M000246"></a>
197
194
 
198
195
  <div class="method-heading">
199
- <a href="#M000204" class="method-signature">
196
+ <a href="#M000246" class="method-signature">
200
197
  <span class="method-name">encode_text</span><span class="method-args">(str)</span>
201
198
  </a>
202
199
  </div>
203
200
 
204
201
  <div class="method-description">
205
202
  <p><a class="source-toggle" href="#"
206
- onclick="toggleCode('M000204-source');return false;">[Source]</a></p>
207
- <div class="method-source-code" id="M000204-source">
203
+ onclick="toggleCode('M000246-source');return false;">[Source]</a></p>
204
+ <div class="method-source-code" id="M000246-source">
208
205
  <pre>
209
- <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 71</span>
206
+ <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 75</span>
210
207
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">encode_text</span>(<span class="ruby-identifier">str</span>)
211
- <span class="ruby-identifier">text</span>(<span class="ruby-constant">CGI</span>.<span class="ruby-identifier">escapeHTML</span>(<span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_s</span>))
208
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">CGI</span>.<span class="ruby-identifier">escapeHTML</span>(<span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_s</span>)
209
+
210
+ <span class="ruby-keyword kw">self</span>
212
211
  <span class="ruby-keyword kw">end</span>
213
212
  </pre>
214
213
  </div>
215
214
  </div>
216
215
  </div>
217
216
 
218
- <div id="method-M000201" class="method-detail">
219
- <a name="M000201"></a>
217
+ <div id="method-M000243" class="method-detail">
218
+ <a name="M000243"></a>
220
219
 
221
220
  <div class="method-heading">
222
- <a href="#M000201" class="method-signature">
221
+ <a href="#M000243" class="method-signature">
223
222
  <span class="method-name">end_tag</span><span class="method-args">(tag)</span>
224
223
  </a>
225
224
  </div>
226
225
 
227
226
  <div class="method-description">
228
227
  <p><a class="source-toggle" href="#"
229
- onclick="toggleCode('M000201-source');return false;">[Source]</a></p>
230
- <div class="method-source-code" id="M000201-source">
228
+ onclick="toggleCode('M000243-source');return false;">[Source]</a></p>
229
+ <div class="method-source-code" id="M000243-source">
231
230
  <pre>
232
- <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 46</span>
231
+ <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 62</span>
233
232
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">end_tag</span>(<span class="ruby-identifier">tag</span>)
234
- <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;unbalanced html&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@tag_stack</span>.<span class="ruby-identifier">pop</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tag</span>
235
-
236
- <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@open_start_tag</span>
237
- <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;/&gt;&quot;</span>
238
- <span class="ruby-ivar">@open_start_tag</span> = <span class="ruby-keyword kw">false</span>
239
- <span class="ruby-keyword kw">else</span>
240
- <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;/#{ tag }&gt;&quot;</span>
241
- <span class="ruby-keyword kw">end</span>
233
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;/#{ tag }&gt;&quot;</span>
242
234
 
243
235
  <span class="ruby-keyword kw">self</span>
244
236
  <span class="ruby-keyword kw">end</span>
@@ -247,34 +239,35 @@ Alias for <a href="HtmlWriter.html#M000202">text</a>
247
239
  </div>
248
240
  </div>
249
241
 
250
- <div id="method-M000200" class="method-detail">
251
- <a name="M000200"></a>
242
+ <div id="method-M000242" class="method-detail">
243
+ <a name="M000242"></a>
252
244
 
253
245
  <div class="method-heading">
254
- <a href="#M000200" class="method-signature">
255
- <span class="method-name">start_tag</span><span class="method-args">(tag, attributes={})</span>
246
+ <a href="#M000242" class="method-signature">
247
+ <span class="method-name">single_tag</span><span class="method-args">(tag, attributes=nil)</span>
256
248
  </a>
257
249
  </div>
258
250
 
259
251
  <div class="method-description">
260
252
  <p><a class="source-toggle" href="#"
261
- onclick="toggleCode('M000200-source');return false;">[Source]</a></p>
262
- <div class="method-source-code" id="M000200-source">
253
+ onclick="toggleCode('M000242-source');return false;">[Source]</a></p>
254
+ <div class="method-source-code" id="M000242-source">
263
255
  <pre>
264
- <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 29</span>
265
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start_tag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">attributes</span>={})
266
- <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&gt;&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@open_start_tag</span>
267
- <span class="ruby-ivar">@open_start_tag</span> = <span class="ruby-keyword kw">true</span>
268
- <span class="ruby-ivar">@tag_stack</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">tag</span>)
269
-
270
- <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;#{ tag }&quot;</span>
271
- <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
272
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span>
273
- <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">%[ #{ k }=&quot;#{ v }&quot;]</span>
274
- <span class="ruby-keyword kw">else</span>
275
- <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">%[ #{ k }]</span>
276
- <span class="ruby-keyword kw">end</span>
277
- }
256
+ <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 44</span>
257
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">single_tag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">attributes</span>=<span class="ruby-keyword kw">nil</span>)
258
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
259
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;#{ tag }&quot;</span>
260
+ <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
261
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span>
262
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">%[ #{ k }=&quot;#{ v }&quot;]</span>
263
+ <span class="ruby-keyword kw">else</span>
264
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">%[ #{ k }]</span>
265
+ <span class="ruby-keyword kw">end</span>
266
+ }
267
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot; /&gt;&quot;</span>
268
+ <span class="ruby-keyword kw">else</span>
269
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;#{ tag } /&gt;&quot;</span>
270
+ <span class="ruby-keyword kw">end</span>
278
271
 
279
272
  <span class="ruby-keyword kw">self</span>
280
273
  <span class="ruby-keyword kw">end</span>
@@ -283,29 +276,36 @@ Alias for <a href="HtmlWriter.html#M000202">text</a>
283
276
  </div>
284
277
  </div>
285
278
 
286
- <div id="method-M000202" class="method-detail">
287
- <a name="M000202"></a>
279
+ <div id="method-M000241" class="method-detail">
280
+ <a name="M000241"></a>
288
281
 
289
282
  <div class="method-heading">
290
- <a href="#M000202" class="method-signature">
291
- <span class="method-name">text</span><span class="method-args">(str)</span>
283
+ <a href="#M000241" class="method-signature">
284
+ <span class="method-name">start_tag</span><span class="method-args">(tag, attributes=nil)</span>
292
285
  </a>
293
286
  </div>
294
287
 
295
288
  <div class="method-description">
296
289
  <p><a class="source-toggle" href="#"
297
- onclick="toggleCode('M000202-source');return false;">[Source]</a></p>
298
- <div class="method-source-code" id="M000202-source">
290
+ onclick="toggleCode('M000241-source');return false;">[Source]</a></p>
291
+ <div class="method-source-code" id="M000241-source">
299
292
  <pre>
300
- <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 59</span>
301
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">text</span>(<span class="ruby-identifier">str</span>)
302
- <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@open_start_tag</span>
293
+ <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 26</span>
294
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">start_tag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">attributes</span>=<span class="ruby-keyword kw">nil</span>)
295
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributes</span>
296
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;#{ tag }&quot;</span>
297
+ <span class="ruby-identifier">attributes</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>, <span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
298
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span>
299
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">%[ #{ k }=&quot;#{ v }&quot;]</span>
300
+ <span class="ruby-keyword kw">else</span>
301
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">%[ #{ k }]</span>
302
+ <span class="ruby-keyword kw">end</span>
303
+ }
303
304
  <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&gt;&quot;</span>
304
- <span class="ruby-ivar">@open_start_tag</span> = <span class="ruby-keyword kw">false</span>
305
+ <span class="ruby-keyword kw">else</span>
306
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;&lt;#{ tag }&gt;&quot;</span>
305
307
  <span class="ruby-keyword kw">end</span>
306
308
 
307
- <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_s</span>
308
-
309
309
  <span class="ruby-keyword kw">self</span>
310
310
  <span class="ruby-keyword kw">end</span>
311
311
  </pre>
@@ -313,23 +313,25 @@ Alias for <a href="HtmlWriter.html#M000202">text</a>
313
313
  </div>
314
314
  </div>
315
315
 
316
- <div id="method-M000205" class="method-detail">
317
- <a name="M000205"></a>
316
+ <div id="method-M000244" class="method-detail">
317
+ <a name="M000244"></a>
318
318
 
319
319
  <div class="method-heading">
320
- <a href="#M000205" class="method-signature">
321
- <span class="method-name">valid?</span><span class="method-args">()</span>
320
+ <a href="#M000244" class="method-signature">
321
+ <span class="method-name">text</span><span class="method-args">(str)</span>
322
322
  </a>
323
323
  </div>
324
324
 
325
325
  <div class="method-description">
326
326
  <p><a class="source-toggle" href="#"
327
- onclick="toggleCode('M000205-source');return false;">[Source]</a></p>
328
- <div class="method-source-code" id="M000205-source">
327
+ onclick="toggleCode('M000244-source');return false;">[Source]</a></p>
328
+ <div class="method-source-code" id="M000244-source">
329
329
  <pre>
330
- <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 75</span>
331
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid?</span>
332
- <span class="ruby-ivar">@tag_stack</span>.<span class="ruby-identifier">empty?</span>
330
+ <span class="ruby-comment cmt"># File lib/wee/renderer/html/writer.rb, line 68</span>
331
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">text</span>(<span class="ruby-identifier">str</span>)
332
+ <span class="ruby-ivar">@port</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">to_s</span>
333
+
334
+ <span class="ruby-keyword kw">self</span>
333
335
  <span class="ruby-keyword kw">end</span>
334
336
  </pre>
335
337
  </div>
@@ -94,8 +94,8 @@ A serializable callback.
94
94
  <h3 class="section-bar">Methods</h3>
95
95
 
96
96
  <div class="name-list">
97
- <a href="#M000227">call</a>&nbsp;&nbsp;
98
- <a href="#M000226">new</a>&nbsp;&nbsp;
97
+ <a href="#M000268">call</a>&nbsp;&nbsp;
98
+ <a href="#M000267">new</a>&nbsp;&nbsp;
99
99
  </div>
100
100
  </div>
101
101
 
@@ -117,23 +117,24 @@ A serializable callback.
117
117
  <div id="methods">
118
118
  <h3 class="section-bar">Public Class methods</h3>
119
119
 
120
- <div id="method-M000226" class="method-detail">
121
- <a name="M000226"></a>
120
+ <div id="method-M000267" class="method-detail">
121
+ <a name="M000267"></a>
122
122
 
123
123
  <div class="method-heading">
124
- <a href="#M000226" class="method-signature">
125
- <span class="method-name">new</span><span class="method-args">(obj, method_id=:call)</span>
124
+ <a href="#M000267" class="method-signature">
125
+ <span class="method-name">new</span><span class="method-args">(obj, method_id=:call, *additional_args)</span>
126
126
  </a>
127
127
  </div>
128
128
 
129
129
  <div class="method-description">
130
130
  <p><a class="source-toggle" href="#"
131
- onclick="toggleCode('M000226-source');return false;">[Source]</a></p>
132
- <div class="method-source-code" id="M000226-source">
131
+ onclick="toggleCode('M000267-source');return false;">[Source]</a></p>
132
+ <div class="method-source-code" id="M000267-source">
133
133
  <pre>
134
134
  <span class="ruby-comment cmt"># File lib/wee/core/callback.rb, line 101</span>
135
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">method_id</span>=<span class="ruby-identifier">:call</span>)
135
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">obj</span>, <span class="ruby-identifier">method_id</span>=<span class="ruby-identifier">:call</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">additional_args</span>)
136
136
  <span class="ruby-ivar">@obj</span>, <span class="ruby-ivar">@method_id</span> = <span class="ruby-identifier">obj</span>, <span class="ruby-identifier">method_id</span>
137
+ <span class="ruby-ivar">@additional_args</span> = <span class="ruby-identifier">additional_args</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">additional_args</span>.<span class="ruby-identifier">empty?</span>
137
138
  <span class="ruby-keyword kw">end</span>
138
139
  </pre>
139
140
  </div>
@@ -142,23 +143,27 @@ A serializable callback.
142
143
 
143
144
  <h3 class="section-bar">Public Instance methods</h3>
144
145
 
145
- <div id="method-M000227" class="method-detail">
146
- <a name="M000227"></a>
146
+ <div id="method-M000268" class="method-detail">
147
+ <a name="M000268"></a>
147
148
 
148
149
  <div class="method-heading">
149
- <a href="#M000227" class="method-signature">
150
+ <a href="#M000268" class="method-signature">
150
151
  <span class="method-name">call</span><span class="method-args">(*args)</span>
151
152
  </a>
152
153
  </div>
153
154
 
154
155
  <div class="method-description">
155
156
  <p><a class="source-toggle" href="#"
156
- onclick="toggleCode('M000227-source');return false;">[Source]</a></p>
157
- <div class="method-source-code" id="M000227-source">
157
+ onclick="toggleCode('M000268-source');return false;">[Source]</a></p>
158
+ <div class="method-source-code" id="M000268-source">
158
159
  <pre>
159
- <span class="ruby-comment cmt"># File lib/wee/core/callback.rb, line 105</span>
160
+ <span class="ruby-comment cmt"># File lib/wee/core/callback.rb, line 106</span>
160
161
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">call</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
161
- <span class="ruby-ivar">@obj</span>.<span class="ruby-identifier">send</span>(<span class="ruby-ivar">@method_id</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
162
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@additional_args</span>
163
+ <span class="ruby-ivar">@obj</span>.<span class="ruby-identifier">send</span>(<span class="ruby-ivar">@method_id</span>, <span class="ruby-operator">*</span>(<span class="ruby-identifier">args</span><span class="ruby-operator">+</span><span class="ruby-ivar">@additional_args</span>))
164
+ <span class="ruby-keyword kw">else</span>
165
+ <span class="ruby-ivar">@obj</span>.<span class="ruby-identifier">send</span>(<span class="ruby-ivar">@method_id</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
166
+ <span class="ruby-keyword kw">end</span>
162
167
  <span class="ruby-keyword kw">end</span>
163
168
  </pre>
164
169
  </div>
@@ -0,0 +1,180 @@
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: Wee::MessageBox</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">Wee::MessageBox</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/wee/components/messagebox_rb.html">
59
+ lib/wee/components/messagebox.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
+ <a href="Component.html">
69
+ Wee::Component
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+
84
+
85
+ </div>
86
+
87
+ <div id="method-list">
88
+ <h3 class="section-bar">Methods</h3>
89
+
90
+ <div class="name-list">
91
+ <a href="#M000090">new</a>&nbsp;&nbsp;
92
+ <a href="#M000091">render</a>&nbsp;&nbsp;
93
+ </div>
94
+ </div>
95
+
96
+ </div>
97
+
98
+
99
+ <!-- if includes -->
100
+
101
+ <div id="section">
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+ <!-- if method_list -->
111
+ <div id="methods">
112
+ <h3 class="section-bar">Public Class methods</h3>
113
+
114
+ <div id="method-M000090" class="method-detail">
115
+ <a name="M000090"></a>
116
+
117
+ <div class="method-heading">
118
+ <a href="#M000090" class="method-signature">
119
+ <span class="method-name">new</span><span class="method-args">(text)</span>
120
+ </a>
121
+ </div>
122
+
123
+ <div class="method-description">
124
+ <p><a class="source-toggle" href="#"
125
+ onclick="toggleCode('M000090-source');return false;">[Source]</a></p>
126
+ <div class="method-source-code" id="M000090-source">
127
+ <pre>
128
+ <span class="ruby-comment cmt"># File lib/wee/components/messagebox.rb, line 2</span>
129
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">text</span>)
130
+ <span class="ruby-keyword kw">super</span>()
131
+ <span class="ruby-ivar">@text</span> = <span class="ruby-identifier">text</span>
132
+ <span class="ruby-keyword kw">end</span>
133
+ </pre>
134
+ </div>
135
+ </div>
136
+ </div>
137
+
138
+ <h3 class="section-bar">Public Instance methods</h3>
139
+
140
+ <div id="method-M000091" class="method-detail">
141
+ <a name="M000091"></a>
142
+
143
+ <div class="method-heading">
144
+ <a href="#M000091" class="method-signature">
145
+ <span class="method-name">render</span><span class="method-args">()</span>
146
+ </a>
147
+ </div>
148
+
149
+ <div class="method-description">
150
+ <p><a class="source-toggle" href="#"
151
+ onclick="toggleCode('M000091-source');return false;">[Source]</a></p>
152
+ <div class="method-source-code" id="M000091-source">
153
+ <pre>
154
+ <span class="ruby-comment cmt"># File lib/wee/components/messagebox.rb, line 7</span>
155
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>
156
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">bold</span>(<span class="ruby-ivar">@text</span>)
157
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">form</span> <span class="ruby-keyword kw">do</span>
158
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">submit_button</span>.<span class="ruby-identifier">value</span>(<span class="ruby-value str">'OK'</span>).<span class="ruby-identifier">callback</span> { <span class="ruby-identifier">answer</span> <span class="ruby-keyword kw">true</span> }
159
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">space</span>
160
+ <span class="ruby-identifier">r</span>.<span class="ruby-identifier">submit_button</span>.<span class="ruby-identifier">value</span>(<span class="ruby-value str">'Cancel'</span>).<span class="ruby-identifier">callback</span> { <span class="ruby-identifier">answer</span> <span class="ruby-keyword kw">false</span> }
161
+ <span class="ruby-keyword kw">end</span>
162
+ <span class="ruby-keyword kw">end</span>
163
+ </pre>
164
+ </div>
165
+ </div>
166
+ </div>
167
+
168
+
169
+ </div>
170
+
171
+
172
+ </div>
173
+
174
+
175
+ <div id="validator-badges">
176
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
177
+ </div>
178
+
179
+ </body>
180
+ </html>