wee 0.10.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. data/README.rdoc +127 -0
  2. data/Rakefile +11 -32
  3. data/doc/rdoc/classes/Array.html +28 -24
  4. data/doc/rdoc/classes/Hash.html +28 -24
  5. data/doc/rdoc/classes/Object.html +37 -84
  6. data/doc/rdoc/classes/String.html +89 -21
  7. data/doc/rdoc/classes/Struct.html +32 -82
  8. data/doc/rdoc/classes/Wee.html +285 -86
  9. data/doc/rdoc/classes/Wee/AnswerDecoration.html +111 -48
  10. data/doc/rdoc/classes/Wee/{Context.html → AnswerDecoration/Answer.html} +61 -51
  11. data/doc/rdoc/classes/Wee/Application.html +161 -322
  12. data/doc/rdoc/classes/Wee/Application/SessionCache.html +162 -0
  13. data/doc/rdoc/classes/Wee/Brush.html +147 -62
  14. data/doc/rdoc/classes/{Enumerable.html → Wee/Brush/ActionInputTag.html} +68 -41
  15. data/doc/rdoc/classes/Wee/Brush/AnchorTag.html +150 -100
  16. data/doc/rdoc/classes/Wee/Brush/CheckboxTag.html +132 -46
  17. data/doc/rdoc/classes/Wee/Brush/FileUploadTag.html +63 -41
  18. data/doc/rdoc/classes/Wee/Brush/FormTag.html +184 -78
  19. data/doc/rdoc/classes/Wee/Brush/GenericEncodedTextBrush.html +48 -65
  20. data/doc/rdoc/classes/Wee/Brush/GenericSingleTagBrush.html +83 -37
  21. data/doc/rdoc/classes/Wee/Brush/GenericTagBrush.html +334 -310
  22. data/doc/rdoc/classes/Wee/Brush/GenericTextBrush.html +74 -54
  23. data/doc/rdoc/classes/Wee/Brush/HiddenInputTag.html +58 -43
  24. data/doc/rdoc/classes/Wee/Brush/ImageButtonTag.html +64 -74
  25. data/doc/rdoc/classes/Wee/Brush/ImageTag.html +109 -86
  26. data/doc/rdoc/classes/Wee/Brush/InputTag.html +205 -45
  27. data/doc/rdoc/classes/Wee/Brush/JavascriptTag.html +96 -34
  28. data/doc/rdoc/classes/Wee/Brush/Page.html +129 -67
  29. data/doc/rdoc/classes/Wee/{Utils/LRUCache.html → Brush/PasswordInputTag.html} +65 -38
  30. data/doc/rdoc/classes/Wee/Brush/RadioButtonTag.html +132 -78
  31. data/doc/rdoc/classes/Wee/Brush/{RadioButtonTag/RadioGroup.html → RadioGroup.html} +91 -53
  32. data/doc/rdoc/classes/Wee/Brush/SelectListTag.html +301 -127
  33. data/doc/rdoc/classes/Wee/Brush/SelectOptionTag.html +96 -33
  34. data/doc/rdoc/classes/Wee/Brush/SubmitButtonTag.html +59 -44
  35. data/doc/rdoc/classes/Wee/Brush/TableDataTag.html +94 -57
  36. data/doc/rdoc/classes/Wee/Brush/TableHeaderTag.html +96 -33
  37. data/doc/rdoc/classes/Wee/Brush/TableRowTag.html +181 -121
  38. data/doc/rdoc/classes/Wee/Brush/TableTag.html +94 -32
  39. data/doc/rdoc/classes/Wee/Brush/TextAreaTag.html +257 -71
  40. data/doc/rdoc/classes/Wee/Brush/TextInputTag.html +58 -43
  41. data/doc/rdoc/classes/Wee/CallAnswerMixin.html +289 -0
  42. data/doc/rdoc/classes/Wee/CallbackMixin.html +233 -0
  43. data/doc/rdoc/classes/Wee/CallbackRegistry.html +179 -155
  44. data/doc/rdoc/classes/Wee/Callbacks.html +262 -0
  45. data/doc/rdoc/classes/Wee/Component.html +228 -779
  46. data/doc/rdoc/classes/Wee/Decoration.html +144 -159
  47. data/doc/rdoc/classes/Wee/DecorationMixin.html +340 -0
  48. data/doc/rdoc/classes/Wee/Delegate.html +119 -76
  49. data/doc/rdoc/classes/Wee/DupReplaceSnapshotMixin.html +64 -47
  50. data/doc/rdoc/classes/Wee/ErrorResponse.html +59 -62
  51. data/doc/rdoc/classes/Wee/FormDecoration.html +51 -37
  52. data/doc/rdoc/classes/Wee/GenericResponse.html +60 -35
  53. data/doc/rdoc/classes/Wee/HtmlCanvas.html +1000 -602
  54. data/doc/rdoc/classes/Wee/HtmlDocument.html +288 -0
  55. data/doc/rdoc/classes/Wee/HtmlWriter.html +227 -126
  56. data/doc/rdoc/classes/Wee/IdGenerator.html +60 -31
  57. data/doc/rdoc/classes/Wee/IdGenerator/Secure.html +282 -0
  58. data/doc/rdoc/classes/Wee/{SimpleIdGenerator.html → IdGenerator/Sequential.html} +76 -49
  59. data/doc/rdoc/classes/Wee/JQuery.html +221 -0
  60. data/doc/rdoc/classes/Wee/LRUCache.html +514 -0
  61. data/doc/rdoc/classes/Wee/LRUCache/Item.html +158 -0
  62. data/doc/rdoc/classes/Wee/ObjectSnapshotMixin.html +187 -0
  63. data/doc/rdoc/classes/Wee/PageDecoration.html +88 -59
  64. data/doc/rdoc/classes/Wee/Presenter.html +124 -704
  65. data/doc/rdoc/classes/Wee/RedirectResponse.html +64 -33
  66. data/doc/rdoc/classes/Wee/RefreshResponse.html +59 -44
  67. data/doc/rdoc/classes/Wee/Renderer.html +234 -54
  68. data/doc/rdoc/classes/Wee/Request.html +151 -286
  69. data/doc/rdoc/classes/Wee/Response.html +29 -212
  70. data/doc/rdoc/classes/Wee/Session.html +585 -360
  71. data/doc/rdoc/classes/Wee/{StateHolder.html → Session/AbortCallbackProcessing.html} +67 -40
  72. data/doc/rdoc/classes/Wee/Session/MutexSerializer.html +166 -0
  73. data/doc/rdoc/classes/{Cache/Strategy/LFU/Item.html → Wee/Session/Page.html} +26 -27
  74. data/doc/rdoc/classes/Wee/Session/ThreadSerializer.html +219 -0
  75. data/doc/rdoc/classes/Wee/State.html +307 -0
  76. data/doc/rdoc/classes/{Cache/Strategy/LRU/Item.html → Wee/State/Snapshot.html} +26 -27
  77. data/doc/rdoc/classes/{Cache/Strategy/Unbounded/Item.html → Wee/State/SnapshotIVars.html} +26 -27
  78. data/doc/rdoc/classes/Wee/StructSnapshotMixin.html +183 -0
  79. data/doc/rdoc/classes/Wee/WrapperDecoration.html +101 -35
  80. data/doc/rdoc/created.rid +1 -1
  81. data/doc/rdoc/files/README_rdoc.html +243 -0
  82. data/doc/rdoc/files/lib/wee/application_rb.html +22 -30
  83. data/doc/rdoc/files/lib/wee/{page_rb.html → call_answer_rb.html} +14 -25
  84. data/doc/rdoc/files/lib/wee/callback_rb.html +12 -29
  85. data/doc/rdoc/files/lib/wee/component_rb.html +22 -27
  86. data/doc/rdoc/files/lib/wee/decoration_rb.html +19 -20
  87. data/doc/rdoc/files/lib/wee/{idgen_rb.html → html_brushes_rb.html} +14 -25
  88. data/doc/rdoc/files/lib/wee/html_canvas_rb.html +15 -23
  89. data/doc/rdoc/files/lib/wee/{abstractsession_rb.html → html_document_rb.html} +17 -25
  90. data/doc/rdoc/files/lib/wee/html_writer_rb.html +15 -23
  91. data/doc/rdoc/files/lib/wee/{webrick_rb.html → id_generator_rb.html} +19 -25
  92. data/doc/rdoc/files/lib/wee/{core/page_rb.html → jquery/jquery_rb.html} +14 -25
  93. data/doc/rdoc/files/lib/wee/{state_registry_rb.html → jquery_rb.html} +17 -27
  94. data/doc/rdoc/files/lib/{cache/cache_rb.html → wee/lru_cache_rb.html} +14 -25
  95. data/doc/rdoc/files/lib/wee/presenter_rb.html +12 -34
  96. data/doc/rdoc/files/lib/wee/{holder_rb.html → renderer_rb.html} +14 -25
  97. data/doc/rdoc/files/lib/wee/request_rb.html +18 -32
  98. data/doc/rdoc/files/lib/wee/response_rb.html +17 -24
  99. data/doc/rdoc/files/lib/wee/session_rb.html +21 -23
  100. data/doc/rdoc/files/lib/wee/state_rb.html +90 -0
  101. data/doc/rdoc/files/lib/wee_rb.html +48 -40
  102. data/doc/rdoc/fr_class_index.html +111 -75
  103. data/doc/rdoc/fr_file_index.html +46 -76
  104. data/doc/rdoc/fr_method_index.html +473 -480
  105. data/doc/rdoc/index.html +6 -9
  106. data/doc/rdoc/rdoc-style.css +210 -119
  107. data/examples/ObjectSpaceBrowser.rb +33 -23
  108. data/examples/ajax.rb +71 -0
  109. data/examples/continuations.rb +28 -0
  110. data/examples/demo.rb +92 -36
  111. data/examples/demo/calculator.rb +63 -0
  112. data/examples/demo/calendar.rb +42 -55
  113. data/examples/demo/counter.rb +38 -0
  114. data/{lib/wee/examples → examples/demo}/editable_counter.rb +11 -6
  115. data/examples/demo/example.rb +28 -24
  116. data/examples/demo/file_upload.rb +19 -0
  117. data/{lib/wee/components → examples/demo}/messagebox.rb +3 -3
  118. data/examples/demo/radio.rb +33 -0
  119. data/{lib/wee/examples → examples/demo}/window.rb +15 -10
  120. data/examples/hw.rb +3 -4
  121. data/{lib/wee/components → examples}/pager.rb +14 -14
  122. data/lib/wee.rb +48 -25
  123. data/lib/wee/application.rb +69 -131
  124. data/lib/wee/call_answer.rb +118 -0
  125. data/lib/wee/callback.rb +88 -0
  126. data/lib/wee/component.rb +141 -0
  127. data/lib/wee/decoration.rb +242 -0
  128. data/lib/wee/html_brushes.rb +725 -0
  129. data/lib/wee/html_canvas.rb +241 -0
  130. data/lib/wee/html_document.rb +45 -0
  131. data/lib/wee/html_writer.rb +71 -0
  132. data/lib/wee/id_generator.rb +70 -0
  133. data/lib/wee/jquery.rb +1 -0
  134. data/lib/wee/jquery/jquery.rb +17 -0
  135. data/lib/wee/jquery/public/jquery-1.3.2.min.js +19 -0
  136. data/lib/wee/jquery/public/wee-jquery.js +19 -0
  137. data/lib/wee/lru_cache.rb +89 -0
  138. data/lib/wee/presenter.rb +43 -0
  139. data/lib/wee/renderer.rb +65 -0
  140. data/lib/wee/request.rb +37 -113
  141. data/lib/wee/response.rb +43 -70
  142. data/lib/wee/session.rb +304 -113
  143. data/lib/wee/state.rb +85 -0
  144. data/test/component_spec.rb +17 -0
  145. data/wee.gemspec +4 -3
  146. metadata +249 -452
  147. data/ChangeLog +0 -657
  148. data/INSTALL +0 -17
  149. data/README +0 -272
  150. data/TODO +0 -142
  151. data/benchmark/Centrino1300/result.2000.counter.action +0 -45
  152. data/benchmark/Centrino1300/result.2000.counter.render +0 -43
  153. data/benchmark/Centrino1300/result.2000.filehandler +0 -43
  154. data/benchmark/Centrino600/result.2000.counter.action +0 -47
  155. data/benchmark/Centrino600/result.2000.counter.render +0 -45
  156. data/benchmark/Centrino600/result.2000.filehandler +0 -43
  157. data/benchmark/Makefile +0 -53
  158. data/benchmark/counter.rb +0 -77
  159. data/benchmark/filehandler.rb +0 -6
  160. data/benchmark/report_req.rb +0 -12
  161. data/bin/wee +0 -100
  162. data/doc/rdoc/classes/ActionView.html +0 -107
  163. data/doc/rdoc/classes/ActionView/Base.html +0 -133
  164. data/doc/rdoc/classes/Cache.html +0 -126
  165. data/doc/rdoc/classes/Cache/StorageCache.html +0 -320
  166. data/doc/rdoc/classes/Cache/Strategy.html +0 -128
  167. data/doc/rdoc/classes/Cache/Strategy/CapacityBounded.html +0 -269
  168. data/doc/rdoc/classes/Cache/Strategy/LFU.html +0 -238
  169. data/doc/rdoc/classes/Cache/Strategy/LRU.html +0 -238
  170. data/doc/rdoc/classes/Cache/Strategy/Unbounded.html +0 -225
  171. data/doc/rdoc/classes/LiteralMethod.html +0 -196
  172. data/doc/rdoc/classes/Main.html +0 -289
  173. data/doc/rdoc/classes/OgApplication.html +0 -126
  174. data/doc/rdoc/classes/OgScaffolder.html +0 -827
  175. data/doc/rdoc/classes/OgScaffolder/Editor.html +0 -565
  176. data/doc/rdoc/classes/OgSession.html +0 -172
  177. data/doc/rdoc/classes/Recipe.html +0 -113
  178. data/doc/rdoc/classes/Wee/AbstractSession.html +0 -502
  179. data/doc/rdoc/classes/Wee/Brush/ActionCallbackMixin.html +0 -148
  180. data/doc/rdoc/classes/Wee/Brush/ActionMixin.html +0 -146
  181. data/doc/rdoc/classes/Wee/Brush/ActionURLCallbackMixin.html +0 -154
  182. data/doc/rdoc/classes/Wee/Brush/AssignMixin.html +0 -141
  183. data/doc/rdoc/classes/Wee/Brush/CallbackMixin.html +0 -141
  184. data/doc/rdoc/classes/Wee/Brush/InputCallbackMixin.html +0 -148
  185. data/doc/rdoc/classes/Wee/Brush/SelectListTag/SelectListCallback.html +0 -158
  186. data/doc/rdoc/classes/Wee/Brush/ToCallback.html +0 -146
  187. data/doc/rdoc/classes/Wee/Callback.html +0 -231
  188. data/doc/rdoc/classes/Wee/CallbackStream.html +0 -227
  189. data/doc/rdoc/classes/Wee/Canvas.html +0 -235
  190. data/doc/rdoc/classes/Wee/CanvasMixin.html +0 -225
  191. data/doc/rdoc/classes/Wee/Component/OnAnswer.html +0 -153
  192. data/doc/rdoc/classes/Wee/ComponentDispatcher.html +0 -289
  193. data/doc/rdoc/classes/Wee/ComponentRunner.html +0 -321
  194. data/doc/rdoc/classes/Wee/ErrorPage.html +0 -175
  195. data/doc/rdoc/classes/Wee/Examples.html +0 -114
  196. data/doc/rdoc/classes/Wee/Examples/Calculator.html +0 -319
  197. data/doc/rdoc/classes/Wee/Examples/Counter.html +0 -289
  198. data/doc/rdoc/classes/Wee/Examples/EditableCounter.html +0 -210
  199. data/doc/rdoc/classes/Wee/Examples/Window.html +0 -346
  200. data/doc/rdoc/classes/Wee/FastCGIAdaptor.html +0 -227
  201. data/doc/rdoc/classes/Wee/Helper.html +0 -148
  202. data/doc/rdoc/classes/Wee/HtmlCanvasRenderer.html +0 -1230
  203. data/doc/rdoc/classes/Wee/LiteralMethodCallback.html +0 -198
  204. data/doc/rdoc/classes/Wee/LoginDecoration.html +0 -261
  205. data/doc/rdoc/classes/Wee/Md5IdGenerator.html +0 -181
  206. data/doc/rdoc/classes/Wee/MessageBox.html +0 -180
  207. data/doc/rdoc/classes/Wee/MethodCallback.html +0 -193
  208. data/doc/rdoc/classes/Wee/Nitro.html +0 -114
  209. data/doc/rdoc/classes/Wee/Nitro/ControllerClassMixin.html +0 -192
  210. data/doc/rdoc/classes/Wee/Nitro/ControllerMixin.html +0 -345
  211. data/doc/rdoc/classes/Wee/Nitro/FormTag.html +0 -155
  212. data/doc/rdoc/classes/Wee/Nitro/HtmlCanvasRenderer.html +0 -178
  213. data/doc/rdoc/classes/Wee/Page.html +0 -115
  214. data/doc/rdoc/classes/Wee/PagelessApplication.html +0 -154
  215. data/doc/rdoc/classes/Wee/PagelessComponentDriver.html +0 -296
  216. data/doc/rdoc/classes/Wee/PagelessRequest.html +0 -208
  217. data/doc/rdoc/classes/Wee/PagelessSession.html +0 -359
  218. data/doc/rdoc/classes/Wee/Pager.html +0 -534
  219. data/doc/rdoc/classes/Wee/Rails.html +0 -114
  220. data/doc/rdoc/classes/Wee/Rails/ControllerClassMixin.html +0 -192
  221. data/doc/rdoc/classes/Wee/Rails/ControllerMixin.html +0 -342
  222. data/doc/rdoc/classes/Wee/Rails/FormTag.html +0 -155
  223. data/doc/rdoc/classes/Wee/Rails/HtmlCanvasRenderer.html +0 -177
  224. data/doc/rdoc/classes/Wee/RenderingContext.html +0 -283
  225. data/doc/rdoc/classes/Wee/RequestHandler.html +0 -341
  226. data/doc/rdoc/classes/Wee/Snapshot.html +0 -211
  227. data/doc/rdoc/classes/Wee/StateRegistry.html +0 -434
  228. data/doc/rdoc/classes/Wee/StateRegistry/Snapshot.html +0 -320
  229. data/doc/rdoc/classes/Wee/StateRegistry/WithObject.html +0 -153
  230. data/doc/rdoc/classes/Wee/Utils.html +0 -300
  231. data/doc/rdoc/classes/Wee/ValueHolder.html +0 -220
  232. data/doc/rdoc/classes/Wee/WEBrickAdaptor.html +0 -368
  233. data/doc/rdoc/files/INSTALL.html +0 -130
  234. data/doc/rdoc/files/README.html +0 -471
  235. data/doc/rdoc/files/lib/wee/adaptors/fastcgi_rb.html +0 -108
  236. data/doc/rdoc/files/lib/wee/adaptors/nitro_rb.html +0 -101
  237. data/doc/rdoc/files/lib/wee/adaptors/rails_rb.html +0 -101
  238. data/doc/rdoc/files/lib/wee/adaptors/webrick_rb.html +0 -108
  239. data/doc/rdoc/files/lib/wee/component_ext_rb.html +0 -101
  240. data/doc/rdoc/files/lib/wee/components/component_dispatcher_rb.html +0 -108
  241. data/doc/rdoc/files/lib/wee/components/form_decoration_rb.html +0 -101
  242. data/doc/rdoc/files/lib/wee/components/login_decoration_rb.html +0 -101
  243. data/doc/rdoc/files/lib/wee/components/messagebox_rb.html +0 -101
  244. data/doc/rdoc/files/lib/wee/components/page_decoration_rb.html +0 -101
  245. data/doc/rdoc/files/lib/wee/components/pager_rb.html +0 -101
  246. data/doc/rdoc/files/lib/wee/components/wrapper_decoration_rb.html +0 -101
  247. data/doc/rdoc/files/lib/wee/components_rb.html +0 -114
  248. data/doc/rdoc/files/lib/wee/context_rb.html +0 -101
  249. data/doc/rdoc/files/lib/wee/continuation/core/component_rb.html +0 -101
  250. data/doc/rdoc/files/lib/wee/continuation/session_rb.html +0 -108
  251. data/doc/rdoc/files/lib/wee/continuation_rb.html +0 -116
  252. data/doc/rdoc/files/lib/wee/core/callback_rb.html +0 -115
  253. data/doc/rdoc/files/lib/wee/core/component_rb.html +0 -108
  254. data/doc/rdoc/files/lib/wee/core/componentrunner_rb.html +0 -110
  255. data/doc/rdoc/files/lib/wee/core/context_rb.html +0 -101
  256. data/doc/rdoc/files/lib/wee/core/decoration_rb.html +0 -133
  257. data/doc/rdoc/files/lib/wee/core/idgen_rb.html +0 -101
  258. data/doc/rdoc/files/lib/wee/core/presenter_rb.html +0 -112
  259. data/doc/rdoc/files/lib/wee/core/renderer_rb.html +0 -107
  260. data/doc/rdoc/files/lib/wee/core/snapshot_rb.html +0 -113
  261. data/doc/rdoc/files/lib/wee/core/valueholder_rb.html +0 -110
  262. data/doc/rdoc/files/lib/wee/core_ext_rb.html +0 -101
  263. data/doc/rdoc/files/lib/wee/core_rb.html +0 -124
  264. data/doc/rdoc/files/lib/wee/databases/og/application_rb.html +0 -101
  265. data/doc/rdoc/files/lib/wee/databases/og/old_scaffolder_rb.html +0 -101
  266. data/doc/rdoc/files/lib/wee/databases/og/scaffolder_rb.html +0 -115
  267. data/doc/rdoc/files/lib/wee/databases/og/session_rb.html +0 -101
  268. data/doc/rdoc/files/lib/wee/databases/og_rb.html +0 -111
  269. data/doc/rdoc/files/lib/wee/examples/calculator_rb.html +0 -107
  270. data/doc/rdoc/files/lib/wee/examples/counter_rb.html +0 -101
  271. data/doc/rdoc/files/lib/wee/examples/editable_counter_rb.html +0 -114
  272. data/doc/rdoc/files/lib/wee/examples/window_rb.html +0 -101
  273. data/doc/rdoc/files/lib/wee/idgen/md5_rb.html +0 -115
  274. data/doc/rdoc/files/lib/wee/idgen/simple_rb.html +0 -107
  275. data/doc/rdoc/files/lib/wee/pageless/application_rb.html +0 -108
  276. data/doc/rdoc/files/lib/wee/pageless/request_rb.html +0 -101
  277. data/doc/rdoc/files/lib/wee/pageless/session_rb.html +0 -109
  278. data/doc/rdoc/files/lib/wee/pageless_rb.html +0 -110
  279. data/doc/rdoc/files/lib/wee/renderer/html/brushes_rb.html +0 -101
  280. data/doc/rdoc/files/lib/wee/renderer/html/canvas_rb.html +0 -108
  281. data/doc/rdoc/files/lib/wee/renderer/html/writer_rb.html +0 -108
  282. data/doc/rdoc/files/lib/wee/rendering/html/brushes_rb.html +0 -101
  283. data/doc/rdoc/files/lib/wee/rendering/html/canvas_rb.html +0 -101
  284. data/doc/rdoc/files/lib/wee/rendering/html/writer_rb.html +0 -108
  285. data/doc/rdoc/files/lib/wee/requesthandler_rb.html +0 -101
  286. data/doc/rdoc/files/lib/wee/skeleton/og/components/main_rb.html +0 -101
  287. data/doc/rdoc/files/lib/wee/skeleton/og/conf/db_rb.html +0 -114
  288. data/doc/rdoc/files/lib/wee/skeleton/og/models/recipe_rb.html +0 -101
  289. data/doc/rdoc/files/lib/wee/skeleton/og/run_rb.html +0 -115
  290. data/doc/rdoc/files/lib/wee/skeleton/simple/components/main_rb.html +0 -101
  291. data/doc/rdoc/files/lib/wee/skeleton/simple/run_rb.html +0 -111
  292. data/doc/rdoc/files/lib/wee/snapshot_ext_rb.html +0 -101
  293. data/doc/rdoc/files/lib/wee/snapshot_rb.html +0 -107
  294. data/doc/rdoc/files/lib/wee/stuff_rb.html +0 -144
  295. data/doc/rdoc/files/lib/wee/template_rb.html +0 -101
  296. data/doc/rdoc/files/lib/wee/utils/autoreload_rb.html +0 -101
  297. data/doc/rdoc/files/lib/wee/utils/cache_rb.html +0 -108
  298. data/doc/rdoc/files/lib/wee/utils/helper_rb.html +0 -101
  299. data/doc/rdoc/files/lib/wee/utils_rb.html +0 -110
  300. data/examples/ajax/ajax.js +0 -444
  301. data/examples/ajax/ajax.rb +0 -31
  302. data/examples/cc.rb +0 -74
  303. data/examples/dispatcher.rb +0 -37
  304. data/examples/draw.rb +0 -94
  305. data/examples/live-update.rb +0 -45
  306. data/examples/nitro/run.rb +0 -42
  307. data/examples/og-test.rb +0 -60
  308. data/examples/radio.rb +0 -44
  309. data/examples/test.rb +0 -39
  310. data/install.rb +0 -14
  311. data/lib/cache/cache.rb +0 -167
  312. data/lib/wee/abstractsession.rb +0 -96
  313. data/lib/wee/adaptors/fastcgi.rb +0 -76
  314. data/lib/wee/adaptors/nitro.rb +0 -155
  315. data/lib/wee/adaptors/rails.rb +0 -154
  316. data/lib/wee/adaptors/webrick.rb +0 -89
  317. data/lib/wee/components.rb +0 -7
  318. data/lib/wee/components/component_dispatcher.rb +0 -46
  319. data/lib/wee/components/form_decoration.rb +0 -7
  320. data/lib/wee/components/login_decoration.rb +0 -35
  321. data/lib/wee/components/page_decoration.rb +0 -14
  322. data/lib/wee/components/wrapper_decoration.rb +0 -7
  323. data/lib/wee/continuation.rb +0 -5
  324. data/lib/wee/continuation/core/component.rb +0 -56
  325. data/lib/wee/continuation/session.rb +0 -64
  326. data/lib/wee/core.rb +0 -16
  327. data/lib/wee/core/callback.rb +0 -121
  328. data/lib/wee/core/component.rb +0 -356
  329. data/lib/wee/core/componentrunner.rb +0 -73
  330. data/lib/wee/core/context.rb +0 -27
  331. data/lib/wee/core/decoration.rb +0 -138
  332. data/lib/wee/core/idgen.rb +0 -5
  333. data/lib/wee/core/page.rb +0 -1
  334. data/lib/wee/core/presenter.rb +0 -100
  335. data/lib/wee/core/renderer.rb +0 -23
  336. data/lib/wee/core/snapshot.rb +0 -21
  337. data/lib/wee/core/valueholder.rb +0 -19
  338. data/lib/wee/core_ext.rb +0 -122
  339. data/lib/wee/databases/og.rb +0 -4
  340. data/lib/wee/databases/og/application.rb +0 -3
  341. data/lib/wee/databases/og/old_scaffolder.rb +0 -98
  342. data/lib/wee/databases/og/scaffolder.rb +0 -255
  343. data/lib/wee/databases/og/session.rb +0 -9
  344. data/lib/wee/examples/calculator.rb +0 -70
  345. data/lib/wee/examples/counter.rb +0 -33
  346. data/lib/wee/idgen/md5.rb +0 -21
  347. data/lib/wee/idgen/sequential.rb +0 -11
  348. data/lib/wee/pageless.rb +0 -3
  349. data/lib/wee/pageless/application.rb +0 -13
  350. data/lib/wee/pageless/request.rb +0 -27
  351. data/lib/wee/pageless/session.rb +0 -74
  352. data/lib/wee/renderer/html/brushes.rb +0 -667
  353. data/lib/wee/renderer/html/canvas.rb +0 -265
  354. data/lib/wee/renderer/html/writer.rb +0 -80
  355. data/lib/wee/requesthandler.rb +0 -81
  356. data/lib/wee/skeleton/og/README +0 -38
  357. data/lib/wee/skeleton/og/components/main.rb +0 -20
  358. data/lib/wee/skeleton/og/conf/db.rb +0 -8
  359. data/lib/wee/skeleton/og/models/recipe.rb +0 -5
  360. data/lib/wee/skeleton/og/run.rb +0 -23
  361. data/lib/wee/skeleton/simple/README +0 -32
  362. data/lib/wee/skeleton/simple/components/main.rb +0 -25
  363. data/lib/wee/skeleton/simple/run.rb +0 -12
  364. data/lib/wee/snapshot_ext.rb +0 -41
  365. data/lib/wee/template.rb +0 -42
  366. data/lib/wee/utils.rb +0 -5
  367. data/lib/wee/utils/autoreload.rb +0 -56
  368. data/lib/wee/utils/cache.rb +0 -7
  369. data/lib/wee/utils/helper.rb +0 -51
@@ -0,0 +1,38 @@
1
+ class Counter < Wee::Component
2
+ attr_accessor :count
3
+
4
+ def initialize(initial_count=0)
5
+ super()
6
+ @count = initial_count
7
+ end
8
+
9
+ def backtrack(state)
10
+ super
11
+ state.add_ivar(self, :@count, @count)
12
+ end
13
+
14
+ def dec
15
+ @count -= 1
16
+ end
17
+
18
+ def inc
19
+ @count += 1
20
+ end
21
+
22
+ def render(r)
23
+ r.once(self.class) {
24
+ r.css ".wee-Counter a { border: 1px dotted blue; margin: 2px; }"
25
+ }
26
+ r.div.id("wee-#{object_id.to_s(36)}").css_class('wee-Counter').with {
27
+ r.anchor.callback_method(:dec).with("--")
28
+ r.space
29
+ render_count(r)
30
+ r.space
31
+ r.anchor.callback_method(:inc).with("++")
32
+ }
33
+ end
34
+
35
+ def render_count(r)
36
+ r.text @count.to_s
37
+ end
38
+ end
@@ -1,20 +1,25 @@
1
1
  # NEEDS: FormDecoration
2
2
 
3
- require 'wee/examples/counter'
3
+ require 'demo/counter'
4
4
 
5
- class Wee::Examples::EditableCounter < Wee::Examples::Counter
5
+ class EditableCounter < Counter
6
6
 
7
7
  def initialize(initial_count=0)
8
8
  super
9
9
  @show_edit_field = false
10
10
  end
11
11
 
12
- def render_count
12
+ def backtrack(state)
13
+ super
14
+ state.add_ivar(self, :@show_edit_field, @show_edit_field)
15
+ end
16
+
17
+ def render_count(r)
13
18
  if @show_edit_field
14
- r.text_input.callback(:count=).value(@count).size(6)
15
- r.submit_button.callback(:submit).value('S')
19
+ r.text_input.value(@count).size(6).callback {|val| self.count = val}
20
+ r.submit_button.value('S').callback { submit }
16
21
  else
17
- r.anchor.callback(:submit).with(@count)
22
+ r.anchor.callback { submit }.with(@count)
18
23
  end
19
24
  end
20
25
 
@@ -1,5 +1,6 @@
1
- require 'wee/examples/window'
2
- require 'wee/examples/editable_counter'
1
+ require 'demo/window'
2
+ require 'demo/editable_counter'
3
+ require 'demo/messagebox'
3
4
 
4
5
  class RegexpValidatedInput < Wee::Component
5
6
 
@@ -10,9 +11,9 @@ class RegexpValidatedInput < Wee::Component
10
11
  @error = false
11
12
  end
12
13
 
13
- def backtrack_state(snap)
14
+ def backtrack(state)
14
15
  super
15
- snap.add(self)
16
+ state.add(self)
16
17
  end
17
18
 
18
19
  def value
@@ -24,9 +25,9 @@ class RegexpValidatedInput < Wee::Component
24
25
  @input = @value = new_value
25
26
  end
26
27
 
27
- def render
28
+ def render(r)
28
29
  r.form do
29
- r.text_input.value(@input).callback(:input=)
30
+ r.text_input.value(@input).callback {|val| self.input = val }
30
31
  r.text %(<div style="color: red">Invalid input</div>) if @error
31
32
  end
32
33
  end
@@ -52,15 +53,16 @@ class MainPage < Wee::Component
52
53
  def initialize
53
54
  super()
54
55
  @counters = (1..10).map {|i|
55
- Wee::Examples::Window.new {|w|
56
+ add_child Window.new {|w|
56
57
  w.title = "Cnt #{ i }"
57
58
  w.pos_x = "200px"
58
59
  w.pos_y = "#{i*50}px"
59
- w.child = Wee::Examples::EditableCounter.new(i)
60
+ w.add_child EditableCounter.new(i)
60
61
  }
61
62
  }
62
- children.push(*@counters)
63
- children << (@val_inp = RegexpValidatedInput.new('Michael Neumann', /^\w+\s+\w+$/))
63
+
64
+
65
+ add_child(@val_inp = RegexpValidatedInput.new('Michael Neumann', /^\w+\s+\w+$/))
64
66
 
65
67
  @arr = []
66
68
  @text = ""
@@ -71,20 +73,22 @@ class MainPage < Wee::Component
71
73
  @selected2 = []
72
74
  end
73
75
 
74
- def backtrack_state(snap)
76
+ def backtrack(state)
75
77
  super
76
- snap.add(@arr)
77
- snap.add(@text)
78
-
79
- snap.add(@list1)
80
- snap.add(@selected1)
81
- snap.add(@list2)
82
- snap.add(@selected2)
78
+ backtrack_children(state)
79
+ backtrack_decoration(state)
80
+ state.add(@arr)
81
+ state.add(@text)
82
+
83
+ state.add(@list1)
84
+ state.add(@selected1)
85
+ state.add(@list2)
86
+ state.add(@selected2)
83
87
  end
84
88
 
85
89
  attr_accessor :text
86
90
 
87
- def render
91
+ def render(r)
88
92
  r.page.title("Counter Test").with do
89
93
 
90
94
  r.form do
@@ -110,7 +114,7 @@ class MainPage < Wee::Component
110
114
  end
111
115
 
112
116
  r.form do
113
- r.text_input.value(@text).callback{|@text|}
117
+ r.text_input.value(@text).callback{|val| @text = val}
114
118
  r.submit_button.callback{add}.value('add')
115
119
  end
116
120
 
@@ -118,12 +122,12 @@ class MainPage < Wee::Component
118
122
  end
119
123
 
120
124
  def add
121
- call Wee::MessageBox.new("Do you really want to add '" + @text + "'?"), proc {|res|
125
+ call Wee::MessageBox.new("Do you really want to add '" + @text + "'?") do |res|
122
126
  if res
123
- call Wee::MessageBox.new("Do you really really really want to add '" + @text + "'?"), proc {|res2|
127
+ call Wee::MessageBox.new("Do you really really really want to add '" + @text + "'?") do |res2|
124
128
  @arr << @text if res2
125
- }
129
+ end
126
130
  end
127
- }
131
+ end
128
132
  end
129
133
  end
@@ -0,0 +1,19 @@
1
+ class FileUploadTest < Wee::Component
2
+ def render(r)
3
+ r.file_upload.callback {|f| call Uploaded.new(f[:tempfile]) }
4
+ r.break
5
+ r.submit_button.name('Upload')
6
+ end
7
+
8
+ class Uploaded < Wee::Component
9
+ def initialize(file)
10
+ super()
11
+ @file = file
12
+ end
13
+
14
+ def render(r)
15
+ r.pre { r.encode_text @file.read }
16
+ r.anchor.callback_method(:answer).with('back')
17
+ end
18
+ end
19
+ end
@@ -4,12 +4,12 @@ class Wee::MessageBox < Wee::Component
4
4
  @text = text
5
5
  end
6
6
 
7
- def render
7
+ def render(r)
8
8
  r.bold(@text)
9
9
  r.form do
10
- r.submit_button.value('OK').callback(:answer, true)
10
+ r.submit_button.value('OK').callback { answer true }
11
11
  r.space
12
- r.submit_button.value('Cancel').callback(:answer, false)
12
+ r.submit_button.value('Cancel').callback { answer false }
13
13
  end
14
14
  end
15
15
  end
@@ -0,0 +1,33 @@
1
+ class RadioTest < Wee::Component
2
+ def render(r)
3
+ grp1 = r.new_radio_group
4
+ grp2 = r.new_radio_group
5
+
6
+ r.paragraph
7
+ r.text "Group1"
8
+ r.text " (your choice: #{@g1})" if @g1
9
+ r.break
10
+
11
+ r.text "R1: "
12
+ r.radio_button.group(grp1).checked(@g1.nil? || @g1 == 'R1').callback { @g1 = 'R1' }
13
+ r.break
14
+
15
+ r.text "R2: "
16
+ r.radio_button.group(grp1).checked(@g1 == 'R2').callback { @g1 = 'R2' }
17
+
18
+ r.paragraph
19
+ r.text "Group2"
20
+ r.text " (your choice: #{@g2})" if @g2
21
+ r.break
22
+
23
+ r.text "R1: "
24
+ r.radio_button.group(grp2).checked(@g2.nil? || @g2 == 'R1').callback { @g2 = 'R1' }
25
+ r.break
26
+
27
+ r.text "R2: "
28
+ r.radio_button.group(grp2).checked(@g2 == 'R2').callback { @g2 = 'R2' }
29
+
30
+ r.paragraph
31
+ r.submit_button.value('Submit')
32
+ end
33
+ end
@@ -1,6 +1,6 @@
1
- class Wee::Examples::Window < Wee::Component
1
+ class Window < Wee::Component
2
2
 
3
- attr_accessor :title, :pos_x, :pos_y, :child
3
+ attr_accessor :title, :pos_x, :pos_y
4
4
 
5
5
  def initialize(&block)
6
6
  super()
@@ -9,16 +9,17 @@ class Wee::Examples::Window < Wee::Component
9
9
  block.call(self) if block
10
10
  end
11
11
 
12
- def children
13
- [@child].uniq
12
+ def backtrack(state)
13
+ super
14
+ state.add_ivar(self, :@status, @status)
14
15
  end
15
16
 
16
- def process_callbacks(&block)
17
+ def process_callbacks(callbacks)
17
18
  return if @status == :closed
18
19
  super
19
20
  end
20
21
 
21
- def render
22
+ def render(r)
22
23
  return if @status == :closed
23
24
 
24
25
  r.table.cellspacing(0).style("border:solid 1px grey; position: absolute; left: #{@pos_x}; top: #{@pos_y};").with do
@@ -26,17 +27,21 @@ class Wee::Examples::Window < Wee::Component
26
27
  r.table_data.style("text-align: left; width: 66%").with(@title)
27
28
  r.table_data.style("text-align: right").with do
28
29
  if @status == :minimized
29
- r.anchor.callback(:maximize).with("^")
30
+ r.anchor.callback{maximize}.with("^")
30
31
  else
31
- r.anchor.callback(:minimize).with("_")
32
+ r.anchor.callback{minimize}.with("_")
32
33
  end
33
34
  r.space
34
- r.anchor.callback(:close).with("x")
35
+ r.anchor.callback{close}.with("x")
35
36
  end
36
37
  end
37
38
  r.table_row do
38
39
  r.table_data.colspan(2).with do
39
- r.render(@child) if @child and @status == :normal
40
+ if @status == :normal
41
+ each_child do |child|
42
+ r.render(child)
43
+ end
44
+ end
40
45
  end
41
46
  end
42
47
  end
@@ -1,7 +1,6 @@
1
+ $LOAD_PATH.unshift "../lib"
1
2
  require 'rubygems'
2
3
  require 'wee'
3
- require 'wee/adaptors/webrick'
4
- require 'wee/utils'
5
4
 
6
5
  class HelloWorld < Wee::Component
7
6
  def initialize
@@ -9,9 +8,9 @@ class HelloWorld < Wee::Component
9
8
  add_decoration(Wee::PageDecoration.new("Hello World"))
10
9
  end
11
10
 
12
- def render
11
+ def render(r)
13
12
  r.h1 "Hello World from Wee!"
14
13
  end
15
14
  end
16
15
 
17
- Wee::WEBrickAdaptor.register('/app' => Wee::Utils.app_for(HelloWorld)).start
16
+ Wee.run(HelloWorld) if __FILE__ == $0
@@ -1,4 +1,4 @@
1
- class Wee::Pager < Wee::Component
1
+ class Pager < Wee::Component
2
2
  attr_accessor :num_entries, :entries_per_page
3
3
  attr_reader :current_page
4
4
 
@@ -61,38 +61,38 @@ class Wee::Pager < Wee::Component
61
61
  validate
62
62
  end
63
63
 
64
- def render
64
+ def render(r)
65
65
  return if num_pages() <= 0
66
- render_arrow(:first, "<<", "Go to first page"); r.space(2)
67
- render_arrow(:prev, "<", "Go to previous page"); r.space(2)
68
- render_index; r.space(2)
69
- render_arrow(:next, ">", "Go to next page"); r.space(2)
70
- render_arrow(:last, ">>", "Go to last page")
66
+ render_arrow(r, :first, "<<", "Go to first page"); r.space(2)
67
+ render_arrow(r, :prev, "<", "Go to previous page"); r.space(2)
68
+ render_index(r); r.space(2)
69
+ render_arrow(r, :next, ">", "Go to next page"); r.space(2)
70
+ render_arrow(r, :last, ">>", "Go to last page")
71
71
  end
72
72
 
73
73
  private
74
74
 
75
- def render_arrow(sym, text, tooltip=text)
76
- r.anchor.callback(sym).tooltip(tooltip).with { r.encode_text(text) }
75
+ def render_arrow(r, sym, text, tooltip=text)
76
+ r.anchor.callback_method(sym).tooltip(tooltip).with { r.encode_text(text) }
77
77
  end
78
78
 
79
- def render_index
79
+ def render_index(r)
80
80
  last = last_page_index()
81
81
  (0 .. last).each do |i|
82
82
  if i == @current_page
83
- render_page_num(i, true)
83
+ render_page_num(r, i, true)
84
84
  else
85
- render_page_num(i, false)
85
+ render_page_num(r, i, false)
86
86
  end
87
87
  r.space if i < last
88
88
  end
89
89
  end
90
90
 
91
- def render_page_num(num, current)
91
+ def render_page_num(r, num, current)
92
92
  if current
93
93
  r.bold(num+1)
94
94
  else
95
- r.anchor.callback(:goto, num).with(num+1)
95
+ r.anchor.callback{ goto(num) }.with(num+1)
96
96
  end
97
97
  end
98
98
 
data/lib/wee.rb CHANGED
@@ -1,38 +1,61 @@
1
1
  module Wee
2
- Version = "0.10.0"
3
- LibPath = File.dirname(__FILE__)
2
+ Version = "2.0.0"
4
3
  end
5
4
 
6
- module Wee::Examples; end
5
+ require 'rack'
7
6
 
8
- require 'wee/core'
9
- require 'wee/core_ext'
7
+ require 'wee/state'
8
+ require 'wee/callback'
9
+
10
+ require 'wee/presenter'
11
+ require 'wee/decoration'
12
+ require 'wee/component'
10
13
 
11
14
  require 'wee/application'
12
- require 'wee/requesthandler'
13
15
  require 'wee/request'
14
16
  require 'wee/response'
15
17
  require 'wee/session'
16
18
 
17
- require 'wee/components'
18
- require 'wee/snapshot_ext'
19
-
20
- require 'wee/template'
21
-
22
- require 'wee/renderer/html/writer'
23
- require 'wee/renderer/html/brushes'
24
- require 'wee/renderer/html/canvas'
25
- Wee::DefaultRenderer = Wee::HtmlCanvasRenderer
26
-
27
- require 'wee/idgen/sequential'
28
- require 'wee/idgen/md5'
19
+ require 'wee/html_document'
20
+ require 'wee/html_brushes'
21
+ require 'wee/html_canvas'
22
+
23
+ if RUBY_VERSION >= "1.9"
24
+ begin
25
+ require 'continuation'
26
+ rescue LoadError
27
+ end
28
+ unless String.instance_methods.include?(:each)
29
+ # required by Rack
30
+ class String
31
+ def each() yield self end
32
+ end
33
+ end
34
+ end
29
35
 
30
- def Wee.run(component, add_page_decoration=true, mount_path='/app')
31
- require 'wee/utils'
32
- require 'wee/adaptors/webrick'
36
+ Wee::DefaultRenderer = Wee::HtmlCanvas
37
+
38
+ def Wee.run(component_class=nil, mount_path='/', port=2000, &block)
39
+ raise ArgumentError if component_class and block
40
+
41
+ require 'rack/handler/webrick'
42
+ app = Rack::Builder.app do
43
+ map mount_path do
44
+ if block
45
+ run Wee::Application.new(&block)
46
+ else
47
+ run Wee::Application.new { Wee::Session.new(component_class.new) }
48
+ end
49
+ end
50
+ end
51
+ Rack::Handler::WEBrick.run(app, :Port => port)
52
+ end
33
53
 
34
- component = component.new if component.kind_of?(Class)
35
- component.add_decoration(Wee::PageDecoration.new('Welcome to Wee!')) if add_page_decoration
36
- component.add_decoration(Wee::FormDecoration.new)
37
- Wee::WEBrickAdaptor.register(mount_path => Wee::Utils.app_for { component }).start
54
+ #
55
+ # Like Wee.run, but for use with continuations.
56
+ #
57
+ def Wee.runcc(component_class, *args)
58
+ Wee.run(nil, *args) {
59
+ Wee::Session.new(component_class.new, Wee::Session::ThreadSerializer.new)
60
+ }
38
61
  end