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
@@ -1,154 +0,0 @@
1
- class Wee::PagelessComponentDriver < Wee::ComponentRunner
2
- attr_accessor :callbacks
3
-
4
- def initialize(root_component, callbacks=nil)
5
- super(root_component)
6
- @callbacks = callbacks
7
- @mutex = Mutex.new
8
- end
9
-
10
- def render(*args)
11
- @mutex.synchronize { super }
12
- end
13
-
14
- def process_callbacks(*args)
15
- @mutex.synchronize { super }
16
- end
17
- end
18
-
19
- class Wee::Presenter
20
- def renderer_class
21
- Wee::Rails::HtmlCanvasRenderer
22
- end
23
- end
24
-
25
- class Wee::RenderingContext
26
- attr_accessor :component_name
27
- attr_accessor :controller
28
- attr_accessor :redirect_action
29
- end
30
-
31
- module Wee::Rails
32
-
33
- class FormTag < Wee::Brush::FormTag
34
- def with(*args, &block)
35
- rctx = @canvas.rendering_context
36
- controller = rctx.request.path.split('/').first
37
-
38
- super(*args) do
39
- block.call if block
40
- @canvas.hidden_input.name('__c').value(rctx.component_name)
41
- @canvas.hidden_input.name('__a').value(rctx.redirect_action) if rctx.redirect_action
42
- end
43
- end
44
- end
45
-
46
- class HtmlCanvasRenderer < Wee::HtmlCanvasRenderer
47
- def form(*args, &block)
48
- handle(Wee::Rails::FormTag.new, *args, &block)
49
- end
50
-
51
- def build_url(hash={})
52
- cid = hash[:callback_id]
53
- url = rendering_context.controller.url_for :action => 'callback'
54
- url << "?__c=#{ rendering_context.component_name }"
55
- url << "&__a=#{ rendering_context.redirect_action }" if rendering_context.redirect_action
56
- url << "&#{ cid }" if cid
57
- url
58
- end
59
- end
60
-
61
- module ControllerClassMixin
62
- def register_component(name, &block)
63
- registered_components[name] = block
64
- end
65
-
66
- def registered_components
67
- @@registered_components ||= Hash.new
68
- end
69
-
70
- def scaffold_with_component(name=nil, &block)
71
- name ||= self.name
72
- register_component(name, &block) if block
73
- send(:define_method, :index) do
74
- show_component name
75
- end
76
- end
77
- end
78
-
79
- module ControllerMixin
80
-
81
- def self.included(klass)
82
- klass.extend(ControllerClassMixin)
83
- end
84
-
85
- public
86
-
87
- def callback
88
- c = components[@params['__c']]
89
- raise "no component found" if c.nil?
90
- callback_stream = Wee::CallbackStream.new(c.callbacks, @params)
91
- c.process_callbacks(callback_stream)
92
- redirect_to :action => (@params['__a'] || "index")
93
- end
94
-
95
- protected
96
-
97
- def make_component(name, obj)
98
- if components.has_key?(name)
99
- raise "disallowed to overwrite component #{ name }"
100
- else
101
- components[name] = Wee::PagelessComponentDriver.new(obj, Wee::CallbackRegistry.new(Wee::SequentialIdGenerator.new))
102
- end
103
- end
104
-
105
- def drop_component(name)
106
- if components.has_key?(name)
107
- components.delete(name)
108
- else
109
- raise "component #{ name } not found"
110
- end
111
- end
112
-
113
- def has_component?(name)
114
- components.has_key?(name)
115
- end
116
-
117
- def _show_component(name, hash={}, out='')
118
- cb = Wee::CallbackRegistry.new(Wee::SequentialIdGenerator.new)
119
- ctx = Wee::Context.new(@request, @response, @session)
120
- rctx = Wee::RenderingContext.new(ctx, cb, Wee::HtmlWriter.new(out))
121
- rctx.component_name = name
122
- rctx.controller = self
123
- rctx.redirect_action = hash[:redirect_action]
124
-
125
- unless c = components[name]
126
- if block = self.class.registered_components[name]
127
- make_component name, block.call
128
- c = components[name]
129
- end
130
- end
131
-
132
- raise "component #{ name } not found" if c.nil?
133
-
134
- c.render(rctx)
135
- c.callbacks = cb
136
- out
137
- end
138
-
139
- def show_component(name, hash={})
140
- render_text(_show_component(name, hash))
141
- end
142
-
143
- def components
144
- @session[:COMPONENTS] ||= Hash.new
145
- end
146
-
147
- end
148
-
149
- end # module Wee::Rails
150
-
151
- class ActionView::Base
152
- include Wee::Rails::ControllerMixin
153
- alias show_component _show_component
154
- end
@@ -1,89 +0,0 @@
1
- require 'webrick'
2
-
3
- Socket.do_not_reverse_lookup = true
4
-
5
- # Example of usage:
6
- #
7
- # require 'wee/adaptors/webrick'
8
- # s = WEBrick::HTTPServer.new(:Port => 2000)
9
- # s.mount '/app', Wee::WEBrickAdaptor, '/app', application
10
- #
11
- # trap("INT") { s.shutdown; exit }
12
- # s.start
13
- #
14
- # Or when using the convenience methods:
15
- #
16
- # require 'wee/adaptors/webrick'
17
- # Wee::WEBrickAdaptor.
18
- # request_class(Wee::Request). # this is the default!
19
- # register('/app' => application).
20
- # register('/cnt' => application2).
21
- # mount('/', WEBrick::HTTPServlet::FileHandler, '.').
22
- # start(:Port => 2000)
23
- #
24
-
25
- class Wee::WEBrickAdaptor < WEBrick::HTTPServlet::AbstractServlet
26
-
27
- # Convenience method
28
- def self.start(options={})
29
- server = WEBrick::HTTPServer.new({:Port => 2000}.update(options))
30
- trap("INT") { server.shutdown }
31
-
32
- (@apps||[]).each do |path, app, request_class|
33
- server.mount(path, self, path, app, request_class)
34
- end
35
-
36
- (@mounts||[]).each do |args, block|
37
- server.mount(*args, &block)
38
- end
39
-
40
- yield server if block_given?
41
-
42
- server.start
43
- server
44
- end
45
-
46
- # Sets the used request_class for all following calls to #register
47
-
48
- def self.request_class(request_class)
49
- @request_class = request_class
50
- self
51
- end
52
-
53
- # Convenience method
54
- def self.register(hash)
55
- @apps ||= []
56
- hash.each do |path, application|
57
- @apps << [path, application, @request_class]
58
- end
59
- self
60
- end
61
-
62
- # Convenience method
63
- def self.mount(*args, &block)
64
- @mounts ||= []
65
- @mounts << [args, block]
66
- self
67
- end
68
-
69
- def initialize(server, mount_path, application, request_class=Wee::Request)
70
- super(server)
71
- @mount_path = mount_path
72
- @application = application
73
- @request_class = request_class || Wee::Request
74
- end
75
-
76
- def handle_request(req, res)
77
- context = Wee::Context.new(@request_class.new(@mount_path, req.path, req.header, req.query, req.cookies))
78
- @application.handle_request(context)
79
- res.status = context.response.status
80
- res.body = context.response.content
81
- context.response.header.each { |k,v| res.header[k] = v }
82
- if context.response.cookies?
83
- context.response.cookies.each {|c| res.cookies << c }
84
- end
85
- end
86
-
87
- alias do_GET handle_request
88
- alias do_POST handle_request
89
- end
@@ -1,7 +0,0 @@
1
- require 'wee/components/wrapper_decoration'
2
- require 'wee/components/form_decoration'
3
- require 'wee/components/page_decoration'
4
- require 'wee/components/messagebox'
5
- require 'wee/components/component_dispatcher'
6
- require 'wee/components/login_decoration'
7
- require 'wee/components/pager'
@@ -1,46 +0,0 @@
1
- require 'set'
2
-
3
- class Wee::ComponentDispatcher < Wee::Component
4
- def initialize
5
- super()
6
- @rules = []
7
- @components = Set.new
8
- end
9
-
10
- def add_rule(pattern, component, &block)
11
- @components.add(component)
12
- @rules << [pattern, component, block]
13
- end
14
-
15
- def do_render(rendering_context)
16
- if component = match(session.current_context.request.info)
17
- component.do_render_chain(rendering_context)
18
- end
19
- end
20
-
21
- def process_callbacks(&block)
22
- if component = match(session.current_context.request.info)
23
- component.process_callbacks_chain(&block)
24
- end
25
- end
26
-
27
- def backtrack_state(snapshot)
28
- snapshot.add(@__decoration)
29
- @components.each do |component|
30
- component.backtrack_state_chain(snapshot)
31
- end
32
- end
33
-
34
- protected
35
-
36
- def match(info)
37
- info ||= ""
38
- @rules.each do |pattern, component, block|
39
- if info =~ pattern
40
- block.call(component, $~) if block
41
- return component
42
- end
43
- end
44
- nil
45
- end
46
- end
@@ -1,7 +0,0 @@
1
- class Wee::FormDecoration < Wee::WrapperDecoration
2
- private
3
-
4
- def render_wrapper
5
- r.form { yield }
6
- end
7
- end
@@ -1,35 +0,0 @@
1
- class Wee::LoginDecoration < Wee::Decoration
2
- def initialize(login_page)
3
- @login_page = login_page
4
- end
5
-
6
- def process_callbacks(&block)
7
- if logged_in?
8
- super
9
- else
10
- @login_page.process_callbacks_chain(&block)
11
- end
12
- end
13
-
14
- def do_render(rendering_context)
15
- if logged_in?
16
- super
17
- else
18
- @login_page.do_render_chain(rendering_context)
19
- end
20
- end
21
-
22
- def backtrack_state(snapshot)
23
- if logged_in?
24
- super
25
- else
26
- @login_page.backtrack_state_chain(snapshot)
27
- end
28
- end
29
-
30
- # Overwrite this method!
31
-
32
- def logged_in?
33
- raise "subclass responsibility"
34
- end
35
- end
@@ -1,14 +0,0 @@
1
- class Wee::PageDecoration < Wee::WrapperDecoration
2
- def initialize(title='')
3
- @title = title
4
- super()
5
- end
6
-
7
- def global?() true end
8
-
9
- private
10
-
11
- def render_wrapper
12
- r.page.title(@title).with { yield }
13
- end
14
- end
@@ -1,7 +0,0 @@
1
- class Wee::WrapperDecoration < Wee::Decoration
2
- def do_render(rendering_context)
3
- with_renderer_for(rendering_context) do
4
- render_wrapper { super(rendering_context) }
5
- end
6
- end
7
- end
@@ -1,5 +0,0 @@
1
- # Replace the non-continuation based implementation (which is loaded by
2
- # default) by a continuation enabled implementation.
3
-
4
- require 'wee/continuation/session'
5
- require 'wee/continuation/core/component'
@@ -1,56 +0,0 @@
1
- class Wee::Component
2
-
3
- # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
4
- # :section: Call/Answer
5
- # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
6
-
7
- protected
8
-
9
- # Call another component. The calling component is neither rendered nor are
10
- # it's callbacks processed until the called component answers using method
11
- # #answer.
12
- #
13
- # [+component+]
14
- # The component to be called.
15
- #
16
- # <b>How it works</b>
17
- #
18
- # At first a continuation is created. The component to be called is then
19
- # wrapped with an AnswerDecoration and the continuation is assigned to it's
20
- # +on_answer+ attribute. Then a Delegate decoration is added to the calling
21
- # component (self), which delegates to the component to be called
22
- # (+component+). Then we unwind the calling stack back to the Session by
23
- # throwing <i>:wee_abort_callback_processing</i>. This means, that there is
24
- # only ever one action callback invoked per request. When at a later point
25
- # in time the called component invokes #answer, this will throw a
26
- # <i>:wee_answer</i> exception which is catched in the AnswerDecoration. The
27
- # AnswerDecoration then jumps back to the continuation we created at the
28
- # beginning, and finally method #call returns.
29
- #
30
- # Note that #call returns to an "old" stack-frame from a previous request.
31
- # That is why we throw <i>:wee_abort_callback_processing</i> after invoking
32
- # an action callback, and that's why only ever one is invoked. We could
33
- # remove this limitation without problems, but then there would be a
34
- # difference between those action callbacks that call other components and
35
- # those that do not.
36
-
37
- def call(component, return_callback=:use_continuation, *additional_args)
38
- add_decoration(delegate = Wee::Delegate.new(component))
39
- component.add_decoration(answer = Wee::AnswerDecoration.new)
40
-
41
- if return_callback == :use_continuation
42
- result = callcc {|cc|
43
- answer.on_answer = cc
44
- throw :wee_abort_callback_processing, nil
45
- }
46
- remove_decoration(delegate)
47
- component.remove_decoration(answer)
48
- return result
49
- else
50
- answer.on_answer = OnAnswer.new(self, component, delegate, answer,
51
- return_callback, additional_args)
52
- throw :wee_abort_callback_processing, nil
53
- end
54
- end
55
-
56
- end
@@ -1,64 +0,0 @@
1
- require 'timeout'
2
-
3
- class Wee::AbstractSession
4
-
5
- # Called by Wee::Application to send the session a request.
6
-
7
- def handle_request(context)
8
- super
9
-
10
- # Send a request to the session. If the session is currently busy
11
- # processing another request, this will block.
12
- @in_queue.push(context)
13
-
14
- # Wait for the response.
15
- return @out_queue.pop
16
- end
17
- end
18
-
19
- class Wee::Session
20
- def initialize(&block)
21
- super()
22
- @in_queue, @out_queue = SizedQueue.new(1), SizedQueue.new(1)
23
- setup(&block)
24
- start_request_response_loop
25
- end
26
-
27
- def start_request_response_loop
28
- Thread.abort_on_exception = true
29
- Thread.new {
30
- Thread.current[:wee_session] = self
31
- loop {
32
- @context = nil
33
-
34
- # get a request, check whether this session is alive after every 5
35
- # seconds.
36
- while @context.nil?
37
- begin
38
- Timeout.timeout(5) {
39
- @context = @in_queue.pop
40
- }
41
- rescue Timeout::Error
42
- break unless alive?
43
- end
44
- end
45
-
46
- # abort thread if no longer alive
47
- break if not alive?
48
-
49
- raise "invalid request" if @context.nil?
50
-
51
- begin
52
- awake
53
- process_request
54
- sleep
55
- rescue Exception => exn
56
- @context.response = Wee::ErrorResponse.new(exn)
57
- end
58
- @out_queue.push(@context)
59
- }
60
- p "session loop terminated" if $DEBUG
61
- }
62
- end
63
-
64
- end