wee 0.10.0 → 2.0.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 (369) hide show
  1. data/README.rdoc +127 -0
  2. data/Rakefile +11 -32
  3. data/doc/rdoc/classes/Array.html +28 -24
  4. data/doc/rdoc/classes/Hash.html +28 -24
  5. data/doc/rdoc/classes/Object.html +37 -84
  6. data/doc/rdoc/classes/String.html +89 -21
  7. data/doc/rdoc/classes/Struct.html +32 -82
  8. data/doc/rdoc/classes/Wee.html +285 -86
  9. data/doc/rdoc/classes/Wee/AnswerDecoration.html +111 -48
  10. data/doc/rdoc/classes/Wee/{Context.html → AnswerDecoration/Answer.html} +61 -51
  11. data/doc/rdoc/classes/Wee/Application.html +161 -322
  12. data/doc/rdoc/classes/Wee/Application/SessionCache.html +162 -0
  13. data/doc/rdoc/classes/Wee/Brush.html +147 -62
  14. data/doc/rdoc/classes/{Enumerable.html → Wee/Brush/ActionInputTag.html} +68 -41
  15. data/doc/rdoc/classes/Wee/Brush/AnchorTag.html +150 -100
  16. data/doc/rdoc/classes/Wee/Brush/CheckboxTag.html +132 -46
  17. data/doc/rdoc/classes/Wee/Brush/FileUploadTag.html +63 -41
  18. data/doc/rdoc/classes/Wee/Brush/FormTag.html +184 -78
  19. data/doc/rdoc/classes/Wee/Brush/GenericEncodedTextBrush.html +48 -65
  20. data/doc/rdoc/classes/Wee/Brush/GenericSingleTagBrush.html +83 -37
  21. data/doc/rdoc/classes/Wee/Brush/GenericTagBrush.html +334 -310
  22. data/doc/rdoc/classes/Wee/Brush/GenericTextBrush.html +74 -54
  23. data/doc/rdoc/classes/Wee/Brush/HiddenInputTag.html +58 -43
  24. data/doc/rdoc/classes/Wee/Brush/ImageButtonTag.html +64 -74
  25. data/doc/rdoc/classes/Wee/Brush/ImageTag.html +109 -86
  26. data/doc/rdoc/classes/Wee/Brush/InputTag.html +205 -45
  27. data/doc/rdoc/classes/Wee/Brush/JavascriptTag.html +96 -34
  28. data/doc/rdoc/classes/Wee/Brush/Page.html +129 -67
  29. data/doc/rdoc/classes/Wee/{Utils/LRUCache.html → Brush/PasswordInputTag.html} +65 -38
  30. data/doc/rdoc/classes/Wee/Brush/RadioButtonTag.html +132 -78
  31. data/doc/rdoc/classes/Wee/Brush/{RadioButtonTag/RadioGroup.html → RadioGroup.html} +91 -53
  32. data/doc/rdoc/classes/Wee/Brush/SelectListTag.html +301 -127
  33. data/doc/rdoc/classes/Wee/Brush/SelectOptionTag.html +96 -33
  34. data/doc/rdoc/classes/Wee/Brush/SubmitButtonTag.html +59 -44
  35. data/doc/rdoc/classes/Wee/Brush/TableDataTag.html +94 -57
  36. data/doc/rdoc/classes/Wee/Brush/TableHeaderTag.html +96 -33
  37. data/doc/rdoc/classes/Wee/Brush/TableRowTag.html +181 -121
  38. data/doc/rdoc/classes/Wee/Brush/TableTag.html +94 -32
  39. data/doc/rdoc/classes/Wee/Brush/TextAreaTag.html +257 -71
  40. data/doc/rdoc/classes/Wee/Brush/TextInputTag.html +58 -43
  41. data/doc/rdoc/classes/Wee/CallAnswerMixin.html +289 -0
  42. data/doc/rdoc/classes/Wee/CallbackMixin.html +233 -0
  43. data/doc/rdoc/classes/Wee/CallbackRegistry.html +179 -155
  44. data/doc/rdoc/classes/Wee/Callbacks.html +262 -0
  45. data/doc/rdoc/classes/Wee/Component.html +228 -779
  46. data/doc/rdoc/classes/Wee/Decoration.html +144 -159
  47. data/doc/rdoc/classes/Wee/DecorationMixin.html +340 -0
  48. data/doc/rdoc/classes/Wee/Delegate.html +119 -76
  49. data/doc/rdoc/classes/Wee/DupReplaceSnapshotMixin.html +64 -47
  50. data/doc/rdoc/classes/Wee/ErrorResponse.html +59 -62
  51. data/doc/rdoc/classes/Wee/FormDecoration.html +51 -37
  52. data/doc/rdoc/classes/Wee/GenericResponse.html +60 -35
  53. data/doc/rdoc/classes/Wee/HtmlCanvas.html +1000 -602
  54. data/doc/rdoc/classes/Wee/HtmlDocument.html +288 -0
  55. data/doc/rdoc/classes/Wee/HtmlWriter.html +227 -126
  56. data/doc/rdoc/classes/Wee/IdGenerator.html +60 -31
  57. data/doc/rdoc/classes/Wee/IdGenerator/Secure.html +282 -0
  58. data/doc/rdoc/classes/Wee/{SimpleIdGenerator.html → IdGenerator/Sequential.html} +76 -49
  59. data/doc/rdoc/classes/Wee/JQuery.html +221 -0
  60. data/doc/rdoc/classes/Wee/LRUCache.html +514 -0
  61. data/doc/rdoc/classes/Wee/LRUCache/Item.html +158 -0
  62. data/doc/rdoc/classes/Wee/ObjectSnapshotMixin.html +187 -0
  63. data/doc/rdoc/classes/Wee/PageDecoration.html +88 -59
  64. data/doc/rdoc/classes/Wee/Presenter.html +124 -704
  65. data/doc/rdoc/classes/Wee/RedirectResponse.html +64 -33
  66. data/doc/rdoc/classes/Wee/RefreshResponse.html +59 -44
  67. data/doc/rdoc/classes/Wee/Renderer.html +234 -54
  68. data/doc/rdoc/classes/Wee/Request.html +151 -286
  69. data/doc/rdoc/classes/Wee/Response.html +29 -212
  70. data/doc/rdoc/classes/Wee/Session.html +585 -360
  71. data/doc/rdoc/classes/Wee/{StateHolder.html → Session/AbortCallbackProcessing.html} +67 -40
  72. data/doc/rdoc/classes/Wee/Session/MutexSerializer.html +166 -0
  73. data/doc/rdoc/classes/{Cache/Strategy/LFU/Item.html → Wee/Session/Page.html} +26 -27
  74. data/doc/rdoc/classes/Wee/Session/ThreadSerializer.html +219 -0
  75. data/doc/rdoc/classes/Wee/State.html +307 -0
  76. data/doc/rdoc/classes/{Cache/Strategy/LRU/Item.html → Wee/State/Snapshot.html} +26 -27
  77. data/doc/rdoc/classes/{Cache/Strategy/Unbounded/Item.html → Wee/State/SnapshotIVars.html} +26 -27
  78. data/doc/rdoc/classes/Wee/StructSnapshotMixin.html +183 -0
  79. data/doc/rdoc/classes/Wee/WrapperDecoration.html +101 -35
  80. data/doc/rdoc/created.rid +1 -1
  81. data/doc/rdoc/files/README_rdoc.html +243 -0
  82. data/doc/rdoc/files/lib/wee/application_rb.html +22 -30
  83. data/doc/rdoc/files/lib/wee/{page_rb.html → call_answer_rb.html} +14 -25
  84. data/doc/rdoc/files/lib/wee/callback_rb.html +12 -29
  85. data/doc/rdoc/files/lib/wee/component_rb.html +22 -27
  86. data/doc/rdoc/files/lib/wee/decoration_rb.html +19 -20
  87. data/doc/rdoc/files/lib/wee/{idgen_rb.html → html_brushes_rb.html} +14 -25
  88. data/doc/rdoc/files/lib/wee/html_canvas_rb.html +15 -23
  89. data/doc/rdoc/files/lib/wee/{abstractsession_rb.html → html_document_rb.html} +17 -25
  90. data/doc/rdoc/files/lib/wee/html_writer_rb.html +15 -23
  91. data/doc/rdoc/files/lib/wee/{webrick_rb.html → id_generator_rb.html} +19 -25
  92. data/doc/rdoc/files/lib/wee/{core/page_rb.html → jquery/jquery_rb.html} +14 -25
  93. data/doc/rdoc/files/lib/wee/{state_registry_rb.html → jquery_rb.html} +17 -27
  94. data/doc/rdoc/files/lib/{cache/cache_rb.html → wee/lru_cache_rb.html} +14 -25
  95. data/doc/rdoc/files/lib/wee/presenter_rb.html +12 -34
  96. data/doc/rdoc/files/lib/wee/{holder_rb.html → renderer_rb.html} +14 -25
  97. data/doc/rdoc/files/lib/wee/request_rb.html +18 -32
  98. data/doc/rdoc/files/lib/wee/response_rb.html +17 -24
  99. data/doc/rdoc/files/lib/wee/session_rb.html +21 -23
  100. data/doc/rdoc/files/lib/wee/state_rb.html +90 -0
  101. data/doc/rdoc/files/lib/wee_rb.html +48 -40
  102. data/doc/rdoc/fr_class_index.html +111 -75
  103. data/doc/rdoc/fr_file_index.html +46 -76
  104. data/doc/rdoc/fr_method_index.html +473 -480
  105. data/doc/rdoc/index.html +6 -9
  106. data/doc/rdoc/rdoc-style.css +210 -119
  107. data/examples/ObjectSpaceBrowser.rb +33 -23
  108. data/examples/ajax.rb +71 -0
  109. data/examples/continuations.rb +28 -0
  110. data/examples/demo.rb +92 -36
  111. data/examples/demo/calculator.rb +63 -0
  112. data/examples/demo/calendar.rb +42 -55
  113. data/examples/demo/counter.rb +38 -0
  114. data/{lib/wee/examples → examples/demo}/editable_counter.rb +11 -6
  115. data/examples/demo/example.rb +28 -24
  116. data/examples/demo/file_upload.rb +19 -0
  117. data/{lib/wee/components → examples/demo}/messagebox.rb +3 -3
  118. data/examples/demo/radio.rb +33 -0
  119. data/{lib/wee/examples → examples/demo}/window.rb +15 -10
  120. data/examples/hw.rb +3 -4
  121. data/{lib/wee/components → examples}/pager.rb +14 -14
  122. data/lib/wee.rb +48 -25
  123. data/lib/wee/application.rb +69 -131
  124. data/lib/wee/call_answer.rb +118 -0
  125. data/lib/wee/callback.rb +88 -0
  126. data/lib/wee/component.rb +141 -0
  127. data/lib/wee/decoration.rb +242 -0
  128. data/lib/wee/html_brushes.rb +725 -0
  129. data/lib/wee/html_canvas.rb +241 -0
  130. data/lib/wee/html_document.rb +45 -0
  131. data/lib/wee/html_writer.rb +71 -0
  132. data/lib/wee/id_generator.rb +70 -0
  133. data/lib/wee/jquery.rb +1 -0
  134. data/lib/wee/jquery/jquery.rb +17 -0
  135. data/lib/wee/jquery/public/jquery-1.3.2.min.js +19 -0
  136. data/lib/wee/jquery/public/wee-jquery.js +19 -0
  137. data/lib/wee/lru_cache.rb +89 -0
  138. data/lib/wee/presenter.rb +43 -0
  139. data/lib/wee/renderer.rb +65 -0
  140. data/lib/wee/request.rb +37 -113
  141. data/lib/wee/response.rb +43 -70
  142. data/lib/wee/session.rb +304 -113
  143. data/lib/wee/state.rb +85 -0
  144. data/test/component_spec.rb +17 -0
  145. data/wee.gemspec +4 -3
  146. metadata +249 -452
  147. data/ChangeLog +0 -657
  148. data/INSTALL +0 -17
  149. data/README +0 -272
  150. data/TODO +0 -142
  151. data/benchmark/Centrino1300/result.2000.counter.action +0 -45
  152. data/benchmark/Centrino1300/result.2000.counter.render +0 -43
  153. data/benchmark/Centrino1300/result.2000.filehandler +0 -43
  154. data/benchmark/Centrino600/result.2000.counter.action +0 -47
  155. data/benchmark/Centrino600/result.2000.counter.render +0 -45
  156. data/benchmark/Centrino600/result.2000.filehandler +0 -43
  157. data/benchmark/Makefile +0 -53
  158. data/benchmark/counter.rb +0 -77
  159. data/benchmark/filehandler.rb +0 -6
  160. data/benchmark/report_req.rb +0 -12
  161. data/bin/wee +0 -100
  162. data/doc/rdoc/classes/ActionView.html +0 -107
  163. data/doc/rdoc/classes/ActionView/Base.html +0 -133
  164. data/doc/rdoc/classes/Cache.html +0 -126
  165. data/doc/rdoc/classes/Cache/StorageCache.html +0 -320
  166. data/doc/rdoc/classes/Cache/Strategy.html +0 -128
  167. data/doc/rdoc/classes/Cache/Strategy/CapacityBounded.html +0 -269
  168. data/doc/rdoc/classes/Cache/Strategy/LFU.html +0 -238
  169. data/doc/rdoc/classes/Cache/Strategy/LRU.html +0 -238
  170. data/doc/rdoc/classes/Cache/Strategy/Unbounded.html +0 -225
  171. data/doc/rdoc/classes/LiteralMethod.html +0 -196
  172. data/doc/rdoc/classes/Main.html +0 -289
  173. data/doc/rdoc/classes/OgApplication.html +0 -126
  174. data/doc/rdoc/classes/OgScaffolder.html +0 -827
  175. data/doc/rdoc/classes/OgScaffolder/Editor.html +0 -565
  176. data/doc/rdoc/classes/OgSession.html +0 -172
  177. data/doc/rdoc/classes/Recipe.html +0 -113
  178. data/doc/rdoc/classes/Wee/AbstractSession.html +0 -502
  179. data/doc/rdoc/classes/Wee/Brush/ActionCallbackMixin.html +0 -148
  180. data/doc/rdoc/classes/Wee/Brush/ActionMixin.html +0 -146
  181. data/doc/rdoc/classes/Wee/Brush/ActionURLCallbackMixin.html +0 -154
  182. data/doc/rdoc/classes/Wee/Brush/AssignMixin.html +0 -141
  183. data/doc/rdoc/classes/Wee/Brush/CallbackMixin.html +0 -141
  184. data/doc/rdoc/classes/Wee/Brush/InputCallbackMixin.html +0 -148
  185. data/doc/rdoc/classes/Wee/Brush/SelectListTag/SelectListCallback.html +0 -158
  186. data/doc/rdoc/classes/Wee/Brush/ToCallback.html +0 -146
  187. data/doc/rdoc/classes/Wee/Callback.html +0 -231
  188. data/doc/rdoc/classes/Wee/CallbackStream.html +0 -227
  189. data/doc/rdoc/classes/Wee/Canvas.html +0 -235
  190. data/doc/rdoc/classes/Wee/CanvasMixin.html +0 -225
  191. data/doc/rdoc/classes/Wee/Component/OnAnswer.html +0 -153
  192. data/doc/rdoc/classes/Wee/ComponentDispatcher.html +0 -289
  193. data/doc/rdoc/classes/Wee/ComponentRunner.html +0 -321
  194. data/doc/rdoc/classes/Wee/ErrorPage.html +0 -175
  195. data/doc/rdoc/classes/Wee/Examples.html +0 -114
  196. data/doc/rdoc/classes/Wee/Examples/Calculator.html +0 -319
  197. data/doc/rdoc/classes/Wee/Examples/Counter.html +0 -289
  198. data/doc/rdoc/classes/Wee/Examples/EditableCounter.html +0 -210
  199. data/doc/rdoc/classes/Wee/Examples/Window.html +0 -346
  200. data/doc/rdoc/classes/Wee/FastCGIAdaptor.html +0 -227
  201. data/doc/rdoc/classes/Wee/Helper.html +0 -148
  202. data/doc/rdoc/classes/Wee/HtmlCanvasRenderer.html +0 -1230
  203. data/doc/rdoc/classes/Wee/LiteralMethodCallback.html +0 -198
  204. data/doc/rdoc/classes/Wee/LoginDecoration.html +0 -261
  205. data/doc/rdoc/classes/Wee/Md5IdGenerator.html +0 -181
  206. data/doc/rdoc/classes/Wee/MessageBox.html +0 -180
  207. data/doc/rdoc/classes/Wee/MethodCallback.html +0 -193
  208. data/doc/rdoc/classes/Wee/Nitro.html +0 -114
  209. data/doc/rdoc/classes/Wee/Nitro/ControllerClassMixin.html +0 -192
  210. data/doc/rdoc/classes/Wee/Nitro/ControllerMixin.html +0 -345
  211. data/doc/rdoc/classes/Wee/Nitro/FormTag.html +0 -155
  212. data/doc/rdoc/classes/Wee/Nitro/HtmlCanvasRenderer.html +0 -178
  213. data/doc/rdoc/classes/Wee/Page.html +0 -115
  214. data/doc/rdoc/classes/Wee/PagelessApplication.html +0 -154
  215. data/doc/rdoc/classes/Wee/PagelessComponentDriver.html +0 -296
  216. data/doc/rdoc/classes/Wee/PagelessRequest.html +0 -208
  217. data/doc/rdoc/classes/Wee/PagelessSession.html +0 -359
  218. data/doc/rdoc/classes/Wee/Pager.html +0 -534
  219. data/doc/rdoc/classes/Wee/Rails.html +0 -114
  220. data/doc/rdoc/classes/Wee/Rails/ControllerClassMixin.html +0 -192
  221. data/doc/rdoc/classes/Wee/Rails/ControllerMixin.html +0 -342
  222. data/doc/rdoc/classes/Wee/Rails/FormTag.html +0 -155
  223. data/doc/rdoc/classes/Wee/Rails/HtmlCanvasRenderer.html +0 -177
  224. data/doc/rdoc/classes/Wee/RenderingContext.html +0 -283
  225. data/doc/rdoc/classes/Wee/RequestHandler.html +0 -341
  226. data/doc/rdoc/classes/Wee/Snapshot.html +0 -211
  227. data/doc/rdoc/classes/Wee/StateRegistry.html +0 -434
  228. data/doc/rdoc/classes/Wee/StateRegistry/Snapshot.html +0 -320
  229. data/doc/rdoc/classes/Wee/StateRegistry/WithObject.html +0 -153
  230. data/doc/rdoc/classes/Wee/Utils.html +0 -300
  231. data/doc/rdoc/classes/Wee/ValueHolder.html +0 -220
  232. data/doc/rdoc/classes/Wee/WEBrickAdaptor.html +0 -368
  233. data/doc/rdoc/files/INSTALL.html +0 -130
  234. data/doc/rdoc/files/README.html +0 -471
  235. data/doc/rdoc/files/lib/wee/adaptors/fastcgi_rb.html +0 -108
  236. data/doc/rdoc/files/lib/wee/adaptors/nitro_rb.html +0 -101
  237. data/doc/rdoc/files/lib/wee/adaptors/rails_rb.html +0 -101
  238. data/doc/rdoc/files/lib/wee/adaptors/webrick_rb.html +0 -108
  239. data/doc/rdoc/files/lib/wee/component_ext_rb.html +0 -101
  240. data/doc/rdoc/files/lib/wee/components/component_dispatcher_rb.html +0 -108
  241. data/doc/rdoc/files/lib/wee/components/form_decoration_rb.html +0 -101
  242. data/doc/rdoc/files/lib/wee/components/login_decoration_rb.html +0 -101
  243. data/doc/rdoc/files/lib/wee/components/messagebox_rb.html +0 -101
  244. data/doc/rdoc/files/lib/wee/components/page_decoration_rb.html +0 -101
  245. data/doc/rdoc/files/lib/wee/components/pager_rb.html +0 -101
  246. data/doc/rdoc/files/lib/wee/components/wrapper_decoration_rb.html +0 -101
  247. data/doc/rdoc/files/lib/wee/components_rb.html +0 -114
  248. data/doc/rdoc/files/lib/wee/context_rb.html +0 -101
  249. data/doc/rdoc/files/lib/wee/continuation/core/component_rb.html +0 -101
  250. data/doc/rdoc/files/lib/wee/continuation/session_rb.html +0 -108
  251. data/doc/rdoc/files/lib/wee/continuation_rb.html +0 -116
  252. data/doc/rdoc/files/lib/wee/core/callback_rb.html +0 -115
  253. data/doc/rdoc/files/lib/wee/core/component_rb.html +0 -108
  254. data/doc/rdoc/files/lib/wee/core/componentrunner_rb.html +0 -110
  255. data/doc/rdoc/files/lib/wee/core/context_rb.html +0 -101
  256. data/doc/rdoc/files/lib/wee/core/decoration_rb.html +0 -133
  257. data/doc/rdoc/files/lib/wee/core/idgen_rb.html +0 -101
  258. data/doc/rdoc/files/lib/wee/core/presenter_rb.html +0 -112
  259. data/doc/rdoc/files/lib/wee/core/renderer_rb.html +0 -107
  260. data/doc/rdoc/files/lib/wee/core/snapshot_rb.html +0 -113
  261. data/doc/rdoc/files/lib/wee/core/valueholder_rb.html +0 -110
  262. data/doc/rdoc/files/lib/wee/core_ext_rb.html +0 -101
  263. data/doc/rdoc/files/lib/wee/core_rb.html +0 -124
  264. data/doc/rdoc/files/lib/wee/databases/og/application_rb.html +0 -101
  265. data/doc/rdoc/files/lib/wee/databases/og/old_scaffolder_rb.html +0 -101
  266. data/doc/rdoc/files/lib/wee/databases/og/scaffolder_rb.html +0 -115
  267. data/doc/rdoc/files/lib/wee/databases/og/session_rb.html +0 -101
  268. data/doc/rdoc/files/lib/wee/databases/og_rb.html +0 -111
  269. data/doc/rdoc/files/lib/wee/examples/calculator_rb.html +0 -107
  270. data/doc/rdoc/files/lib/wee/examples/counter_rb.html +0 -101
  271. data/doc/rdoc/files/lib/wee/examples/editable_counter_rb.html +0 -114
  272. data/doc/rdoc/files/lib/wee/examples/window_rb.html +0 -101
  273. data/doc/rdoc/files/lib/wee/idgen/md5_rb.html +0 -115
  274. data/doc/rdoc/files/lib/wee/idgen/simple_rb.html +0 -107
  275. data/doc/rdoc/files/lib/wee/pageless/application_rb.html +0 -108
  276. data/doc/rdoc/files/lib/wee/pageless/request_rb.html +0 -101
  277. data/doc/rdoc/files/lib/wee/pageless/session_rb.html +0 -109
  278. data/doc/rdoc/files/lib/wee/pageless_rb.html +0 -110
  279. data/doc/rdoc/files/lib/wee/renderer/html/brushes_rb.html +0 -101
  280. data/doc/rdoc/files/lib/wee/renderer/html/canvas_rb.html +0 -108
  281. data/doc/rdoc/files/lib/wee/renderer/html/writer_rb.html +0 -108
  282. data/doc/rdoc/files/lib/wee/rendering/html/brushes_rb.html +0 -101
  283. data/doc/rdoc/files/lib/wee/rendering/html/canvas_rb.html +0 -101
  284. data/doc/rdoc/files/lib/wee/rendering/html/writer_rb.html +0 -108
  285. data/doc/rdoc/files/lib/wee/requesthandler_rb.html +0 -101
  286. data/doc/rdoc/files/lib/wee/skeleton/og/components/main_rb.html +0 -101
  287. data/doc/rdoc/files/lib/wee/skeleton/og/conf/db_rb.html +0 -114
  288. data/doc/rdoc/files/lib/wee/skeleton/og/models/recipe_rb.html +0 -101
  289. data/doc/rdoc/files/lib/wee/skeleton/og/run_rb.html +0 -115
  290. data/doc/rdoc/files/lib/wee/skeleton/simple/components/main_rb.html +0 -101
  291. data/doc/rdoc/files/lib/wee/skeleton/simple/run_rb.html +0 -111
  292. data/doc/rdoc/files/lib/wee/snapshot_ext_rb.html +0 -101
  293. data/doc/rdoc/files/lib/wee/snapshot_rb.html +0 -107
  294. data/doc/rdoc/files/lib/wee/stuff_rb.html +0 -144
  295. data/doc/rdoc/files/lib/wee/template_rb.html +0 -101
  296. data/doc/rdoc/files/lib/wee/utils/autoreload_rb.html +0 -101
  297. data/doc/rdoc/files/lib/wee/utils/cache_rb.html +0 -108
  298. data/doc/rdoc/files/lib/wee/utils/helper_rb.html +0 -101
  299. data/doc/rdoc/files/lib/wee/utils_rb.html +0 -110
  300. data/examples/ajax/ajax.js +0 -444
  301. data/examples/ajax/ajax.rb +0 -31
  302. data/examples/cc.rb +0 -74
  303. data/examples/dispatcher.rb +0 -37
  304. data/examples/draw.rb +0 -94
  305. data/examples/live-update.rb +0 -45
  306. data/examples/nitro/run.rb +0 -42
  307. data/examples/og-test.rb +0 -60
  308. data/examples/radio.rb +0 -44
  309. data/examples/test.rb +0 -39
  310. data/install.rb +0 -14
  311. data/lib/cache/cache.rb +0 -167
  312. data/lib/wee/abstractsession.rb +0 -96
  313. data/lib/wee/adaptors/fastcgi.rb +0 -76
  314. data/lib/wee/adaptors/nitro.rb +0 -155
  315. data/lib/wee/adaptors/rails.rb +0 -154
  316. data/lib/wee/adaptors/webrick.rb +0 -89
  317. data/lib/wee/components.rb +0 -7
  318. data/lib/wee/components/component_dispatcher.rb +0 -46
  319. data/lib/wee/components/form_decoration.rb +0 -7
  320. data/lib/wee/components/login_decoration.rb +0 -35
  321. data/lib/wee/components/page_decoration.rb +0 -14
  322. data/lib/wee/components/wrapper_decoration.rb +0 -7
  323. data/lib/wee/continuation.rb +0 -5
  324. data/lib/wee/continuation/core/component.rb +0 -56
  325. data/lib/wee/continuation/session.rb +0 -64
  326. data/lib/wee/core.rb +0 -16
  327. data/lib/wee/core/callback.rb +0 -121
  328. data/lib/wee/core/component.rb +0 -356
  329. data/lib/wee/core/componentrunner.rb +0 -73
  330. data/lib/wee/core/context.rb +0 -27
  331. data/lib/wee/core/decoration.rb +0 -138
  332. data/lib/wee/core/idgen.rb +0 -5
  333. data/lib/wee/core/page.rb +0 -1
  334. data/lib/wee/core/presenter.rb +0 -100
  335. data/lib/wee/core/renderer.rb +0 -23
  336. data/lib/wee/core/snapshot.rb +0 -21
  337. data/lib/wee/core/valueholder.rb +0 -19
  338. data/lib/wee/core_ext.rb +0 -122
  339. data/lib/wee/databases/og.rb +0 -4
  340. data/lib/wee/databases/og/application.rb +0 -3
  341. data/lib/wee/databases/og/old_scaffolder.rb +0 -98
  342. data/lib/wee/databases/og/scaffolder.rb +0 -255
  343. data/lib/wee/databases/og/session.rb +0 -9
  344. data/lib/wee/examples/calculator.rb +0 -70
  345. data/lib/wee/examples/counter.rb +0 -33
  346. data/lib/wee/idgen/md5.rb +0 -21
  347. data/lib/wee/idgen/sequential.rb +0 -11
  348. data/lib/wee/pageless.rb +0 -3
  349. data/lib/wee/pageless/application.rb +0 -13
  350. data/lib/wee/pageless/request.rb +0 -27
  351. data/lib/wee/pageless/session.rb +0 -74
  352. data/lib/wee/renderer/html/brushes.rb +0 -667
  353. data/lib/wee/renderer/html/canvas.rb +0 -265
  354. data/lib/wee/renderer/html/writer.rb +0 -80
  355. data/lib/wee/requesthandler.rb +0 -81
  356. data/lib/wee/skeleton/og/README +0 -38
  357. data/lib/wee/skeleton/og/components/main.rb +0 -20
  358. data/lib/wee/skeleton/og/conf/db.rb +0 -8
  359. data/lib/wee/skeleton/og/models/recipe.rb +0 -5
  360. data/lib/wee/skeleton/og/run.rb +0 -23
  361. data/lib/wee/skeleton/simple/README +0 -32
  362. data/lib/wee/skeleton/simple/components/main.rb +0 -25
  363. data/lib/wee/skeleton/simple/run.rb +0 -12
  364. data/lib/wee/snapshot_ext.rb +0 -41
  365. data/lib/wee/template.rb +0 -42
  366. data/lib/wee/utils.rb +0 -5
  367. data/lib/wee/utils/autoreload.rb +0 -56
  368. data/lib/wee/utils/cache.rb +0 -7
  369. data/lib/wee/utils/helper.rb +0 -51
@@ -0,0 +1,262 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>Class: Wee::Callbacks [RDoc Documentation]</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
9
+ <script type="text/javascript">
10
+ // <![CDATA[
11
+
12
+ function popupCode( url ) {
13
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
14
+ }
15
+
16
+ function toggleCode( id ) {
17
+ if ( document.getElementById )
18
+ elem = document.getElementById( id );
19
+ else if ( document.all )
20
+ elem = eval( "document.all." + id );
21
+ else
22
+ return false;
23
+
24
+ elemStyle = elem.style;
25
+
26
+ if ( elemStyle.display != "block" ) {
27
+ elemStyle.display = "block"
28
+ } else {
29
+ elemStyle.display = "none"
30
+ }
31
+
32
+ return true;
33
+ }
34
+
35
+ // Make codeblocks hidden by default
36
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
+
38
+ // ]]>
39
+ </script>
40
+
41
+ </head>
42
+ <body>
43
+
44
+
45
+ <div id="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">Wee::Callbacks</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../files/lib/wee/callback_rb.html">
57
+
58
+ lib/wee/callback.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+ </td>
66
+ </tr>
67
+
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+
73
+ <a href="../Object.html">
74
+
75
+ Object
76
+
77
+ </a>
78
+
79
+ </td>
80
+ </tr>
81
+
82
+ </table>
83
+ </div>
84
+ <!-- banner header -->
85
+
86
+ <div id="bodyContent">
87
+
88
+ <div id="contextContent">
89
+
90
+ </div>
91
+
92
+
93
+ <div id="method-list">
94
+ <h3 class="section-bar">Methods</h3>
95
+
96
+ <div class="name-list">
97
+
98
+ <a href="#M000221">new</a>&nbsp;&nbsp;
99
+
100
+ <a href="#M000222">unregister</a>&nbsp;&nbsp;
101
+
102
+ <a href="#M000223">with_triggered</a>&nbsp;&nbsp;
103
+
104
+ </div>
105
+ </div>
106
+
107
+ </div>
108
+
109
+ <!-- if includes -->
110
+
111
+ <div id="section">
112
+
113
+
114
+
115
+ <div id="attribute-list">
116
+ <h3 class="section-bar">Attributes</h3>
117
+
118
+ <div class="name-list">
119
+ <table>
120
+
121
+ <tr class="top-aligned-row context-row">
122
+ <td class="context-item-name">action_callbacks</td>
123
+
124
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
125
+
126
+ <td class="context-item-desc"></td>
127
+ </tr>
128
+
129
+ <tr class="top-aligned-row context-row">
130
+ <td class="context-item-name">input_callbacks</td>
131
+
132
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
133
+
134
+ <td class="context-item-desc"></td>
135
+ </tr>
136
+
137
+ </table>
138
+ </div>
139
+ </div>
140
+
141
+
142
+ <!-- if method_list -->
143
+
144
+ <div id="methods">
145
+
146
+ <h3 class="section-bar">Public Class methods</h3>
147
+
148
+
149
+ <div id="method-M000221" class="method-detail">
150
+ <a name="M000221"></a>
151
+
152
+ <div class="method-heading">
153
+
154
+ <a href="#M000221" class="method-signature">
155
+
156
+ <span class="method-name">new</span><span class="method-args">()</span>
157
+
158
+ </a>
159
+
160
+ </div>
161
+
162
+ <div class="method-description">
163
+
164
+ <p><a class="source-toggle" href="#"
165
+ onclick="toggleCode('M000221-source');return false;">[Source]</a></p>
166
+ <div class="method-source-code" id="M000221-source">
167
+ <pre>
168
+ <span class="ruby-comment cmt"># File lib/wee/callback.rb, line 67</span>
169
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
170
+ <span class="ruby-ivar">@input_callbacks</span> = <span class="ruby-constant">CallbackRegistry</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;&quot;</span>)
171
+ <span class="ruby-ivar">@action_callbacks</span> = <span class="ruby-constant">CallbackRegistry</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">&quot;a&quot;</span>)
172
+ <span class="ruby-keyword kw">end</span>
173
+ </pre>
174
+ </div>
175
+
176
+ </div>
177
+ </div>
178
+
179
+
180
+ <h3 class="section-bar">Public Instance methods</h3>
181
+
182
+
183
+ <div id="method-M000222" class="method-detail">
184
+ <a name="M000222"></a>
185
+
186
+ <div class="method-heading">
187
+
188
+ <a href="#M000222" class="method-signature">
189
+
190
+ <span class="method-name">unregister</span><span class="method-args">(object)</span>
191
+
192
+ </a>
193
+
194
+ </div>
195
+
196
+ <div class="method-description">
197
+
198
+ <p><a class="source-toggle" href="#"
199
+ onclick="toggleCode('M000222-source');return false;">[Source]</a></p>
200
+ <div class="method-source-code" id="M000222-source">
201
+ <pre>
202
+ <span class="ruby-comment cmt"># File lib/wee/callback.rb, line 72</span>
203
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unregister</span>(<span class="ruby-identifier">object</span>)
204
+ <span class="ruby-ivar">@input_callbacks</span>.<span class="ruby-identifier">unregister</span>(<span class="ruby-identifier">object</span>)
205
+ <span class="ruby-ivar">@action_callbacks</span>.<span class="ruby-identifier">unregister</span>(<span class="ruby-identifier">object</span>)
206
+ <span class="ruby-keyword kw">end</span>
207
+ </pre>
208
+ </div>
209
+
210
+ </div>
211
+ </div>
212
+
213
+
214
+ <div id="method-M000223" class="method-detail">
215
+ <a name="M000223"></a>
216
+
217
+ <div class="method-heading">
218
+
219
+ <a href="#M000223" class="method-signature">
220
+
221
+ <span class="method-name">with_triggered</span><span class="method-args">(ids_and_values) {|| ...}</span>
222
+
223
+ </a>
224
+
225
+ </div>
226
+
227
+ <div class="method-description">
228
+
229
+ <p><a class="source-toggle" href="#"
230
+ onclick="toggleCode('M000223-source');return false;">[Source]</a></p>
231
+ <div class="method-source-code" id="M000223-source">
232
+ <pre>
233
+ <span class="ruby-comment cmt"># File lib/wee/callback.rb, line 77</span>
234
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">with_triggered</span>(<span class="ruby-identifier">ids_and_values</span>)
235
+ <span class="ruby-ivar">@input_callbacks</span>.<span class="ruby-identifier">prepare_triggered</span>(<span class="ruby-identifier">ids_and_values</span>)
236
+ <span class="ruby-ivar">@action_callbacks</span>.<span class="ruby-identifier">prepare_triggered</span>(<span class="ruby-identifier">ids_and_values</span>)
237
+ <span class="ruby-keyword kw">yield</span>
238
+ <span class="ruby-keyword kw">ensure</span>
239
+ <span class="ruby-ivar">@input_callbacks</span>.<span class="ruby-identifier">reset_triggered</span>
240
+ <span class="ruby-ivar">@action_callbacks</span>.<span class="ruby-identifier">reset_triggered</span>
241
+ <span class="ruby-keyword kw">end</span>
242
+ </pre>
243
+ </div>
244
+
245
+ </div>
246
+ </div>
247
+
248
+
249
+
250
+ </div>
251
+
252
+
253
+
254
+
255
+ </div>
256
+
257
+ <div id="validator-badges">
258
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
259
+ </div>
260
+
261
+ </body>
262
+ </html>
@@ -1,12 +1,9 @@
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
-
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
6
3
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
4
  <head>
8
- <title>Class: Wee::Component</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
5
+ <title>Class: Wee::Component [RDoc Documentation]</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
7
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
8
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
9
  <script type="text/javascript">
@@ -25,7 +22,7 @@
25
22
  return false;
26
23
 
27
24
  elemStyle = elem.style;
28
-
25
+
29
26
  if ( elemStyle.display != "block" ) {
30
27
  elemStyle.display = "block"
31
28
  } else {
@@ -34,10 +31,10 @@
34
31
 
35
32
  return true;
36
33
  }
37
-
34
+
38
35
  // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
36
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
+
41
38
  // ]]>
42
39
  </script>
43
40
 
@@ -45,7 +42,6 @@
45
42
  <body>
46
43
 
47
44
 
48
-
49
45
  <div id="classHeader">
50
46
  <table class="header-table">
51
47
  <tr class="top-aligned-row">
@@ -55,351 +51,286 @@
55
51
  <tr class="top-aligned-row">
56
52
  <td><strong>In:</strong></td>
57
53
  <td>
58
- <a href="../../files/lib/wee/core/component_rb.html">
59
- lib/wee/core/component.rb
60
- </a>
61
- <br />
62
- <a href="../../files/lib/wee/continuation/core/component_rb.html">
63
- lib/wee/continuation/core/component.rb
54
+
55
+
56
+ <a href="../../files/lib/wee/component_rb.html">
57
+
58
+ lib/wee/component.rb
59
+
64
60
  </a>
61
+
62
+
65
63
  <br />
64
+
66
65
  </td>
67
66
  </tr>
68
67
 
68
+
69
69
  <tr class="top-aligned-row">
70
70
  <td><strong>Parent:</strong></td>
71
71
  <td>
72
+
72
73
  <a href="Presenter.html">
74
+
73
75
  Wee::Presenter
76
+
74
77
  </a>
78
+
75
79
  </td>
76
80
  </tr>
81
+
77
82
  </table>
78
83
  </div>
79
84
  <!-- banner header -->
80
85
 
81
86
  <div id="bodyContent">
82
87
 
83
-
84
-
85
88
  <div id="contextContent">
86
89
 
87
90
  <div id="description">
88
91
  <p>
89
92
  The base class of all components. You should at least overwrite method <a
90
- href="Component.html#M000326">render</a> in your own subclasses.
93
+ href="Component.html#M000045">render</a> in your own subclasses.
91
94
  </p>
92
95
 
93
96
  </div>
94
97
 
95
-
96
- <div id="contents-list">
97
- <h3 class="section-bar">Contents</h3>
98
- <ul>
99
- <li><a href="#SEC00080">Render</a></li>
100
- <li><a href="#SEC00081">Callback</a></li>
101
- <li><a href="#SEC00082">Init</a></li>
102
- <li><a href="#SEC00083">Children/Composite</a></li>
103
- <li><a href="#SEC00084">Decoration</a></li>
104
- <li><a href="#SEC00085">Backtrack</a></li>
105
- <li><a href="#SEC00086">Call/Answer</a></li>
106
- <li><a href="#SEC00161">Call/Answer</a></li>
107
- </ul>
108
98
  </div>
109
99
 
100
+
110
101
  <div id="method-list">
111
102
  <h3 class="section-bar">Methods</h3>
112
103
 
113
104
  <div class="name-list">
114
- <a href="#M000331">add_child</a>&nbsp;&nbsp;
115
- <a href="#M000335">add_decoration</a>&nbsp;&nbsp;
116
- <a href="#M000341">answer</a>&nbsp;&nbsp;
117
- <a href="#M000339">backtrack_state</a>&nbsp;&nbsp;
118
- <a href="#M000338">backtrack_state_chain</a>&nbsp;&nbsp;
119
- <a href="#M000340">call</a>&nbsp;&nbsp;
120
- <a href="#M000342">call</a>&nbsp;&nbsp;
121
- <a href="#M000330">children</a>&nbsp;&nbsp;
122
- <a href="#M000332">decoration</a>&nbsp;&nbsp;
123
- <a href="#M000333">decoration=</a>&nbsp;&nbsp;
124
- <a href="#M000325">do_render_chain</a>&nbsp;&nbsp;
125
- <a href="#M000334">each_decoration</a>&nbsp;&nbsp;
126
- <a href="#M000329">initialize</a>&nbsp;&nbsp;
127
- <a href="#M000328">process_callbacks</a>&nbsp;&nbsp;
128
- <a href="#M000327">process_callbacks_chain</a>&nbsp;&nbsp;
129
- <a href="#M000336">remove_decoration</a>&nbsp;&nbsp;
130
- <a href="#M000337">remove_decoration_if</a>&nbsp;&nbsp;
131
- <a href="#M000326">render</a>&nbsp;&nbsp;
132
- </div>
133
- </div>
134
105
 
135
- </div>
106
+ <a href="#M000051">add_child</a>&nbsp;&nbsp;
136
107
 
108
+ <a href="#M000047">backtrack</a>&nbsp;&nbsp;
137
109
 
138
- <!-- if includes -->
110
+ <a href="#M000049">backtrack_children</a>&nbsp;&nbsp;
139
111
 
140
- <div id="section">
112
+ <a href="#M000048">backtrack_decoration</a>&nbsp;&nbsp;
141
113
 
114
+ <a href="#M000050">each_child</a>&nbsp;&nbsp;
142
115
 
116
+ <a href="#M000044">initialize</a>&nbsp;&nbsp;
143
117
 
118
+ <a href="#M000046">process_callbacks</a>&nbsp;&nbsp;
144
119
 
120
+ <a href="#M000045">render</a>&nbsp;&nbsp;
145
121
 
146
-
122
+ </div>
123
+ </div>
147
124
 
125
+ </div>
148
126
 
149
- <!-- if method_list -->
150
- <div id="section">
151
- <h2 class="section-title"><a name="SEC00080">Render</a></h2>
152
- <div class="section-comment">
153
-
154
- </div>
127
+ <!-- if includes -->
128
+
129
+ <div id="includes">
130
+ <h3 class="section-bar">Included Modules</h3>
155
131
 
132
+ <div id="includes-list">
156
133
 
134
+ <span class="include-name"><a href="DecorationMixin.html">Wee::DecorationMixin</a></span>
157
135
 
136
+ <span class="include-name"><a href="CallAnswerMixin.html">Wee::CallAnswerMixin</a></span>
137
+
138
+ </div>
139
+ </div>
140
+
141
+ <div id="section">
158
142
 
159
143
 
160
-
161
144
 
162
145
 
163
146
  <!-- if method_list -->
147
+
164
148
  <div id="methods">
149
+
165
150
  <h3 class="section-bar">Public Instance methods</h3>
166
151
 
167
- <div id="method-M000325" class="method-detail">
168
- <a name="M000325"></a>
152
+
153
+ <div id="method-M000047" class="method-detail">
154
+ <a name="M000047"></a>
169
155
 
170
156
  <div class="method-heading">
171
- <a href="#M000325" class="method-signature">
172
- <span class="method-name">do_render_chain</span><span class="method-args">(rendering_context)</span>
173
- </a>
174
- </div>
175
-
176
- <div class="method-description">
177
- <p>
178
- Starts rendering the decoration chain by calling method <a
179
- href="Presenter.html#M000375">Presenter#do_render</a> for the first
180
- decoration of the component, or calling <em>do_render</em> for the
181
- component itself if no decorations were specified.
182
- </p>
183
- <dl>
184
- <dt><tt>rendering_context</tt></dt><dd>An object of class <a href="RenderingContext.html">RenderingContext</a>
185
157
 
186
- </dd>
187
- </dl>
188
- <p><a class="source-toggle" href="#"
189
- onclick="toggleCode('M000325-source');return false;">[Source]</a></p>
190
- <div class="method-source-code" id="M000325-source">
191
- <pre>
192
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 19</span>
193
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">do_render_chain</span>(<span class="ruby-identifier">rendering_context</span>)
194
- <span class="ruby-identifier">decoration</span>.<span class="ruby-identifier">do_render</span>(<span class="ruby-identifier">rendering_context</span>)
195
- <span class="ruby-keyword kw">end</span>
196
- </pre>
197
- </div>
198
- </div>
199
- </div>
158
+ <a href="#M000047" class="method-signature">
200
159
 
201
- <div id="method-M000326" class="method-detail">
202
- <a name="M000326"></a>
160
+ <span class="method-name">backtrack</span><span class="method-args">(state)</span>
203
161
 
204
- <div class="method-heading">
205
- <a href="#M000326" class="method-signature">
206
- <span class="method-name">render</span><span class="method-args">()</span>
207
162
  </a>
163
+
208
164
  </div>
209
-
165
+
210
166
  <div class="method-description">
167
+
211
168
  <p>
212
- This method renders the content of this component.
169
+ Take snapshots of objects that should correctly be backtracked.
213
170
  </p>
214
171
  <p>
215
- <b>OVERWRITE</b> this method in your own component class to implement the
216
- view. By default this method does nothing!
172
+ Backtracking means that you can go back in time of the components&#8217;
173
+ state. Therefore it is neccessary to take snapshots of those objects that
174
+ want to participate in backtracking. Taking snapshots of the whole
175
+ component tree would be too expensive and unflexible. Note that methods
176
+ <em>take_snapshot</em> and <em>restore_snapshot</em> are called for those
177
+ objects to take the snapshot (they behave like <em>marshal_dump</em> and
178
+ <em>marshal_load</em>). Overwrite them if you want to define special
179
+ behaviour.
217
180
  </p>
218
181
  <p>
219
- Use the current renderer as returned by renderer or it&#8217;s short-cut r.
182
+ For example if you dynamically add children to your component, you might
183
+ want to backtrack the children array:
220
184
  </p>
221
- <p><a class="source-toggle" href="#"
222
- onclick="toggleCode('M000326-source');return false;">[Source]</a></p>
223
- <div class="method-source-code" id="M000326-source">
224
185
  <pre>
225
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 30</span>
226
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>
227
- <span class="ruby-keyword kw">end</span>
186
+ def backtrack(state)
187
+ super
188
+ backtrack_children(state)
189
+ end
228
190
  </pre>
229
- </div>
230
- </div>
231
- </div>
232
-
233
-
234
- </div>
235
- <div id="section">
236
- <h2 class="section-title"><a name="SEC00081">Callback</a></h2>
237
- <div class="section-comment">
238
-
239
- </div>
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
-
248
- <!-- if method_list -->
249
- <div id="methods">
250
- <h3 class="section-bar">Public Instance methods</h3>
251
-
252
- <div id="method-M000328" class="method-detail">
253
- <a name="M000328"></a>
254
-
255
- <div class="method-heading">
256
- <a href="#M000328" class="method-signature">
257
- <span class="method-name">process_callbacks</span><span class="method-args">(&amp;block)</span>
258
- </a>
259
- </div>
260
-
261
- <div class="method-description">
262
- <p>
263
- Process and invoke all callbacks specified for this component and all of
264
- it&#8217;s child components.
191
+ <p>
192
+ By default only the decoration chain is backtracked. This is required to
193
+ correctly backtrack called components. To disable backtracking of the
194
+ decorations, change method <a
195
+ href="Component.html#M000048">Component#backtrack_decoration</a> to a
196
+ no-operation:
265
197
  </p>
198
+ <pre>
199
+ def backtrack_decoration(state)
200
+ # nothing here
201
+ end
202
+ </pre>
266
203
  <dl>
267
- <dt><tt>block</tt></dt><dd>Specifies the action to be taken (e.g. whether to invoke input or action
268
- callbacks).
204
+ <dt><tt>state</tt></dt><dd>An object of class <a href="State.html">State</a>
269
205
 
270
206
  </dd>
271
207
  </dl>
208
+
272
209
  <p><a class="source-toggle" href="#"
273
- onclick="toggleCode('M000328-source');return false;">[Source]</a></p>
274
- <div class="method-source-code" id="M000328-source">
210
+ onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
211
+ <div class="method-source-code" id="M000047-source">
275
212
  <pre>
276
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 58</span>
277
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_callbacks</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
278
- <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-keyword kw">self</span>)
279
-
280
- <span class="ruby-comment cmt"># process callbacks of all children</span>
281
- <span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
282
- <span class="ruby-identifier">child</span>.<span class="ruby-identifier">process_callbacks_chain</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
213
+ <span class="ruby-comment cmt"># File lib/wee/component.rb, line 88</span>
214
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backtrack</span>(<span class="ruby-identifier">state</span>)
215
+ <span class="ruby-identifier">backtrack_decoration</span>(<span class="ruby-identifier">state</span>)
216
+ <span class="ruby-identifier">each_child</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
217
+ <span class="ruby-identifier">child</span>.<span class="ruby-identifier">decoration</span>.<span class="ruby-identifier">backtrack</span>(<span class="ruby-identifier">state</span>)
218
+ <span class="ruby-keyword kw">end</span>
283
219
  <span class="ruby-keyword kw">end</span>
284
- <span class="ruby-keyword kw">end</span>
285
220
  </pre>
286
221
  </div>
222
+
287
223
  </div>
288
224
  </div>
289
225
 
290
- <div id="method-M000327" class="method-detail">
291
- <a name="M000327"></a>
226
+
227
+ <div id="method-M000046" class="method-detail">
228
+ <a name="M000046"></a>
292
229
 
293
230
  <div class="method-heading">
294
- <a href="#M000327" class="method-signature">
295
- <span class="method-name">process_callbacks_chain</span><span class="method-args">(&amp;block)</span>
231
+
232
+ <a href="#M000046" class="method-signature">
233
+
234
+ <span class="method-name">process_callbacks</span><span class="method-args">(callbacks)</span>
235
+
296
236
  </a>
237
+
297
238
  </div>
298
-
239
+
299
240
  <div class="method-description">
241
+
300
242
  <p>
301
- Starts processing the callbacks for the decoration chain by invoking method
302
- <a href="Component.html#M000328">process_callbacks</a> of the first
303
- decoration or the component itself if no decorations were specified.
243
+ Process and invoke all callbacks specified for this component and all of
244
+ it&#8217;s child components.
304
245
  </p>
305
- <dl>
306
- <dt><tt>block</tt></dt><dd>Specifies the action to be taken (e.g. whether to invoke input or action
307
- callbacks).
308
246
 
309
- </dd>
310
- </dl>
311
247
  <p><a class="source-toggle" href="#"
312
- onclick="toggleCode('M000327-source');return false;">[Source]</a></p>
313
- <div class="method-source-code" id="M000327-source">
248
+ onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
249
+ <div class="method-source-code" id="M000046-source">
314
250
  <pre>
315
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 47</span>
316
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_callbacks_chain</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
317
- <span class="ruby-identifier">decoration</span>.<span class="ruby-identifier">process_callbacks</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
318
- <span class="ruby-keyword kw">end</span>
251
+ <span class="ruby-comment cmt"># File lib/wee/component.rb, line 40</span>
252
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_callbacks</span>(<span class="ruby-identifier">callbacks</span>)
253
+ <span class="ruby-identifier">callbacks</span>.<span class="ruby-identifier">input_callbacks</span>.<span class="ruby-identifier">each_triggered</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">callback</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
254
+ <span class="ruby-identifier">callback</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">value</span>)
255
+ <span class="ruby-keyword kw">end</span>
256
+
257
+ <span class="ruby-comment cmt"># process callbacks of all children</span>
258
+ <span class="ruby-identifier">each_child</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
259
+ <span class="ruby-identifier">child</span>.<span class="ruby-identifier">decoration</span>.<span class="ruby-identifier">process_callbacks</span>(<span class="ruby-identifier">callbacks</span>)
260
+ <span class="ruby-keyword kw">end</span>
261
+
262
+ <span class="ruby-identifier">callbacks</span>.<span class="ruby-identifier">action_callbacks</span>.<span class="ruby-identifier">each_triggered</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">callback</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
263
+ <span class="ruby-identifier">callback</span>.<span class="ruby-identifier">call</span>
264
+ <span class="ruby-identifier">session</span>.<span class="ruby-identifier">send_response</span>(<span class="ruby-keyword kw">nil</span>) <span class="ruby-comment cmt"># prematurely end callback processing</span>
265
+ <span class="ruby-keyword kw">end</span>
266
+ <span class="ruby-keyword kw">end</span>
319
267
  </pre>
320
268
  </div>
269
+
321
270
  </div>
322
271
  </div>
323
272
 
324
273
 
325
- </div>
326
- <div id="section">
327
- <h2 class="section-title"><a name="SEC00082">Init</a></h2>
328
- <div class="section-comment">
329
-
330
- </div>
331
-
332
-
333
-
274
+ <div id="method-M000045" class="method-detail">
275
+ <a name="M000045"></a>
334
276
 
277
+ <div class="method-heading">
335
278
 
336
-
279
+ <a href="#M000045" class="method-signature">
337
280
 
281
+ <span class="method-name">render</span><span class="method-args">(r)</span>
338
282
 
339
- <!-- if method_list -->
340
- <div id="methods">
341
- <h3 class="section-bar">Protected Instance methods</h3>
342
-
343
- <div id="method-M000329" class="method-detail">
344
- <a name="M000329"></a>
345
-
346
- <div class="method-heading">
347
- <a href="#M000329" class="method-signature">
348
- <span class="method-name">initialize</span><span class="method-args">()</span>
349
283
  </a>
284
+
350
285
  </div>
351
-
286
+
352
287
  <div class="method-description">
288
+
353
289
  <p>
354
- Initializes a newly created component.
290
+ This method renders the content of the component.
355
291
  </p>
356
292
  <p>
357
- Call this method from your own components&#8217; <em>initialize</em> method
358
- using <tt>super</tt>, before setting up anything else!
293
+ <b>OVERWRITE</b> this method in your own component classes to implement the
294
+ view. By default this method does nothing!
359
295
  </p>
296
+ <dl>
297
+ <dt><tt>r</tt></dt><dd>An instance of class <tt>renderer_class()</tt>
298
+
299
+ </dd>
300
+ </dl>
301
+
360
302
  <p><a class="source-toggle" href="#"
361
- onclick="toggleCode('M000329-source');return false;">[Source]</a></p>
362
- <div class="method-source-code" id="M000329-source">
303
+ onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
304
+ <div class="method-source-code" id="M000045-source">
363
305
  <pre>
364
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 78</span>
365
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>() <span class="ruby-comment cmt"># :notnew:</span>
366
- <span class="ruby-ivar">@__decoration</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">ValueHolder</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
367
- <span class="ruby-ivar">@__children</span> = []
368
- <span class="ruby-keyword kw">end</span>
306
+ <span class="ruby-comment cmt"># File lib/wee/component.rb, line 33</span>
307
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render</span>(<span class="ruby-identifier">r</span>)
308
+ <span class="ruby-keyword kw">end</span>
369
309
  </pre>
370
310
  </div>
311
+
371
312
  </div>
372
313
  </div>
373
314
 
374
315
 
375
- </div>
376
- <div id="section">
377
- <h2 class="section-title"><a name="SEC00083">Children/Composite</a></h2>
378
- <div class="section-comment">
379
-
380
- </div>
381
-
382
-
383
-
384
-
316
+ <h3 class="section-bar">Protected Instance methods</h3>
385
317
 
386
-
387
318
 
319
+ <div id="method-M000051" class="method-detail">
320
+ <a name="M000051"></a>
388
321
 
389
- <!-- if method_list -->
390
- <div id="methods">
391
- <h3 class="section-bar">Protected Instance methods</h3>
322
+ <div class="method-heading">
392
323
 
393
- <div id="method-M000331" class="method-detail">
394
- <a name="M000331"></a>
324
+ <a href="#M000051" class="method-signature">
395
325
 
396
- <div class="method-heading">
397
- <a href="#M000331" class="method-signature">
398
326
  <span class="method-name">add_child</span><span class="method-args">(child)</span>
327
+
399
328
  </a>
329
+
400
330
  </div>
401
-
331
+
402
332
  <div class="method-description">
333
+
403
334
  <p>
404
335
  Add a child to the component. Example:
405
336
  </p>
@@ -417,654 +348,172 @@ initialize), then you should consider to backtrack the children array (of
417
348
  course only if you want backtracking at all):
418
349
  </p>
419
350
  <pre>
420
- def backtrack_state(snapshot)
351
+ def backtrack(state)
421
352
  super
422
- snapshot.add(self.children)
353
+ state.add(self.children)
423
354
  end
424
355
  </pre>
425
- <p><a class="source-toggle" href="#"
426
- onclick="toggleCode('M000331-source');return false;">[Source]</a></p>
427
- <div class="method-source-code" id="M000331-source">
428
- <pre>
429
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 117</span>
430
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_child</span>(<span class="ruby-identifier">child</span>)
431
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">children</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>
432
- <span class="ruby-identifier">child</span>
433
- <span class="ruby-keyword kw">end</span>
434
- </pre>
435
- </div>
436
- </div>
437
- </div>
438
356
 
439
- <div id="method-M000330" class="method-detail">
440
- <a name="M000330"></a>
441
-
442
- <div class="method-heading">
443
- <a href="#M000330" class="method-signature">
444
- <span class="method-name">children</span><span class="method-args">()</span>
445
- </a>
446
- </div>
447
-
448
- <div class="method-description">
449
- <p>
450
- Returns all direct child components collected in an array.
451
- </p>
452
- <p>
453
- You can overwrite this method to return all direct child components of this
454
- component.
455
- </p>
456
357
  <p><a class="source-toggle" href="#"
457
- onclick="toggleCode('M000330-source');return false;">[Source]</a></p>
458
- <div class="method-source-code" id="M000330-source">
358
+ onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
359
+ <div class="method-source-code" id="M000051-source">
459
360
  <pre>
460
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 94</span>
461
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">children</span>
462
- <span class="ruby-ivar">@__children</span>
463
- <span class="ruby-keyword kw">end</span>
361
+ <span class="ruby-comment cmt"># File lib/wee/component.rb, line 131</span>
362
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_child</span>(<span class="ruby-identifier">child</span>)
363
+ (<span class="ruby-ivar">@children</span> <span class="ruby-operator">||=</span> []) <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">child</span>
364
+ <span class="ruby-identifier">child</span>
365
+ <span class="ruby-keyword kw">end</span>
464
366
  </pre>
465
367
  </div>
368
+
466
369
  </div>
467
370
  </div>
468
371
 
469
372
 
470
- </div>
471
- <div id="section">
472
- <h2 class="section-title"><a name="SEC00084">Decoration</a></h2>
473
- <div class="section-comment">
474
-
475
- </div>
476
-
477
-
478
-
479
-
480
-
481
-
482
-
483
-
484
- <!-- if method_list -->
485
- <div id="methods">
486
- <h3 class="section-bar">Public Instance methods</h3>
487
-
488
- <div id="method-M000335" class="method-detail">
489
- <a name="M000335"></a>
373
+ <div id="method-M000049" class="method-detail">
374
+ <a name="M000049"></a>
490
375
 
491
376
  <div class="method-heading">
492
- <a href="#M000335" class="method-signature">
493
- <span class="method-name">add_decoration</span><span class="method-args">(d)</span>
494
- </a>
495
- </div>
496
-
497
- <div class="method-description">
498
- <p>
499
- Adds decoration <tt>d</tt> to the decoration chain.
500
- </p>
501
- <p>
502
- A global decoration is added in front of the decoration chain, a local
503
- decoration is added in front of all other local decorations but after all
504
- global decorations.
505
- </p>
506
- <p>
507
- Returns: <tt>self</tt>
508
- </p>
509
- <p><a class="source-toggle" href="#"
510
- onclick="toggleCode('M000335-source');return false;">[Source]</a></p>
511
- <div class="method-source-code" id="M000335-source">
512
- <pre>
513
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 160</span>
514
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_decoration</span>(<span class="ruby-identifier">d</span>)
515
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">global?</span>
516
- <span class="ruby-identifier">d</span>.<span class="ruby-identifier">owner</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">decoration</span>
517
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">decoration</span> = <span class="ruby-identifier">d</span>
518
- <span class="ruby-keyword kw">else</span>
519
- <span class="ruby-identifier">last_global</span> = <span class="ruby-keyword kw">nil</span>
520
- <span class="ruby-identifier">each_decoration</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
521
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">global?</span>
522
- <span class="ruby-identifier">last_global</span> = <span class="ruby-identifier">i</span>
523
- <span class="ruby-keyword kw">else</span>
524
- <span class="ruby-keyword kw">break</span>
525
- <span class="ruby-keyword kw">end</span>
526
- }
527
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">last_global</span>.<span class="ruby-identifier">nil?</span>
528
- <span class="ruby-comment cmt"># no global decorations specified -&gt; add in front</span>
529
- <span class="ruby-identifier">d</span>.<span class="ruby-identifier">owner</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">decoration</span>
530
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">decoration</span> = <span class="ruby-identifier">d</span>
531
- <span class="ruby-keyword kw">else</span>
532
- <span class="ruby-comment cmt"># add after last_global</span>
533
- <span class="ruby-identifier">d</span>.<span class="ruby-identifier">owner</span> = <span class="ruby-identifier">last_global</span>.<span class="ruby-identifier">owner</span>
534
- <span class="ruby-identifier">last_global</span>.<span class="ruby-identifier">owner</span> = <span class="ruby-identifier">d</span>
535
- <span class="ruby-keyword kw">end</span>
536
- <span class="ruby-keyword kw">end</span>
537
377
 
538
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
539
- <span class="ruby-keyword kw">end</span>
540
- </pre>
541
- </div>
542
- </div>
543
- </div>
378
+ <a href="#M000049" class="method-signature">
544
379
 
545
- <div id="method-M000332" class="method-detail">
546
- <a name="M000332"></a>
380
+ <span class="method-name">backtrack_children</span><span class="method-args">(state)</span>
547
381
 
548
- <div class="method-heading">
549
- <a href="#M000332" class="method-signature">
550
- <span class="method-name">decoration</span><span class="method-args">()</span>
551
382
  </a>
552
- </div>
553
-
554
- <div class="method-description">
555
- <p>
556
- Returns the first decoration from the component&#8217;s decoration chain,
557
- or <tt>self</tt> if no decorations were specified for the component.
558
- </p>
559
- <p><a class="source-toggle" href="#"
560
- onclick="toggleCode('M000332-source');return false;">[Source]</a></p>
561
- <div class="method-source-code" id="M000332-source">
562
- <pre>
563
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 131</span>
564
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">decoration</span>
565
- <span class="ruby-ivar">@__decoration</span>.<span class="ruby-identifier">value</span>
566
- <span class="ruby-keyword kw">end</span>
567
- </pre>
568
- </div>
569
- </div>
570
- </div>
571
-
572
- <div id="method-M000333" class="method-detail">
573
- <a name="M000333"></a>
574
383
 
575
- <div class="method-heading">
576
- <a href="#M000333" class="method-signature">
577
- <span class="method-name">decoration=</span><span class="method-args">(d)</span>
578
- </a>
579
384
  </div>
580
-
581
- <div class="method-description">
582
- <p>
583
- Set the pointer to the first decoration to <tt>d</tt>.
584
- </p>
585
- <p><a class="source-toggle" href="#"
586
- onclick="toggleCode('M000333-source');return false;">[Source]</a></p>
587
- <div class="method-source-code" id="M000333-source">
588
- <pre>
589
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 137</span>
590
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">decoration=</span>(<span class="ruby-identifier">d</span>)
591
- <span class="ruby-ivar">@__decoration</span>.<span class="ruby-identifier">value</span> = <span class="ruby-identifier">d</span>
592
- <span class="ruby-keyword kw">end</span>
593
- </pre>
594
- </div>
595
- </div>
596
- </div>
597
385
 
598
- <div id="method-M000334" class="method-detail">
599
- <a name="M000334"></a>
600
-
601
- <div class="method-heading">
602
- <a href="#M000334" class="method-signature">
603
- <span class="method-name">each_decoration</span><span class="method-args">( {|decoration| ...}</span>
604
- </a>
605
- </div>
606
-
607
386
  <div class="method-description">
608
- <p>
609
- Iterates over all decorations (note that the component itself is excluded).
610
- </p>
611
- <p><a class="source-toggle" href="#"
612
- onclick="toggleCode('M000334-source');return false;">[Source]</a></p>
613
- <div class="method-source-code" id="M000334-source">
614
- <pre>
615
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 143</span>
616
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_decoration</span> <span class="ruby-comment cmt"># :yields: decoration</span>
617
- <span class="ruby-identifier">d</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">decoration</span>
618
- <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
619
- <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">nil?</span>
620
- <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">d</span>
621
- <span class="ruby-identifier">d</span> = <span class="ruby-identifier">d</span>.<span class="ruby-identifier">owner</span>
622
- <span class="ruby-keyword kw">end</span>
623
- <span class="ruby-keyword kw">end</span>
624
- </pre>
625
- </div>
626
- </div>
627
- </div>
628
387
 
629
- <div id="method-M000336" class="method-detail">
630
- <a name="M000336"></a>
631
-
632
- <div class="method-heading">
633
- <a href="#M000336" class="method-signature">
634
- <span class="method-name">remove_decoration</span><span class="method-args">(d)</span>
635
- </a>
636
- </div>
637
-
638
- <div class="method-description">
639
- <p>
640
- Remove decoration <tt>d</tt> from the decoration chain.
641
- </p>
642
- <p>
643
- Returns the removed decoration or <tt>nil</tt> if it did not exist in the
644
- decoration chain.
645
- </p>
646
388
  <p><a class="source-toggle" href="#"
647
- onclick="toggleCode('M000336-source');return false;">[Source]</a></p>
648
- <div class="method-source-code" id="M000336-source">
389
+ onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
390
+ <div class="method-source-code" id="M000049-source">
649
391
  <pre>
650
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 192</span>
651
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_decoration</span>(<span class="ruby-identifier">d</span>)
652
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">decoration</span> <span class="ruby-comment cmt"># 'd' is in front</span>
653
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">decoration</span> = <span class="ruby-identifier">d</span>.<span class="ruby-identifier">owner</span>
654
- <span class="ruby-keyword kw">else</span>
655
- <span class="ruby-identifier">last_decoration</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">decoration</span>
656
- <span class="ruby-identifier">next_decoration</span> = <span class="ruby-keyword kw">nil</span>
657
- <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
658
- <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">last_decoration</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">self</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">last_decoration</span>.<span class="ruby-identifier">nil?</span>
659
- <span class="ruby-identifier">next_decoration</span> = <span class="ruby-identifier">last_decoration</span>.<span class="ruby-identifier">owner</span>
660
- <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">d</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">next_decoration</span>
661
- <span class="ruby-identifier">last_decoration</span> = <span class="ruby-identifier">next_decoration</span>
662
- <span class="ruby-keyword kw">end</span>
663
- <span class="ruby-identifier">last_decoration</span>.<span class="ruby-identifier">owner</span> = <span class="ruby-identifier">d</span>.<span class="ruby-identifier">owner</span>
392
+ <span class="ruby-comment cmt"># File lib/wee/component.rb, line 101</span>
393
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backtrack_children</span>(<span class="ruby-identifier">state</span>)
394
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">add_ivar</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">:@children</span>, (<span class="ruby-ivar">@children</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">dup</span>))
664
395
  <span class="ruby-keyword kw">end</span>
665
- <span class="ruby-identifier">d</span>.<span class="ruby-identifier">owner</span> = <span class="ruby-keyword kw">nil</span> <span class="ruby-comment cmt"># decoration 'd' no longer is an owner of anything!</span>
666
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">d</span>
667
- <span class="ruby-keyword kw">end</span>
668
396
  </pre>
669
397
  </div>
670
- </div>
671
- </div>
672
-
673
- <div id="method-M000337" class="method-detail">
674
- <a name="M000337"></a>
675
398
 
676
- <div class="method-heading">
677
- <a href="#M000337" class="method-signature">
678
- <span class="method-name">remove_decoration_if</span><span class="method-args">( {|decoration| ...}</span>
679
- </a>
680
- </div>
681
-
682
- <div class="method-description">
683
- <p>
684
- Remove all decorations that match the block condition.
685
- </p>
686
- <p>
687
- Example (removes all decorations of class <tt>HaloDecoration</tt>):
688
- </p>
689
- <pre>
690
- remove_decoration_if {|d| d.class == HaloDecoration}
691
- </pre>
692
- <p><a class="source-toggle" href="#"
693
- onclick="toggleCode('M000337-source');return false;">[Source]</a></p>
694
- <div class="method-source-code" id="M000337-source">
695
- <pre>
696
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 217</span>
697
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_decoration_if</span> <span class="ruby-comment cmt"># :yields: decoration</span>
698
- <span class="ruby-identifier">to_remove</span> = []
699
- <span class="ruby-identifier">each_decoration</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-identifier">to_remove</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">d</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">d</span>}
700
- <span class="ruby-identifier">to_remove</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-identifier">remove_decoration</span>(<span class="ruby-identifier">d</span>)}
701
- <span class="ruby-keyword kw">end</span>
702
- </pre>
703
- </div>
704
399
  </div>
705
400
  </div>
706
401
 
707
402
 
708
- </div>
709
- <div id="section">
710
- <h2 class="section-title"><a name="SEC00085">Backtrack</a></h2>
711
- <div class="section-comment">
712
-
713
- </div>
714
-
715
-
716
-
717
-
718
-
719
-
403
+ <div id="method-M000048" class="method-detail">
404
+ <a name="M000048"></a>
720
405
 
406
+ <div class="method-heading">
721
407
 
722
- <!-- if method_list -->
723
- <div id="methods">
724
- <h3 class="section-bar">Public Instance methods</h3>
408
+ <a href="#M000048" class="method-signature">
725
409
 
726
- <div id="method-M000339" class="method-detail">
727
- <a name="M000339"></a>
410
+ <span class="method-name">backtrack_decoration</span><span class="method-args">(state)</span>
728
411
 
729
- <div class="method-heading">
730
- <a href="#M000339" class="method-signature">
731
- <span class="method-name">backtrack_state</span><span class="method-args">(snapshot)</span>
732
412
  </a>
733
- </div>
734
-
735
- <div class="method-description">
736
- <p>
737
- Take snapshots of objects that should correctly be backtracked.
738
- </p>
739
- <p>
740
- Backtracking means that you can go back in time of the components&#8217;
741
- state. Therefore it is neccessary to take snapshots of those objects that
742
- want to participate in backtracking. Taking snapshots of the whole
743
- component tree would be too expensive and unflexible. Note that methods
744
- <em>take_snapshot</em> and <em>restore_snapshot</em> are called for those
745
- objects to take the snapshot (they behave like <em>marshal_dump</em> and
746
- <em>marshal_load</em>). Overwrite them if you want to define special
747
- behaviour.
748
- </p>
749
- <p>
750
- By default only <tt>@__decoration</tt> is backtracked (which actually is a
751
- <a href="ValueHolder.html">ValueHolder</a>, as only the pointer changes not
752
- the decoration-object itself!).
753
- </p>
754
- <p>
755
- For example if you dynamically add children to your component, you might
756
- want to backtrack the children array. Therefore you simply pass it to the
757
- <a href="Snapshot.html#M000259">Snapshot#add</a> method:
758
- </p>
759
- <pre>
760
- def backtrack_state(snapshot)
761
- super
762
- snapshot.add(self.children)
763
- end
764
- </pre>
765
- <p>
766
- This will call Array#take_snapshot to take the snapshot for the children
767
- array. If at a later point in time a snapshot is restored,
768
- Array#restore_snapshot will be called with the return value of
769
- Array#take_snapshot as argument.
770
- </p>
771
- <dl>
772
- <dt><tt>snapshot</tt></dt><dd>An object of class <a href="Snapshot.html">Snapshot</a>
773
413
 
774
- </dd>
775
- </dl>
776
- <p><a class="source-toggle" href="#"
777
- onclick="toggleCode('M000339-source');return false;">[Source]</a></p>
778
- <div class="method-source-code" id="M000339-source">
779
- <pre>
780
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 274</span>
781
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backtrack_state</span>(<span class="ruby-identifier">snapshot</span>)
782
- <span class="ruby-identifier">snapshot</span>.<span class="ruby-identifier">add</span>(<span class="ruby-ivar">@__decoration</span>)
783
- <span class="ruby-identifier">children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">backtrack_state_chain</span>(<span class="ruby-identifier">snapshot</span>) <span class="ruby-keyword kw">end</span>
784
- <span class="ruby-keyword kw">end</span>
785
- </pre>
786
- </div>
787
414
  </div>
788
- </div>
789
415
 
790
- <div id="method-M000338" class="method-detail">
791
- <a name="M000338"></a>
792
-
793
- <div class="method-heading">
794
- <a href="#M000338" class="method-signature">
795
- <span class="method-name">backtrack_state_chain</span><span class="method-args">(snapshot)</span>
796
- </a>
797
- </div>
798
-
799
416
  <div class="method-description">
800
- <p>
801
- Starts the backtrack-state phase for the decoration chain, by invoking
802
- method <a href="Component.html#M000339">backtrack_state</a> of the first
803
- decoration or the component itself if no decorations were specified.
804
- </p>
805
- <p>
806
- See <a href="Component.html#M000339">backtrack_state</a> for details.
807
- </p>
808
- <dl>
809
- <dt><tt>snapshot</tt></dt><dd>An object of class <a href="Snapshot.html">Snapshot</a>
810
417
 
811
- </dd>
812
- </dl>
813
418
  <p><a class="source-toggle" href="#"
814
- onclick="toggleCode('M000338-source');return false;">[Source]</a></p>
815
- <div class="method-source-code" id="M000338-source">
419
+ onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
420
+ <div class="method-source-code" id="M000048-source">
816
421
  <pre>
817
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 238</span>
818
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backtrack_state_chain</span>(<span class="ruby-identifier">snapshot</span>)
819
- <span class="ruby-identifier">decoration</span>.<span class="ruby-identifier">backtrack_state</span>(<span class="ruby-identifier">snapshot</span>)
820
- <span class="ruby-keyword kw">end</span>
422
+ <span class="ruby-comment cmt"># File lib/wee/component.rb, line 97</span>
423
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backtrack_decoration</span>(<span class="ruby-identifier">state</span>)
424
+ <span class="ruby-identifier">state</span>.<span class="ruby-identifier">add_ivar</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">:@decoration</span>, <span class="ruby-ivar">@decoration</span>)
425
+ <span class="ruby-keyword kw">end</span>
821
426
  </pre>
822
427
  </div>
428
+
823
429
  </div>
824
430
  </div>
825
431
 
826
432
 
827
- </div>
828
- <div id="section">
829
- <h2 class="section-title"><a name="SEC00086">Call/Answer</a></h2>
830
- <div class="section-comment">
831
-
832
- </div>
833
-
834
- <div id="class-list">
835
- <h3 class="section-bar">Classes and Modules</h3>
836
-
837
- Class <a href="Component/OnAnswer.html" class="link">Wee::Component::OnAnswer</a><br />
838
-
839
- </div>
840
-
841
-
433
+ <div id="method-M000050" class="method-detail">
434
+ <a name="M000050"></a>
842
435
 
436
+ <div class="method-heading">
843
437
 
844
-
438
+ <a href="#M000050" class="method-signature">
845
439
 
440
+ <span class="method-name">each_child</span><span class="method-args">(&amp;block)</span>
846
441
 
847
- <!-- if method_list -->
848
- <div id="methods">
849
- <h3 class="section-bar">Protected Instance methods</h3>
850
-
851
- <div id="method-M000341" class="method-detail">
852
- <a name="M000341"></a>
853
-
854
- <div class="method-heading">
855
- <a href="#M000341" class="method-signature">
856
- <span class="method-name">answer</span><span class="method-args">(*args)</span>
857
442
  </a>
858
- </div>
859
-
860
- <div class="method-description">
861
- <p>
862
- Return from a called component.
863
- </p>
864
- <p>
865
- NOTE that <a href="Component.html#M000341">answer</a> never returns.
866
- </p>
867
- <p>
868
- See <a href="Component.html#M000340">call</a> for a detailed description of
869
- the call/answer mechanism.
870
- </p>
871
- <p><a class="source-toggle" href="#"
872
- onclick="toggleCode('M000341-source');return false;">[Source]</a></p>
873
- <div class="method-source-code" id="M000341-source">
874
- <pre>
875
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 352</span>
876
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">answer</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
877
- <span class="ruby-identifier">throw</span> <span class="ruby-identifier">:wee_answer</span>, <span class="ruby-identifier">args</span>
878
- <span class="ruby-keyword kw">end</span>
879
- </pre>
880
- </div>
881
- </div>
882
- </div>
883
-
884
- <div id="method-M000340" class="method-detail">
885
- <a name="M000340"></a>
886
443
 
887
- <div class="method-heading">
888
- <a href="#M000340" class="method-signature">
889
- <span class="method-name">call</span><span class="method-args">(component, return_callback=nil, *args)</span>
890
- </a>
891
444
  </div>
892
-
445
+
893
446
  <div class="method-description">
447
+
894
448
  <p>
895
- Call another component. The calling component is neither rendered nor are
896
- it&#8217;s callbacks processed until the called component answers using
897
- method <a href="Component.html#M000341">answer</a>.
449
+ Iterates over all direct child components.
898
450
  </p>
899
- <dl>
900
- <dt><tt>component</tt></dt><dd>The component to be called.
901
-
902
- </dd>
903
- <dt><tt>return_callback</tt></dt><dd>Is invoked when the called component answers. Either a symbol or any object
904
- that responds to <a href="Component.html#M000340">call</a>. If it&#8217;s a
905
- symbol, then the corresponding method of the current component will be
906
- called.
907
-
908
- </dd>
909
- <dt><tt>args</tt></dt><dd>Arguments that are passed to the <tt>return_callback</tt> before the
910
- &#8216;onanswer&#8217; arguments.
911
451
 
912
- </dd>
913
- </dl>
914
- <p>
915
- <b>How it works</b>
916
- </p>
917
- <p>
918
- The component to be called is wrapped with an <a
919
- href="AnswerDecoration.html">AnswerDecoration</a> and the
920
- <tt>return_callback</tt> parameter is assigned to it&#8217;s
921
- <tt>on_answer</tt> attribute (not directly as there are cleanup actions to
922
- be taken before the <tt>return_callback</tt> can be invoked, hence we wrap
923
- it in the <a href="Component/OnAnswer.html">OnAnswer</a> class). Then a <a
924
- href="Delegate.html">Delegate</a> decoration is added to the calling
925
- component (self), which delegates to the component to be called
926
- (<tt>component</tt>).
927
- </p>
928
- <p>
929
- Then we unwind the calling stack back to the <a
930
- href="Session.html">Session</a> by throwing
931
- <em>:wee_abort_callback_processing</em>. This means, that there is only
932
- ever one action callback invoked per request. This is not neccessary, we
933
- could simply omit this, but then we&#8217;d break compatibility with the
934
- implementation using continuations.
935
- </p>
936
- <p>
937
- When at a later point in time the called component invokes <a
938
- href="Component.html#M000341">answer</a>, this will throw a
939
- <em>:wee_answer</em> exception which is catched in the <a
940
- href="AnswerDecoration.html">AnswerDecoration</a>. The <a
941
- href="AnswerDecoration.html">AnswerDecoration</a> then invokes the
942
- <tt>on_answer</tt> callback which cleans up the decorations we added during
943
- <a href="Component.html#M000340">call</a>, and finally passes control to
944
- the <tt>return_callback</tt>.
945
- </p>
946
452
  <p><a class="source-toggle" href="#"
947
- onclick="toggleCode('M000340-source');return false;">[Source]</a></p>
948
- <div class="method-source-code" id="M000340-source">
453
+ onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
454
+ <div class="method-source-code" id="M000050-source">
949
455
  <pre>
950
- <span class="ruby-comment cmt"># File lib/wee/core/component.rb, line 323</span>
951
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">call</span>(<span class="ruby-identifier">component</span>, <span class="ruby-identifier">return_callback</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
952
- <span class="ruby-identifier">add_decoration</span>(<span class="ruby-identifier">delegate</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">Delegate</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">component</span>))
953
- <span class="ruby-identifier">component</span>.<span class="ruby-identifier">add_decoration</span>(<span class="ruby-identifier">answer</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">AnswerDecoration</span>.<span class="ruby-identifier">new</span>)
954
- <span class="ruby-identifier">answer</span>.<span class="ruby-identifier">on_answer</span> = <span class="ruby-constant">OnAnswer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">component</span>, <span class="ruby-identifier">delegate</span>, <span class="ruby-identifier">answer</span>,
955
- <span class="ruby-identifier">return_callback</span>, <span class="ruby-identifier">args</span>)
956
- <span class="ruby-identifier">throw</span> <span class="ruby-identifier">:wee_abort_callback_processing</span>, <span class="ruby-keyword kw">nil</span>
957
- <span class="ruby-keyword kw">end</span>
456
+ <span class="ruby-comment cmt"># File lib/wee/component.rb, line 108</span>
457
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_child</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
458
+ <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@children</span>
459
+ <span class="ruby-keyword kw">end</span>
958
460
  </pre>
959
461
  </div>
462
+
960
463
  </div>
961
464
  </div>
962
465
 
963
466
 
964
- </div>
965
- <div id="section">
966
- <h2 class="section-title"><a name="SEC00161">Call/Answer</a></h2>
967
- <div class="section-comment">
968
-
969
- </div>
970
-
971
-
972
-
973
-
974
-
975
-
467
+ <div id="method-M000044" class="method-detail">
468
+ <a name="M000044"></a>
976
469
 
470
+ <div class="method-heading">
977
471
 
978
- <!-- if method_list -->
979
- <div id="methods">
980
- <h3 class="section-bar">Protected Instance methods</h3>
472
+ <a href="#M000044" class="method-signature">
981
473
 
982
- <div id="method-M000342" class="method-detail">
983
- <a name="M000342"></a>
474
+ <span class="method-name">initialize</span><span class="method-args">()</span>
984
475
 
985
- <div class="method-heading">
986
- <a href="#M000342" class="method-signature">
987
- <span class="method-name">call</span><span class="method-args">(component, return_callback=:use_continuation, *additional_args)</span>
988
476
  </a>
477
+
989
478
  </div>
990
-
479
+
991
480
  <div class="method-description">
992
- <p>
993
- Call another component. The calling component is neither rendered nor are
994
- it&#8217;s callbacks processed until the called component answers using
995
- method <a href="Component.html#M000341">answer</a>.
996
- </p>
997
- <dl>
998
- <dt><tt>component</tt></dt><dd>The component to be called.
999
481
 
1000
- </dd>
1001
- </dl>
1002
- <p>
1003
- <b>How it works</b>
1004
- </p>
1005
- <p>
1006
- At first a continuation is created. The component to be called is then
1007
- wrapped with an <a href="AnswerDecoration.html">AnswerDecoration</a> and
1008
- the continuation is assigned to it&#8217;s <tt>on_answer</tt> attribute.
1009
- Then a <a href="Delegate.html">Delegate</a> decoration is added to the
1010
- calling component (self), which delegates to the component to be called
1011
- (<tt>component</tt>). Then we unwind the calling stack back to the <a
1012
- href="Session.html">Session</a> by throwing
1013
- <em>:wee_abort_callback_processing</em>. This means, that there is only
1014
- ever one action callback invoked per request. When at a later point in time
1015
- the called component invokes <a href="Component.html#M000341">answer</a>,
1016
- this will throw a <em>:wee_answer</em> exception which is catched in the <a
1017
- href="AnswerDecoration.html">AnswerDecoration</a>. The <a
1018
- href="AnswerDecoration.html">AnswerDecoration</a> then jumps back to the
1019
- continuation we created at the beginning, and finally method <a
1020
- href="Component.html#M000340">call</a> returns.
482
+ <p>
483
+ Initializes a newly created component.
1021
484
  </p>
1022
485
  <p>
1023
- Note that <a href="Component.html#M000340">call</a> returns to an
1024
- &quot;old&quot; stack-frame from a previous request. That is why we throw
1025
- <em>:wee_abort_callback_processing</em> after invoking an action callback,
1026
- and that&#8217;s why only ever one is invoked. We could remove this
1027
- limitation without problems, but then there would be a difference between
1028
- those action callbacks that call other components and those that do not.
486
+ Call this method from your own components&#8217; <em>initialize</em> method
487
+ using <tt>super</tt>, before setting up anything else!
1029
488
  </p>
489
+
1030
490
  <p><a class="source-toggle" href="#"
1031
- onclick="toggleCode('M000342-source');return false;">[Source]</a></p>
1032
- <div class="method-source-code" id="M000342-source">
491
+ onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
492
+ <div class="method-source-code" id="M000044-source">
1033
493
  <pre>
1034
- <span class="ruby-comment cmt"># File lib/wee/continuation/core/component.rb, line 37</span>
1035
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">call</span>(<span class="ruby-identifier">component</span>, <span class="ruby-identifier">return_callback</span>=<span class="ruby-identifier">:use_continuation</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">additional_args</span>)
1036
- <span class="ruby-identifier">add_decoration</span>(<span class="ruby-identifier">delegate</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">Delegate</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">component</span>))
1037
- <span class="ruby-identifier">component</span>.<span class="ruby-identifier">add_decoration</span>(<span class="ruby-identifier">answer</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">AnswerDecoration</span>.<span class="ruby-identifier">new</span>)
1038
-
1039
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">return_callback</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:use_continuation</span>
1040
- <span class="ruby-identifier">result</span> = <span class="ruby-identifier">callcc</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">cc</span><span class="ruby-operator">|</span>
1041
- <span class="ruby-identifier">answer</span>.<span class="ruby-identifier">on_answer</span> = <span class="ruby-identifier">cc</span>
1042
- <span class="ruby-identifier">throw</span> <span class="ruby-identifier">:wee_abort_callback_processing</span>, <span class="ruby-keyword kw">nil</span>
1043
- }
1044
- <span class="ruby-identifier">remove_decoration</span>(<span class="ruby-identifier">delegate</span>)
1045
- <span class="ruby-identifier">component</span>.<span class="ruby-identifier">remove_decoration</span>(<span class="ruby-identifier">answer</span>)
1046
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">result</span>
1047
- <span class="ruby-keyword kw">else</span>
1048
- <span class="ruby-identifier">answer</span>.<span class="ruby-identifier">on_answer</span> = <span class="ruby-constant">OnAnswer</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">component</span>, <span class="ruby-identifier">delegate</span>, <span class="ruby-identifier">answer</span>,
1049
- <span class="ruby-identifier">return_callback</span>, <span class="ruby-identifier">additional_args</span>)
1050
- <span class="ruby-identifier">throw</span> <span class="ruby-identifier">:wee_abort_callback_processing</span>, <span class="ruby-keyword kw">nil</span>
494
+ <span class="ruby-comment cmt"># File lib/wee/component.rb, line 19</span>
495
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>() <span class="ruby-comment cmt"># :notnew:</span>
496
+ <span class="ruby-ivar">@decoration</span> = <span class="ruby-keyword kw">self</span>
497
+ <span class="ruby-ivar">@children</span> = <span class="ruby-keyword kw">nil</span>
1051
498
  <span class="ruby-keyword kw">end</span>
1052
- <span class="ruby-keyword kw">end</span>
1053
499
  </pre>
1054
500
  </div>
501
+
1055
502
  </div>
1056
503
  </div>
1057
504
 
1058
505
 
506
+
1059
507
  </div>
1060
508
 
1061
509
 
1062
- </div>
1063
510
 
1064
511
 
512
+ </div>
513
+
1065
514
  <div id="validator-badges">
1066
515
  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1067
516
  </div>
1068
517
 
1069
518
  </body>
1070
- </html>
519
+ </html>