wee 0.10.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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>