wee 0.8.0 → 0.9.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 (231) hide show
  1. data/ChangeLog +286 -0
  2. data/Features +185 -0
  3. data/doc/rdoc/classes/ActionView.html +107 -0
  4. data/doc/rdoc/classes/ActionView/Base.html +133 -0
  5. data/doc/rdoc/classes/Array.html +7 -59
  6. data/doc/rdoc/classes/Cache/StorageCache.html +38 -38
  7. data/doc/rdoc/classes/Cache/Strategy/CapacityBounded.html +30 -30
  8. data/doc/rdoc/classes/Cache/Strategy/LFU.html +24 -24
  9. data/doc/rdoc/classes/Cache/Strategy/LRU.html +24 -24
  10. data/doc/rdoc/classes/Cache/Strategy/Unbounded.html +24 -24
  11. data/doc/rdoc/classes/Enumerable.html +6 -6
  12. data/doc/rdoc/classes/Hash.html +120 -0
  13. data/doc/rdoc/classes/Main.html +58 -34
  14. data/doc/rdoc/classes/Object.html +12 -12
  15. data/doc/rdoc/classes/OgScaffolder.html +165 -166
  16. data/doc/rdoc/classes/OgScaffolder/Editor.html +112 -112
  17. data/doc/rdoc/classes/String.html +7 -59
  18. data/doc/rdoc/classes/Struct.html +14 -14
  19. data/doc/rdoc/classes/Wee.html +70 -6
  20. data/doc/rdoc/classes/Wee/AbstractSession.html +502 -0
  21. data/doc/rdoc/classes/Wee/AnswerDecoration.html +11 -11
  22. data/doc/rdoc/classes/Wee/Application.html +139 -84
  23. data/doc/rdoc/classes/Wee/Brush.html +21 -18
  24. data/doc/rdoc/classes/Wee/Brush/AnchorTag.html +90 -17
  25. data/doc/rdoc/classes/Wee/Brush/CheckboxTag.html +162 -0
  26. data/doc/rdoc/classes/Wee/Brush/FileUploadTag.html +7 -7
  27. data/doc/rdoc/classes/Wee/Brush/FormTag.html +41 -17
  28. data/doc/rdoc/classes/Wee/Brush/GenericEncodedTextBrush.html +12 -12
  29. data/doc/rdoc/classes/Wee/Brush/GenericSingleTagBrush.html +7 -7
  30. data/doc/rdoc/classes/Wee/Brush/GenericTagBrush.html +112 -86
  31. data/doc/rdoc/classes/Wee/Brush/GenericTextBrush.html +12 -12
  32. data/doc/rdoc/classes/Wee/Brush/HiddenInputTag.html +160 -0
  33. data/doc/rdoc/classes/Wee/Brush/ImageButtonTag.html +15 -15
  34. data/doc/rdoc/classes/Wee/Brush/ImageTag.html +21 -21
  35. data/doc/rdoc/classes/Wee/Brush/InputTag.html +14 -14
  36. data/doc/rdoc/classes/Wee/Brush/JavascriptTag.html +7 -7
  37. data/doc/rdoc/classes/Wee/Brush/Page.html +14 -14
  38. data/doc/rdoc/classes/Wee/Brush/RadioButtonTag.html +234 -0
  39. data/doc/rdoc/classes/Wee/Brush/RadioButtonTag/RadioGroup.html +207 -0
  40. data/doc/rdoc/classes/Wee/Brush/SelectListTag.html +124 -28
  41. data/doc/rdoc/classes/Wee/Brush/SelectListTag/SelectListCallback.html +7 -7
  42. data/doc/rdoc/classes/Wee/Brush/SelectOptionTag.html +7 -7
  43. data/doc/rdoc/classes/Wee/Brush/SubmitButtonTag.html +7 -7
  44. data/doc/rdoc/classes/Wee/Brush/TableDataTag.html +14 -14
  45. data/doc/rdoc/classes/Wee/Brush/TableHeaderTag.html +7 -7
  46. data/doc/rdoc/classes/Wee/Brush/TableRowTag.html +42 -42
  47. data/doc/rdoc/classes/Wee/Brush/TableTag.html +7 -7
  48. data/doc/rdoc/classes/Wee/Brush/TextAreaTag.html +48 -15
  49. data/doc/rdoc/classes/Wee/Brush/TextInputTag.html +7 -7
  50. data/doc/rdoc/classes/Wee/CallbackRegistry.html +38 -38
  51. data/doc/rdoc/classes/Wee/CallbackStream.html +18 -18
  52. data/doc/rdoc/classes/Wee/CanvasMixin.html +225 -0
  53. data/doc/rdoc/classes/Wee/Component.html +202 -201
  54. data/doc/rdoc/classes/Wee/Component/OnAnswer.html +7 -7
  55. data/doc/rdoc/classes/Wee/ComponentDispatcher.html +289 -0
  56. data/doc/rdoc/classes/Wee/ComponentRunner.html +321 -0
  57. data/doc/rdoc/classes/Wee/Context.html +63 -3
  58. data/doc/rdoc/classes/Wee/Decoration.html +45 -45
  59. data/doc/rdoc/classes/Wee/Delegate.html +30 -30
  60. data/doc/rdoc/classes/Wee/DupReplaceSnapshotMixin.html +164 -0
  61. data/doc/rdoc/classes/Wee/ErrorResponse.html +16 -16
  62. data/doc/rdoc/classes/Wee/Examples.html +114 -0
  63. data/doc/rdoc/classes/Wee/Examples/Calculator.html +319 -0
  64. data/doc/rdoc/classes/Wee/Examples/Counter.html +289 -0
  65. data/doc/rdoc/classes/Wee/Examples/EditableCounter.html +210 -0
  66. data/doc/rdoc/classes/Wee/Examples/Window.html +346 -0
  67. data/doc/rdoc/classes/Wee/FastCGIAdaptor.html +227 -0
  68. data/doc/rdoc/classes/Wee/FormDecoration.html +6 -6
  69. data/doc/rdoc/classes/Wee/GenericResponse.html +7 -7
  70. data/doc/rdoc/classes/Wee/HtmlCanvasRenderer.html +1230 -0
  71. data/doc/rdoc/classes/Wee/HtmlWriter.html +40 -40
  72. data/doc/rdoc/classes/Wee/IdGenerator.html +148 -0
  73. data/doc/rdoc/classes/Wee/LiteralMethodCallback.html +27 -14
  74. data/doc/rdoc/classes/Wee/LoginDecoration.html +261 -0
  75. data/doc/rdoc/classes/Wee/Md5IdGenerator.html +14 -14
  76. data/doc/rdoc/classes/Wee/MessageBox.html +14 -14
  77. data/doc/rdoc/classes/Wee/Nitro.html +114 -0
  78. data/doc/rdoc/classes/Wee/Nitro/ControllerClassMixin.html +192 -0
  79. data/doc/rdoc/classes/Wee/Nitro/ControllerMixin.html +345 -0
  80. data/doc/rdoc/classes/Wee/Nitro/FormTag.html +155 -0
  81. data/doc/rdoc/classes/Wee/Nitro/HtmlCanvasRenderer.html +178 -0
  82. data/doc/rdoc/classes/Wee/Page.html +4 -0
  83. data/doc/rdoc/classes/Wee/PageDecoration.html +18 -18
  84. data/doc/rdoc/classes/Wee/PagelessApplication.html +13 -11
  85. data/doc/rdoc/classes/Wee/PagelessComponentDriver.html +296 -0
  86. data/doc/rdoc/classes/Wee/PagelessRequest.html +52 -21
  87. data/doc/rdoc/classes/Wee/PagelessSession.html +130 -91
  88. data/doc/rdoc/classes/Wee/Pager.html +534 -0
  89. data/doc/rdoc/classes/Wee/Presenter.html +482 -298
  90. data/doc/rdoc/classes/Wee/Rails.html +114 -0
  91. data/doc/rdoc/classes/Wee/Rails/ControllerClassMixin.html +192 -0
  92. data/doc/rdoc/classes/Wee/Rails/ControllerMixin.html +342 -0
  93. data/doc/rdoc/classes/Wee/Rails/FormTag.html +155 -0
  94. data/doc/rdoc/classes/Wee/Rails/HtmlCanvasRenderer.html +177 -0
  95. data/doc/rdoc/classes/Wee/RedirectResponse.html +7 -7
  96. data/doc/rdoc/classes/Wee/RefreshResponse.html +7 -7
  97. data/doc/rdoc/classes/Wee/Renderer.html +208 -0
  98. data/doc/rdoc/classes/Wee/RenderingContext.html +175 -3
  99. data/doc/rdoc/classes/Wee/Request.html +197 -46
  100. data/doc/rdoc/classes/Wee/RequestHandler.html +31 -31
  101. data/doc/rdoc/classes/Wee/Response.html +44 -43
  102. data/doc/rdoc/classes/Wee/Session.html +296 -402
  103. data/doc/rdoc/classes/Wee/SimpleIdGenerator.html +14 -14
  104. data/doc/rdoc/classes/Wee/Snapshot.html +19 -19
  105. data/doc/rdoc/classes/Wee/Utils.html +22 -22
  106. data/doc/rdoc/classes/Wee/Utils/LRUCache.html +6 -6
  107. data/doc/rdoc/classes/Wee/ValueHolder.html +19 -19
  108. data/doc/rdoc/classes/Wee/WEBrickAdaptor.html +72 -46
  109. data/doc/rdoc/classes/Wee/WrapperDecoration.html +6 -6
  110. data/doc/rdoc/created.rid +1 -1
  111. data/doc/rdoc/files/INSTALL.html +1 -1
  112. data/doc/rdoc/files/README.html +8 -12
  113. data/doc/rdoc/files/lib/cache/cache_rb.html +1 -1
  114. data/doc/rdoc/files/lib/wee/abstractsession_rb.html +108 -0
  115. data/doc/rdoc/files/lib/wee/adaptors/fastcgi_rb.html +108 -0
  116. data/doc/rdoc/files/lib/wee/adaptors/nitro_rb.html +101 -0
  117. data/doc/rdoc/files/lib/wee/adaptors/rails_rb.html +101 -0
  118. data/doc/rdoc/files/lib/wee/adaptors/webrick_rb.html +1 -1
  119. data/doc/rdoc/files/lib/wee/application_rb.html +1 -1
  120. data/doc/rdoc/files/lib/wee/components/component_dispatcher_rb.html +108 -0
  121. data/doc/rdoc/files/lib/wee/components/form_decoration_rb.html +1 -1
  122. data/doc/rdoc/files/lib/wee/components/login_decoration_rb.html +101 -0
  123. data/doc/rdoc/files/lib/wee/components/messagebox_rb.html +1 -1
  124. data/doc/rdoc/files/lib/wee/components/page_decoration_rb.html +1 -1
  125. data/doc/rdoc/files/lib/wee/components/pager_rb.html +101 -0
  126. data/doc/rdoc/files/lib/wee/components/wrapper_decoration_rb.html +1 -1
  127. data/doc/rdoc/files/lib/wee/components_rb.html +4 -1
  128. data/doc/rdoc/files/lib/wee/continuation/core/component_rb.html +1 -1
  129. data/doc/rdoc/files/lib/wee/continuation/session_rb.html +1 -1
  130. data/doc/rdoc/files/lib/wee/continuation_rb.html +1 -1
  131. data/doc/rdoc/files/lib/wee/core/callback_rb.html +1 -1
  132. data/doc/rdoc/files/lib/wee/core/component_rb.html +1 -1
  133. data/doc/rdoc/files/lib/wee/core/componentrunner_rb.html +110 -0
  134. data/doc/rdoc/files/lib/wee/core/context_rb.html +101 -0
  135. data/doc/rdoc/files/lib/wee/core/decoration_rb.html +1 -1
  136. data/doc/rdoc/files/lib/wee/core/idgen_rb.html +101 -0
  137. data/doc/rdoc/files/lib/wee/core/page_rb.html +101 -0
  138. data/doc/rdoc/files/lib/wee/core/presenter_rb.html +1 -1
  139. data/doc/rdoc/files/lib/wee/core/renderer_rb.html +107 -0
  140. data/doc/rdoc/files/lib/wee/core/snapshot_rb.html +1 -1
  141. data/doc/rdoc/files/lib/wee/core/valueholder_rb.html +2 -2
  142. data/doc/rdoc/files/lib/wee/core_ext_rb.html +101 -0
  143. data/doc/rdoc/files/lib/wee/core_rb.html +7 -14
  144. data/doc/rdoc/files/lib/wee/databases/og/application_rb.html +1 -1
  145. data/doc/rdoc/files/lib/wee/databases/og/old_scaffolder_rb.html +1 -1
  146. data/doc/rdoc/files/lib/wee/databases/og/scaffolder_rb.html +1 -1
  147. data/doc/rdoc/files/lib/wee/databases/og/session_rb.html +1 -1
  148. data/doc/rdoc/files/lib/wee/databases/og_rb.html +1 -1
  149. data/doc/rdoc/files/lib/wee/examples/calculator_rb.html +107 -0
  150. data/doc/rdoc/files/lib/wee/examples/counter_rb.html +101 -0
  151. data/doc/rdoc/files/lib/wee/examples/editable_counter_rb.html +114 -0
  152. data/doc/rdoc/files/lib/wee/examples/window_rb.html +101 -0
  153. data/doc/rdoc/files/lib/wee/idgen/md5_rb.html +1 -1
  154. data/doc/rdoc/files/lib/wee/idgen/simple_rb.html +1 -1
  155. data/doc/rdoc/files/lib/wee/page_rb.html +1 -1
  156. data/doc/rdoc/files/lib/wee/pageless/application_rb.html +8 -1
  157. data/doc/rdoc/files/lib/wee/pageless/request_rb.html +1 -1
  158. data/doc/rdoc/files/lib/wee/pageless/session_rb.html +2 -1
  159. data/doc/rdoc/files/lib/wee/pageless_rb.html +1 -1
  160. data/doc/rdoc/files/lib/wee/renderer/html/brushes_rb.html +1 -1
  161. data/doc/rdoc/files/lib/wee/renderer/html/canvas_rb.html +1 -1
  162. data/doc/rdoc/files/lib/wee/renderer/html/writer_rb.html +1 -1
  163. data/doc/rdoc/files/lib/wee/request_rb.html +5 -4
  164. data/doc/rdoc/files/lib/wee/requesthandler_rb.html +1 -1
  165. data/doc/rdoc/files/lib/wee/response_rb.html +2 -1
  166. data/doc/rdoc/files/lib/wee/session_rb.html +2 -3
  167. data/doc/rdoc/files/lib/wee/skeleton/og/components/main_rb.html +1 -1
  168. data/doc/rdoc/files/lib/wee/skeleton/og/conf/db_rb.html +2 -2
  169. data/doc/rdoc/files/lib/wee/skeleton/og/models/recipe_rb.html +1 -1
  170. data/doc/rdoc/files/lib/wee/skeleton/og/run_rb.html +1 -1
  171. data/doc/rdoc/files/lib/wee/skeleton/simple/components/main_rb.html +1 -1
  172. data/doc/rdoc/files/lib/wee/skeleton/simple/run_rb.html +1 -1
  173. data/doc/rdoc/files/lib/wee/snapshot_ext_rb.html +1 -1
  174. data/doc/rdoc/files/lib/wee/template_rb.html +1 -1
  175. data/doc/rdoc/files/lib/wee/utils/autoreload_rb.html +1 -1
  176. data/doc/rdoc/files/lib/wee/utils/cache_rb.html +1 -1
  177. data/doc/rdoc/files/lib/wee/utils/helper_rb.html +1 -1
  178. data/doc/rdoc/files/lib/wee/utils_rb.html +1 -1
  179. data/doc/rdoc/files/lib/wee_rb.html +5 -3
  180. data/doc/rdoc/fr_class_index.html +34 -2
  181. data/doc/rdoc/fr_file_index.html +17 -1
  182. data/doc/rdoc/fr_method_index.html +464 -314
  183. data/examples/ajax/ajax.rb +1 -1
  184. data/examples/demo.rb +47 -0
  185. data/examples/{calendar.rb → demo/calendar.rb} +89 -97
  186. data/examples/{example.rb → demo/example.rb} +17 -97
  187. data/examples/dispatcher.rb +37 -0
  188. data/examples/draw.rb +14 -11
  189. data/examples/nitro/run.rb +42 -0
  190. data/examples/radio.rb +44 -0
  191. data/examples/test.rb +3 -27
  192. data/lib/wee.rb +15 -3
  193. data/lib/wee/adaptors/nitro.rb +154 -0
  194. data/lib/wee/adaptors/rails.rb +154 -0
  195. data/lib/wee/application.rb +22 -20
  196. data/lib/wee/components.rb +3 -0
  197. data/lib/wee/components/component_dispatcher.rb +46 -0
  198. data/lib/wee/components/login_decoration.rb +35 -0
  199. data/lib/wee/components/messagebox.rb +2 -2
  200. data/lib/wee/components/pager.rb +102 -0
  201. data/lib/wee/continuation/core/component.rb +13 -12
  202. data/lib/wee/continuation/session.rb +11 -19
  203. data/lib/wee/core.rb +8 -7
  204. data/lib/wee/core/component.rb +8 -28
  205. data/lib/wee/core/componentrunner.rb +73 -0
  206. data/lib/wee/core/context.rb +27 -0
  207. data/lib/wee/core/idgen.rb +5 -0
  208. data/lib/wee/core/page.rb +1 -0
  209. data/lib/wee/core/presenter.rb +10 -126
  210. data/lib/wee/core/renderer.rb +23 -0
  211. data/lib/wee/core_ext.rb +122 -0
  212. data/lib/wee/databases/og/scaffolder.rb +0 -1
  213. data/lib/wee/examples/calculator.rb +70 -0
  214. data/lib/wee/examples/counter.rb +33 -0
  215. data/lib/wee/examples/editable_counter.rb +31 -0
  216. data/{examples → lib/wee/examples}/window.rb +29 -23
  217. data/lib/wee/idgen/md5.rb +1 -1
  218. data/lib/wee/idgen/simple.rb +1 -1
  219. data/lib/wee/pageless/session.rb +2 -3
  220. data/lib/wee/renderer/html/brushes.rb +142 -22
  221. data/lib/wee/renderer/html/canvas.rb +57 -19
  222. data/lib/wee/response.rb +3 -2
  223. data/lib/wee/session.rb +10 -54
  224. data/lib/wee/skeleton/og/components/main.rb +5 -1
  225. data/lib/wee/skeleton/og/conf/db.rb +1 -1
  226. data/lib/wee/snapshot_ext.rb +4 -10
  227. data/lib/wee/template.rb +19 -5
  228. data/lib/wee/utils/helper.rb +2 -2
  229. metadata +90 -13
  230. data/examples/calculator.rb +0 -67
  231. data/lib/wee/context.rb +0 -2
@@ -0,0 +1,296 @@
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::PagelessComponentDriver</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::PagelessComponentDriver</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/wee/adaptors/rails_rb.html">
59
+ lib/wee/adaptors/rails.rb
60
+ </a>
61
+ <br />
62
+ <a href="../../files/lib/wee/adaptors/nitro_rb.html">
63
+ lib/wee/adaptors/nitro.rb
64
+ </a>
65
+ <br />
66
+ </td>
67
+ </tr>
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+ <a href="ComponentRunner.html">
73
+ Wee::ComponentRunner
74
+ </a>
75
+ </td>
76
+ </tr>
77
+ </table>
78
+ </div>
79
+ <!-- banner header -->
80
+
81
+ <div id="bodyContent">
82
+
83
+
84
+
85
+ <div id="contextContent">
86
+
87
+
88
+
89
+ </div>
90
+
91
+ <div id="method-list">
92
+ <h3 class="section-bar">Methods</h3>
93
+
94
+ <div class="name-list">
95
+ <a href="#M000313">new</a>&nbsp;&nbsp;
96
+ <a href="#M000316">new</a>&nbsp;&nbsp;
97
+ <a href="#M000315">process_callbacks</a>&nbsp;&nbsp;
98
+ <a href="#M000318">process_callbacks</a>&nbsp;&nbsp;
99
+ <a href="#M000314">render</a>&nbsp;&nbsp;
100
+ <a href="#M000317">render</a>&nbsp;&nbsp;
101
+ </div>
102
+ </div>
103
+
104
+ </div>
105
+
106
+
107
+ <!-- if includes -->
108
+
109
+ <div id="section">
110
+
111
+
112
+
113
+
114
+
115
+ <div id="attribute-list">
116
+ <h3 class="section-bar">Attributes</h3>
117
+
118
+ <div class="name-list">
119
+ <table>
120
+ <tr class="top-aligned-row context-row">
121
+ <td class="context-item-name">callbacks</td>
122
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
123
+ <td class="context-item-desc"></td>
124
+ </tr>
125
+ <tr class="top-aligned-row context-row">
126
+ <td class="context-item-name">callbacks</td>
127
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
128
+ <td class="context-item-desc"></td>
129
+ </tr>
130
+ </table>
131
+ </div>
132
+ </div>
133
+
134
+
135
+
136
+ <!-- if method_list -->
137
+ <div id="methods">
138
+ <h3 class="section-bar">Public Class methods</h3>
139
+
140
+ <div id="method-M000313" class="method-detail">
141
+ <a name="M000313"></a>
142
+
143
+ <div class="method-heading">
144
+ <a href="#M000313" class="method-signature">
145
+ <span class="method-name">new</span><span class="method-args">(root_component, callbacks=nil)</span>
146
+ </a>
147
+ </div>
148
+
149
+ <div class="method-description">
150
+ <p><a class="source-toggle" href="#"
151
+ onclick="toggleCode('M000313-source');return false;">[Source]</a></p>
152
+ <div class="method-source-code" id="M000313-source">
153
+ <pre>
154
+ <span class="ruby-comment cmt"># File lib/wee/adaptors/rails.rb, line 4</span>
155
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">root_component</span>, <span class="ruby-identifier">callbacks</span>=<span class="ruby-keyword kw">nil</span>)
156
+ <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">root_component</span>)
157
+ <span class="ruby-ivar">@callbacks</span> = <span class="ruby-identifier">callbacks</span>
158
+ <span class="ruby-ivar">@mutex</span> = <span class="ruby-constant">Mutex</span>.<span class="ruby-identifier">new</span>
159
+ <span class="ruby-keyword kw">end</span>
160
+ </pre>
161
+ </div>
162
+ </div>
163
+ </div>
164
+
165
+ <div id="method-M000316" class="method-detail">
166
+ <a name="M000316"></a>
167
+
168
+ <div class="method-heading">
169
+ <a href="#M000316" class="method-signature">
170
+ <span class="method-name">new</span><span class="method-args">(root_component, callbacks=nil)</span>
171
+ </a>
172
+ </div>
173
+
174
+ <div class="method-description">
175
+ <p><a class="source-toggle" href="#"
176
+ onclick="toggleCode('M000316-source');return false;">[Source]</a></p>
177
+ <div class="method-source-code" id="M000316-source">
178
+ <pre>
179
+ <span class="ruby-comment cmt"># File lib/wee/adaptors/nitro.rb, line 4</span>
180
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">root_component</span>, <span class="ruby-identifier">callbacks</span>=<span class="ruby-keyword kw">nil</span>)
181
+ <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">root_component</span>)
182
+ <span class="ruby-ivar">@callbacks</span> = <span class="ruby-identifier">callbacks</span>
183
+ <span class="ruby-ivar">@mutex</span> = <span class="ruby-constant">Mutex</span>.<span class="ruby-identifier">new</span>
184
+ <span class="ruby-keyword kw">end</span>
185
+ </pre>
186
+ </div>
187
+ </div>
188
+ </div>
189
+
190
+ <h3 class="section-bar">Public Instance methods</h3>
191
+
192
+ <div id="method-M000315" class="method-detail">
193
+ <a name="M000315"></a>
194
+
195
+ <div class="method-heading">
196
+ <a href="#M000315" class="method-signature">
197
+ <span class="method-name">process_callbacks</span><span class="method-args">(*args)</span>
198
+ </a>
199
+ </div>
200
+
201
+ <div class="method-description">
202
+ <p><a class="source-toggle" href="#"
203
+ onclick="toggleCode('M000315-source');return false;">[Source]</a></p>
204
+ <div class="method-source-code" id="M000315-source">
205
+ <pre>
206
+ <span class="ruby-comment cmt"># File lib/wee/adaptors/rails.rb, line 14</span>
207
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_callbacks</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
208
+ <span class="ruby-ivar">@mutex</span>.<span class="ruby-identifier">synchronize</span> { <span class="ruby-keyword kw">super</span> }
209
+ <span class="ruby-keyword kw">end</span>
210
+ </pre>
211
+ </div>
212
+ </div>
213
+ </div>
214
+
215
+ <div id="method-M000318" class="method-detail">
216
+ <a name="M000318"></a>
217
+
218
+ <div class="method-heading">
219
+ <a href="#M000318" class="method-signature">
220
+ <span class="method-name">process_callbacks</span><span class="method-args">(*args)</span>
221
+ </a>
222
+ </div>
223
+
224
+ <div class="method-description">
225
+ <p><a class="source-toggle" href="#"
226
+ onclick="toggleCode('M000318-source');return false;">[Source]</a></p>
227
+ <div class="method-source-code" id="M000318-source">
228
+ <pre>
229
+ <span class="ruby-comment cmt"># File lib/wee/adaptors/nitro.rb, line 14</span>
230
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_callbacks</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
231
+ <span class="ruby-ivar">@mutex</span>.<span class="ruby-identifier">synchronize</span> { <span class="ruby-keyword kw">super</span> }
232
+ <span class="ruby-keyword kw">end</span>
233
+ </pre>
234
+ </div>
235
+ </div>
236
+ </div>
237
+
238
+ <div id="method-M000314" class="method-detail">
239
+ <a name="M000314"></a>
240
+
241
+ <div class="method-heading">
242
+ <a href="#M000314" class="method-signature">
243
+ <span class="method-name">render</span><span class="method-args">(*args)</span>
244
+ </a>
245
+ </div>
246
+
247
+ <div class="method-description">
248
+ <p><a class="source-toggle" href="#"
249
+ onclick="toggleCode('M000314-source');return false;">[Source]</a></p>
250
+ <div class="method-source-code" id="M000314-source">
251
+ <pre>
252
+ <span class="ruby-comment cmt"># File lib/wee/adaptors/rails.rb, line 10</span>
253
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
254
+ <span class="ruby-ivar">@mutex</span>.<span class="ruby-identifier">synchronize</span> { <span class="ruby-keyword kw">super</span> }
255
+ <span class="ruby-keyword kw">end</span>
256
+ </pre>
257
+ </div>
258
+ </div>
259
+ </div>
260
+
261
+ <div id="method-M000317" class="method-detail">
262
+ <a name="M000317"></a>
263
+
264
+ <div class="method-heading">
265
+ <a href="#M000317" class="method-signature">
266
+ <span class="method-name">render</span><span class="method-args">(*args)</span>
267
+ </a>
268
+ </div>
269
+
270
+ <div class="method-description">
271
+ <p><a class="source-toggle" href="#"
272
+ onclick="toggleCode('M000317-source');return false;">[Source]</a></p>
273
+ <div class="method-source-code" id="M000317-source">
274
+ <pre>
275
+ <span class="ruby-comment cmt"># File lib/wee/adaptors/nitro.rb, line 10</span>
276
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
277
+ <span class="ruby-ivar">@mutex</span>.<span class="ruby-identifier">synchronize</span> { <span class="ruby-keyword kw">super</span> }
278
+ <span class="ruby-keyword kw">end</span>
279
+ </pre>
280
+ </div>
281
+ </div>
282
+ </div>
283
+
284
+
285
+ </div>
286
+
287
+
288
+ </div>
289
+
290
+
291
+ <div id="validator-badges">
292
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
293
+ </div>
294
+
295
+ </body>
296
+ </html>
@@ -88,8 +88,9 @@
88
88
  <h3 class="section-bar">Methods</h3>
89
89
 
90
90
  <div class="name-list">
91
- <a href="#M000248">build_url</a>&nbsp;&nbsp;
92
- <a href="#M000249">parse_path</a>&nbsp;&nbsp;
91
+ <a href="#M000320">make_request_path</a>&nbsp;&nbsp;
92
+ <a href="#M000319">pageless?</a>&nbsp;&nbsp;
93
+ <a href="#M000321">parse_path</a>&nbsp;&nbsp;
93
94
  </div>
94
95
  </div>
95
96
 
@@ -109,53 +110,83 @@
109
110
 
110
111
  <!-- if method_list -->
111
112
  <div id="methods">
112
- <h3 class="section-bar">Public Instance methods</h3>
113
+ <h3 class="section-bar">Private Instance methods</h3>
113
114
 
114
- <div id="method-M000248" class="method-detail">
115
- <a name="M000248"></a>
115
+ <div id="method-M000320" class="method-detail">
116
+ <a name="M000320"></a>
116
117
 
117
118
  <div class="method-heading">
118
- <a href="#M000248" class="method-signature">
119
- <span class="method-name">build_url</span><span class="method-args">(request_handler_id=nil, page_id=nil, callback_id=nil)</span>
119
+ <a href="#M000320" class="method-signature">
120
+ <span class="method-name">make_request_path</span><span class="method-args">(request_handler_id, page_id)</span>
120
121
  </a>
121
122
  </div>
122
123
 
123
124
  <div class="method-description">
124
125
  <p><a class="source-toggle" href="#"
125
- onclick="toggleCode('M000248-source');return false;">[Source]</a></p>
126
- <div class="method-source-code" id="M000248-source">
126
+ onclick="toggleCode('M000320-source');return false;">[Source]</a></p>
127
+ <div class="method-source-code" id="M000320-source">
127
128
  <pre>
128
- <span class="ruby-comment cmt"># File lib/wee/pageless/request.rb, line 3</span>
129
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">build_url</span>(<span class="ruby-identifier">request_handler_id</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">page_id</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">callback_id</span>=<span class="ruby-keyword kw">nil</span>)
130
- <span class="ruby-identifier">url</span> = <span class="ruby-value str">&quot;&quot;</span>
131
- <span class="ruby-identifier">url</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-ivar">@app_path</span>
132
- <span class="ruby-identifier">url</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-value str">'?'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">callback_id</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">callback_id</span>
133
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">url</span>
129
+ <span class="ruby-comment cmt"># File lib/wee/pageless/request.rb, line 8</span>
130
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">make_request_path</span>(<span class="ruby-identifier">request_handler_id</span>, <span class="ruby-identifier">page_id</span>)
131
+ <span class="ruby-value str">&quot;&quot;</span>
134
132
  <span class="ruby-keyword kw">end</span>
135
133
  </pre>
136
134
  </div>
137
135
  </div>
138
136
  </div>
139
137
 
140
- <div id="method-M000249" class="method-detail">
141
- <a name="M000249"></a>
138
+ <div id="method-M000319" class="method-detail">
139
+ <a name="M000319"></a>
142
140
 
143
141
  <div class="method-heading">
144
- <a href="#M000249" class="method-signature">
142
+ <a href="#M000319" class="method-signature">
143
+ <span class="method-name">pageless?</span><span class="method-args">()</span>
144
+ </a>
145
+ </div>
146
+
147
+ <div class="method-description">
148
+ <p><a class="source-toggle" href="#"
149
+ onclick="toggleCode('M000319-source');return false;">[Source]</a></p>
150
+ <div class="method-source-code" id="M000319-source">
151
+ <pre>
152
+ <span class="ruby-comment cmt"># File lib/wee/pageless/request.rb, line 4</span>
153
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pageless?</span>
154
+ <span class="ruby-keyword kw">true</span>
155
+ <span class="ruby-keyword kw">end</span>
156
+ </pre>
157
+ </div>
158
+ </div>
159
+ </div>
160
+
161
+ <div id="method-M000321" class="method-detail">
162
+ <a name="M000321"></a>
163
+
164
+ <div class="method-heading">
165
+ <a href="#M000321" class="method-signature">
145
166
  <span class="method-name">parse_path</span><span class="method-args">()</span>
146
167
  </a>
147
168
  </div>
148
169
 
149
170
  <div class="method-description">
150
171
  <p><a class="source-toggle" href="#"
151
- onclick="toggleCode('M000249-source');return false;">[Source]</a></p>
152
- <div class="method-source-code" id="M000249-source">
172
+ onclick="toggleCode('M000321-source');return false;">[Source]</a></p>
173
+ <div class="method-source-code" id="M000321-source">
153
174
  <pre>
154
- <span class="ruby-comment cmt"># File lib/wee/pageless/request.rb, line 10</span>
175
+ <span class="ruby-comment cmt"># File lib/wee/pageless/request.rb, line 12</span>
155
176
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_path</span>
156
177
  <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sid</span> = <span class="ruby-ivar">@cookies</span>.<span class="ruby-identifier">find</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'SID'</span>}
157
178
  <span class="ruby-ivar">@request_handler_id</span> = <span class="ruby-identifier">sid</span>.<span class="ruby-identifier">value</span>
158
179
  <span class="ruby-keyword kw">end</span>
180
+
181
+ <span class="ruby-identifier">full_app_path</span> = <span class="ruby-ivar">@path</span>
182
+
183
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">full_app_path</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@app_path</span>
184
+ <span class="ruby-ivar">@info</span> = <span class="ruby-keyword kw">nil</span>
185
+ <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">full_app_path</span>[<span class="ruby-value">0</span>, <span class="ruby-ivar">@app_path</span>.<span class="ruby-identifier">size</span>] <span class="ruby-operator">==</span> <span class="ruby-ivar">@app_path</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">full_app_path</span>[<span class="ruby-ivar">@app_path</span>.<span class="ruby-identifier">size</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?/</span>
186
+ <span class="ruby-ivar">@info</span> = <span class="ruby-identifier">full_app_path</span>[<span class="ruby-ivar">@app_path</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
187
+ <span class="ruby-keyword kw">else</span>
188
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;dispatched to wrong handler&quot;</span>
189
+ <span class="ruby-keyword kw">end</span>
159
190
  <span class="ruby-keyword kw">end</span>
160
191
  </pre>
161
192
  </div>
@@ -95,10 +95,13 @@ backtrack.
95
95
  <h3 class="section-bar">Methods</h3>
96
96
 
97
97
  <div class="name-list">
98
- <a href="#M000097">handle_new_page_view</a>&nbsp;&nbsp;
99
- <a href="#M000095">new</a>&nbsp;&nbsp;
100
- <a href="#M000096">process_request</a>&nbsp;&nbsp;
101
- <a href="#M000098">set_response</a>&nbsp;&nbsp;
98
+ <a href="#M000159">handle_callback_phase</a>&nbsp;&nbsp;
99
+ <a href="#M000157">handle_existing_page</a>&nbsp;&nbsp;
100
+ <a href="#M000160">handle_new_page_view</a>&nbsp;&nbsp;
101
+ <a href="#M000158">handle_render_phase</a>&nbsp;&nbsp;
102
+ <a href="#M000156">process_request</a>&nbsp;&nbsp;
103
+ <a href="#M000161">set_response</a>&nbsp;&nbsp;
104
+ <a href="#M000155">setup</a>&nbsp;&nbsp;
102
105
  </div>
103
106
  </div>
104
107
 
@@ -136,11 +139,6 @@ backtrack.
136
139
  <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
137
140
  <td class="context-item-desc"></td>
138
141
  </tr>
139
- <tr class="top-aligned-row context-row">
140
- <td class="context-item-name">root_component</td>
141
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
142
- <td class="context-item-desc"></td>
143
- </tr>
144
142
  </table>
145
143
  </div>
146
144
  </div>
@@ -149,103 +147,145 @@ backtrack.
149
147
 
150
148
  <!-- if method_list -->
151
149
  <div id="methods">
152
- <h3 class="section-bar">Public Class methods</h3>
150
+ <h3 class="section-bar">Public Instance methods</h3>
153
151
 
154
- <div id="method-M000095" class="method-detail">
155
- <a name="M000095"></a>
152
+ <div id="method-M000159" class="method-detail">
153
+ <a name="M000159"></a>
156
154
 
157
155
  <div class="method-heading">
158
- <a href="#M000095" class="method-signature">
159
- <span class="method-name">new</span><span class="method-args">(&amp;block)</span>
156
+ <a href="#M000159" class="method-signature">
157
+ <span class="method-name">handle_callback_phase</span><span class="method-args">()</span>
160
158
  </a>
161
159
  </div>
162
160
 
163
161
  <div class="method-description">
164
162
  <p><a class="source-toggle" href="#"
165
- onclick="toggleCode('M000095-source');return false;">[Source]</a></p>
166
- <div class="method-source-code" id="M000095-source">
163
+ onclick="toggleCode('M000159-source');return false;">[Source]</a></p>
164
+ <div class="method-source-code" id="M000159-source">
167
165
  <pre>
168
- <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 13</span>
169
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
170
- <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:wee_session</span>] = <span class="ruby-keyword kw">self</span>
171
-
172
- <span class="ruby-comment cmt"># to serialize the requests we need a mutex</span>
173
- <span class="ruby-ivar">@mutex</span> = <span class="ruby-constant">Mutex</span>.<span class="ruby-identifier">new</span>
166
+ <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 42</span>
167
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_callback_phase</span>
168
+ <span class="ruby-comment cmt"># Actions/inputs were specified.</span>
169
+ <span class="ruby-comment cmt">#</span>
170
+ <span class="ruby-comment cmt"># We process the request and invoke actions/inputs. Then we generate a</span>
171
+ <span class="ruby-comment cmt"># new page view. </span>
172
+
173
+ <span class="ruby-identifier">callback_stream</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">CallbackStream</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">callbacks</span>, <span class="ruby-ivar">@context</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">fields</span>)
174
+ <span class="ruby-identifier">send_response</span> = <span class="ruby-ivar">@component_runner</span>.<span class="ruby-identifier">process_callbacks</span>(<span class="ruby-identifier">callback_stream</span>)
175
+
176
+ <span class="ruby-identifier">post_callbacks_hook</span>()
177
+
178
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">send_response</span>
179
+ <span class="ruby-identifier">set_response</span>(<span class="ruby-ivar">@context</span>, <span class="ruby-identifier">send_response</span>) <span class="ruby-comment cmt"># @context.response = send_response</span>
180
+ <span class="ruby-keyword kw">else</span>
181
+ <span class="ruby-identifier">handle_new_page_view</span>(<span class="ruby-ivar">@context</span>)
182
+ <span class="ruby-keyword kw">end</span>
183
+ <span class="ruby-keyword kw">end</span>
184
+ </pre>
185
+ </div>
186
+ </div>
187
+ </div>
174
188
 
175
- <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-keyword kw">self</span>)
189
+ <div id="method-M000157" class="method-detail">
190
+ <a name="M000157"></a>
176
191
 
177
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;No root component specified&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@root_component</span>.<span class="ruby-identifier">nil?</span>
178
-
179
- <span class="ruby-keyword kw">super</span>()
180
- <span class="ruby-keyword kw">ensure</span>
181
- <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">current</span>[<span class="ruby-identifier">:wee_session</span>] = <span class="ruby-keyword kw">nil</span>
192
+ <div class="method-heading">
193
+ <a href="#M000157" class="method-signature">
194
+ <span class="method-name">handle_existing_page</span><span class="method-args">()</span>
195
+ </a>
196
+ </div>
197
+
198
+ <div class="method-description">
199
+ <p><a class="source-toggle" href="#"
200
+ onclick="toggleCode('M000157-source');return false;">[Source]</a></p>
201
+ <div class="method-source-code" id="M000157-source">
202
+ <pre>
203
+ <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 26</span>
204
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_existing_page</span>
205
+ <span class="ruby-identifier">p</span> <span class="ruby-ivar">@context</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">fields</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
206
+
207
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@context</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">render?</span>
208
+ <span class="ruby-identifier">handle_render_phase</span>
209
+ <span class="ruby-keyword kw">else</span>
210
+ <span class="ruby-identifier">handle_callback_phase</span>
211
+ <span class="ruby-keyword kw">end</span>
182
212
  <span class="ruby-keyword kw">end</span>
183
213
  </pre>
184
214
  </div>
185
215
  </div>
186
216
  </div>
187
217
 
188
- <h3 class="section-bar">Public Instance methods</h3>
218
+ <div id="method-M000158" class="method-detail">
219
+ <a name="M000158"></a>
189
220
 
190
- <div id="method-M000096" class="method-detail">
191
- <a name="M000096"></a>
221
+ <div class="method-heading">
222
+ <a href="#M000158" class="method-signature">
223
+ <span class="method-name">handle_render_phase</span><span class="method-args">()</span>
224
+ </a>
225
+ </div>
226
+
227
+ <div class="method-description">
228
+ <p><a class="source-toggle" href="#"
229
+ onclick="toggleCode('M000158-source');return false;">[Source]</a></p>
230
+ <div class="method-source-code" id="M000158-source">
231
+ <pre>
232
+ <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 36</span>
233
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_render_phase</span>
234
+ <span class="ruby-identifier">new_callbacks</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">CallbackRegistry</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">SimpleIdGenerator</span>.<span class="ruby-identifier">new</span>)
235
+ <span class="ruby-identifier">respond</span>(<span class="ruby-ivar">@context</span>, <span class="ruby-identifier">new_callbacks</span>) <span class="ruby-comment cmt"># render</span>
236
+ <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">callbacks</span> = <span class="ruby-identifier">new_callbacks</span>
237
+ <span class="ruby-keyword kw">end</span>
238
+ </pre>
239
+ </div>
240
+ </div>
241
+ </div>
242
+
243
+ <div id="method-M000156" class="method-detail">
244
+ <a name="M000156"></a>
192
245
 
193
246
  <div class="method-heading">
194
- <a href="#M000096" class="method-signature">
247
+ <a href="#M000156" class="method-signature">
195
248
  <span class="method-name">process_request</span><span class="method-args">()</span>
196
249
  </a>
197
250
  </div>
198
251
 
199
252
  <div class="method-description">
253
+ <p>
254
+ The main routine where the request is processed.
255
+ </p>
200
256
  <p><a class="source-toggle" href="#"
201
- onclick="toggleCode('M000096-source');return false;">[Source]</a></p>
202
- <div class="method-source-code" id="M000096-source">
257
+ onclick="toggleCode('M000156-source');return false;">[Source]</a></p>
258
+ <div class="method-source-code" id="M000156-source">
203
259
  <pre>
204
- <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 28</span>
260
+ <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 22</span>
205
261
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_request</span>
206
- <span class="ruby-identifier">p</span> <span class="ruby-ivar">@context</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">fields</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
207
-
208
- <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@context</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">fields</span>.<span class="ruby-identifier">empty?</span>
209
-
210
- <span class="ruby-comment cmt"># No action/inputs were specified -&gt; render page</span>
211
- <span class="ruby-comment cmt">#</span>
212
- <span class="ruby-comment cmt"># 1. Reset the action/input fields (as they are regenerated in the</span>
213
- <span class="ruby-comment cmt"># rendering process).</span>
214
- <span class="ruby-comment cmt"># 2. Render the page (respond).</span>
215
- <span class="ruby-comment cmt"># 3. Store the page back into the store</span>
216
-
217
- <span class="ruby-identifier">new_callbacks</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">CallbackRegistry</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">SimpleIdGenerator</span>.<span class="ruby-identifier">new</span>)
218
- <span class="ruby-identifier">respond</span>(<span class="ruby-ivar">@context</span>, <span class="ruby-identifier">new_callbacks</span>) <span class="ruby-comment cmt"># render</span>
219
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">callbacks</span> = <span class="ruby-identifier">new_callbacks</span>
220
-
221
- <span class="ruby-keyword kw">else</span>
222
-
223
- <span class="ruby-comment cmt"># Actions/inputs were specified.</span>
224
- <span class="ruby-comment cmt">#</span>
225
- <span class="ruby-comment cmt"># We process the request and invoke actions/inputs. Then we generate a</span>
226
- <span class="ruby-comment cmt"># new page view. </span>
227
-
228
- <span class="ruby-identifier">callback_stream</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">CallbackStream</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">callbacks</span>, <span class="ruby-ivar">@context</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">fields</span>)
229
-
230
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">callback_stream</span>.<span class="ruby-identifier">all_of_type</span>(<span class="ruby-identifier">:action</span>).<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
231
- <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Not allowed to specify more than one action callback&quot;</span>
232
- <span class="ruby-keyword kw">end</span>
233
-
234
- <span class="ruby-identifier">live_update_response</span> = <span class="ruby-identifier">catch</span>(<span class="ruby-identifier">:wee_live_update</span>) {
235
- <span class="ruby-identifier">catch</span>(<span class="ruby-identifier">:wee_back_to_session</span>) {
236
- <span class="ruby-ivar">@root_component</span>.<span class="ruby-identifier">process_callbacks_chain</span>(<span class="ruby-identifier">callback_stream</span>)
237
- }
238
- <span class="ruby-keyword kw">nil</span>
239
- }
240
-
241
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">live_update_response</span>
242
- <span class="ruby-ivar">@context</span>.<span class="ruby-identifier">response</span> = <span class="ruby-identifier">live_update_response</span>
243
- <span class="ruby-keyword kw">else</span>
244
- <span class="ruby-identifier">handle_new_page_view</span>(<span class="ruby-ivar">@context</span>)
245
- <span class="ruby-keyword kw">end</span>
262
+ <span class="ruby-identifier">handle_existing_page</span>
263
+ <span class="ruby-keyword kw">end</span>
264
+ </pre>
265
+ </div>
266
+ </div>
267
+ </div>
246
268
 
247
- <span class="ruby-keyword kw">end</span>
269
+ <div id="method-M000155" class="method-detail">
270
+ <a name="M000155"></a>
248
271
 
272
+ <div class="method-heading">
273
+ <a href="#M000155" class="method-signature">
274
+ <span class="method-name">setup</span><span class="method-args">(&amp;block)</span>
275
+ </a>
276
+ </div>
277
+
278
+ <div class="method-description">
279
+ <p><a class="source-toggle" href="#"
280
+ onclick="toggleCode('M000155-source');return false;">[Source]</a></p>
281
+ <div class="method-source-code" id="M000155-source">
282
+ <pre>
283
+ <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 13</span>
284
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setup</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
285
+ <span class="ruby-identifier">with_session</span> <span class="ruby-keyword kw">do</span>
286
+ <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>
287
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">&quot;No component runner specified&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@component_runner</span>.<span class="ruby-identifier">nil?</span>
288
+ <span class="ruby-keyword kw">end</span>
249
289
  <span class="ruby-keyword kw">end</span>
250
290
  </pre>
251
291
  </div>
@@ -254,23 +294,23 @@ backtrack.
254
294
 
255
295
  <h3 class="section-bar">Private Instance methods</h3>
256
296
 
257
- <div id="method-M000097" class="method-detail">
258
- <a name="M000097"></a>
297
+ <div id="method-M000160" class="method-detail">
298
+ <a name="M000160"></a>
259
299
 
260
300
  <div class="method-heading">
261
- <a href="#M000097" class="method-signature">
301
+ <a href="#M000160" class="method-signature">
262
302
  <span class="method-name">handle_new_page_view</span><span class="method-args">(context)</span>
263
303
  </a>
264
304
  </div>
265
305
 
266
306
  <div class="method-description">
267
307
  <p><a class="source-toggle" href="#"
268
- onclick="toggleCode('M000097-source');return false;">[Source]</a></p>
269
- <div class="method-source-code" id="M000097-source">
308
+ onclick="toggleCode('M000160-source');return false;">[Source]</a></p>
309
+ <div class="method-source-code" id="M000160-source">
270
310
  <pre>
271
- <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 76</span>
311
+ <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 62</span>
272
312
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_new_page_view</span>(<span class="ruby-identifier">context</span>)
273
- <span class="ruby-identifier">redirect_url</span> = <span class="ruby-identifier">context</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">build_url</span>(<span class="ruby-identifier">context</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">request_handler_id</span>, <span class="ruby-keyword kw">nil</span>)
313
+ <span class="ruby-identifier">redirect_url</span> = <span class="ruby-identifier">context</span>.<span class="ruby-identifier">request</span>.<span class="ruby-identifier">build_url</span>
274
314
  <span class="ruby-identifier">set_response</span>(<span class="ruby-identifier">context</span>, <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">RedirectResponse</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">redirect_url</span>))
275
315
  <span class="ruby-keyword kw">end</span>
276
316
  </pre>
@@ -278,24 +318,23 @@ backtrack.
278
318
  </div>
279
319
  </div>
280
320
 
281
- <div id="method-M000098" class="method-detail">
282
- <a name="M000098"></a>
321
+ <div id="method-M000161" class="method-detail">
322
+ <a name="M000161"></a>
283
323
 
284
324
  <div class="method-heading">
285
- <a href="#M000098" class="method-signature">
325
+ <a href="#M000161" class="method-signature">
286
326
  <span class="method-name">set_response</span><span class="method-args">(context, response)</span>
287
327
  </a>
288
328
  </div>
289
329
 
290
330
  <div class="method-description">
291
331
  <p><a class="source-toggle" href="#"
292
- onclick="toggleCode('M000098-source');return false;">[Source]</a></p>
293
- <div class="method-source-code" id="M000098-source">
332
+ onclick="toggleCode('M000161-source');return false;">[Source]</a></p>
333
+ <div class="method-source-code" id="M000161-source">
294
334
  <pre>
295
- <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 81</span>
335
+ <span class="ruby-comment cmt"># File lib/wee/pageless/session.rb, line 67</span>
296
336
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set_response</span>(<span class="ruby-identifier">context</span>, <span class="ruby-identifier">response</span>)
297
- <span class="ruby-comment cmt"># TODO: depends on WEBrick!</span>
298
- <span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">WEBrick</span><span class="ruby-operator">::</span><span class="ruby-constant">Cookie</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'SID'</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">id</span>)
337
+ <span class="ruby-identifier">response</span>.<span class="ruby-identifier">cookies</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">CGI</span><span class="ruby-operator">::</span><span class="ruby-constant">Cookie</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'SID'</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">id</span>)
299
338
  <span class="ruby-identifier">response</span>.<span class="ruby-identifier">header</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">'Expire'</span>)
300
339
  <span class="ruby-identifier">response</span>.<span class="ruby-identifier">header</span>[<span class="ruby-value str">'Pragma'</span>] = <span class="ruby-value str">'No-Cache'</span>
301
340
  <span class="ruby-keyword kw">super</span>