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
data/install.rb DELETED
@@ -1,14 +0,0 @@
1
- require 'rbconfig'
2
- require 'ftools'
3
-
4
- # Install lib
5
- dst_dir = Config::CONFIG['sitelibdir']
6
- Dir.chdir('lib') {
7
- Dir['**/*'].reject {|f| f =~ /\.svn($|\/)/ or not File.file?(f) }.each {|file|
8
- File.mkpath File.join(dst_dir, File.dirname(file)), true
9
- File.install file, File.join(dst_dir, file), 0644, true
10
- }
11
- }
12
-
13
- # Install bin
14
- File.install 'bin/wee', File.join(Config::CONFIG['bindir'], 'wee'), 0755, true
@@ -1,167 +0,0 @@
1
- unless Enumerable.instance_methods.include?("min_by")
2
- # for Ruby 1.8
3
- module Enumerable
4
- def min_by(&block)
5
- min {|i,j| block.call(i) <=> block.call(j) }
6
- end
7
- end
8
- end
9
-
10
- # Abstract super class of all cache implementations.
11
- class Cache; end
12
-
13
- # Abstract super class of all caching strategies.
14
- class Cache::Strategy; end
15
-
16
- # Implements an unbounded cache strategy. The cache size can grow to infinity.
17
- class Cache::Strategy::Unbounded < Cache::Strategy
18
- class Item < Struct.new(:value); end
19
- def item_class() Item end
20
-
21
- def access(item) end
22
- def delete(item) end
23
- def insert_or_extrude(item, enum) end
24
- end
25
-
26
- # Abstract class for a capacity bounded strategy. Only up to _capacity_ items
27
- # are allowed to be stored in the cache at any time.
28
- class Cache::Strategy::CapacityBounded < Cache::Strategy
29
- attr_accessor :capacity
30
-
31
- def initialize(capacity)
32
- @capacity = capacity
33
- @n_items = 0 # number of items in cache
34
- end
35
-
36
- def inc(item)
37
- raise if full?
38
- @n_items += 1
39
- end
40
-
41
- def dec(item)
42
- raise if empty?
43
- @n_items -= 1
44
- end
45
-
46
- def full?
47
- @n_items >= @capacity
48
- end
49
-
50
- def empty?
51
- @n_items == 0
52
- end
53
- end
54
-
55
- # Implements the least frequently used (LFU) strategy.
56
- class Cache::Strategy::LFU < Cache::Strategy::CapacityBounded
57
- class Item < Struct.new(:value, :freq); end
58
- def item_class() Item end
59
-
60
- def access(item)
61
- item.freq += 1
62
- end
63
-
64
- def delete(item)
65
- dec(item)
66
- end
67
-
68
- # enum::
69
- # a [key, item] enumerable
70
- #
71
- def insert_or_extrude(item, enum)
72
- # find least recently used key/item and yield
73
- yield enum.min_by {|key, it| it.freq} while full?
74
- item.freq = 0
75
- inc(item)
76
- end
77
- end
78
-
79
- # Implements the least recently used (LRU) strategy.
80
- class Cache::Strategy::LRU < Cache::Strategy::CapacityBounded
81
- class Item < Struct.new(:value, :time); end
82
- def item_class() Item end
83
-
84
- def access(item)
85
- item.time = Time.now
86
- end
87
-
88
- def delete(item)
89
- dec(item)
90
- end
91
-
92
- # enum::
93
- # a [key, item] enumerable
94
- #
95
- def insert_or_extrude(item, enum)
96
- # find least recently used key/item and yield
97
- yield enum.min_by {|key, it| it.time} while full?
98
- item.time = Time.now
99
- inc(item)
100
- end
101
- end
102
-
103
- #
104
- # Implements a cache using a parameterizable strategy and a storage.
105
- # The protocol that the _store_ must understand is:
106
- #
107
- # fetch(key) -> val
108
- # has_key?(key)
109
- # delete(key) -> val
110
- # each {|key, val| }
111
- #
112
- class Cache::StorageCache < Cache
113
-
114
- def initialize(strategy, store=Hash.new, store_on_update=false)
115
- @strategy = strategy
116
- @store = store
117
- @store_on_update = store_on_update
118
- end
119
-
120
- def has_key?(key)
121
- @store.has_key?(key)
122
- end
123
-
124
- def delete(key)
125
- if @store.has_key?(key)
126
- item = @store.delete(key)
127
- @strategy.delete(item)
128
- item.value
129
- else
130
- nil
131
- end
132
- end
133
-
134
- def fetch(key, default_value=nil)
135
- if @store.has_key?(key)
136
- item = @store.fetch(key)
137
- @strategy.access(item)
138
- @store.store(key, item) if @store_on_update
139
- item.value
140
- else
141
- default_value
142
- end
143
- end
144
-
145
- def store(key, value)
146
- if @store.has_key?(key)
147
- # update only
148
- item = @store.fetch(key)
149
- item.value = value
150
- @strategy.access(item)
151
- @store.store(key, item) if @store_on_update
152
- else
153
- # insert new item
154
- item = @strategy.item_class.new
155
- item.value = value
156
- @strategy.insert_or_extrude(item, @store) do |k, i|
157
- @strategy.delete(i)
158
- @store.delete(k)
159
- end
160
- @store.store(key, item) # correct!
161
- end
162
- value
163
- end
164
-
165
- alias [] fetch
166
- alias []= store
167
- end
@@ -1,96 +0,0 @@
1
- require 'thread'
2
-
3
- class Wee::AbstractSession < Wee::RequestHandler
4
-
5
- def self.current
6
- Thread.current[:wee_session] || (raise "Not in session")
7
- end
8
-
9
- def initialize
10
- # to serialize the requests we need a mutex
11
- @mutex = Mutex.new
12
-
13
- super()
14
- end
15
-
16
- # Returns the current context.
17
-
18
- def current_context
19
- @context
20
- end
21
-
22
- # Called by Wee::Application to send the session a request.
23
-
24
- def handle_request(context)
25
- with_session {
26
- @mutex.synchronize {
27
- begin
28
- @context = context
29
- super
30
- awake
31
- process_request
32
- sleep
33
- ensure
34
- @context = nil # clean up
35
- end
36
- }
37
- }
38
- rescue Exception => exn
39
- set_response(context, Wee::ErrorResponse.new(exn))
40
- end
41
-
42
- protected
43
-
44
- def set_response(context, response)
45
- context.response = response
46
- end
47
-
48
- protected
49
-
50
- # Is called before process_request is invoked.
51
- # Can be used to setup e.g. a database connection.
52
- #
53
- # OVERWRITE IT (if you like)!
54
-
55
- def awake
56
- end
57
-
58
- # Is called after process_request is run.
59
- # Can be used to release e.g. a database connection.
60
- #
61
- # OVERWRITE IT (if you like)!
62
-
63
- def sleep
64
- end
65
-
66
- private
67
-
68
- # The block is run inside a session.
69
-
70
- def with_session
71
- Thread.current[:wee_session] = self
72
- yield
73
- ensure
74
- Thread.current[:wee_session] = nil
75
- end
76
-
77
- # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
78
- # :section: Properties
79
- # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
80
-
81
- public
82
-
83
- def properties() @__properties end
84
- def properties=(props) @__properties = props end
85
-
86
- # Returns an "owned" property for the given +klass+.
87
-
88
- def get_property(prop, klass)
89
- if self.properties
90
- self.properties.fetch(klass, {})[prop]
91
- else
92
- nil
93
- end
94
- end
95
-
96
- end
@@ -1,76 +0,0 @@
1
- require 'fcgi'
2
-
3
- Socket.do_not_reverse_lookup = true
4
-
5
- # A FastCGI adaptor for Wee.
6
- #
7
- # Depends on ruby-fcgi (http://raa.ruby-lang.org/list.rhtml?name=fcgi) or via
8
- # Rubygems (gem install fcgi).
9
- #
10
- # Example of usage:
11
- #
12
- # require 'wee/adaptors/fastcgi'
13
- # Wee::FastCGIAdaptor.start('/app', application)
14
- #
15
- # == Setup FastCGI with Lighttpd
16
- #
17
- # # lighttpd.conf
18
- # server.modules = (
19
- # "mod_fastcgi"
20
- # )
21
- #
22
- # fastcgi.server = (
23
- # "/app" =>
24
- # ( "fcgi" =>
25
- # (
26
- # "host" => 127.0.0.1",
27
- # "port" => 3000,
28
- # "check-local" => "disable"
29
- # )
30
- # )
31
- # )
32
- #
33
- # Now start the Wee application (the file must be executable):
34
- #
35
- # spawn-fcgi -f ./run.rb -p 3000
36
- #
37
- # Finally start the lighttpd server:
38
- #
39
- # lighttpd -D -f lighttpd.conf
40
- #
41
-
42
- class Wee::FastCGIAdaptor
43
- def self.start(mount_path, application, request_class=Wee::Request)
44
- FCGI.each_cgi {|cgi|
45
- query = Hash.new
46
-
47
- # TODO: WEBrick like: return a string which has a to_list method!
48
- cgi.params.each {|k, v|
49
- raise if v.empty?
50
- obj = v.first
51
- obj.instance_variable_set("@__as_list", v)
52
- def obj.as_list() @__as_list end
53
-
54
- query[k] = obj
55
- }
56
-
57
- # TODO
58
- header = []
59
-
60
- context = Wee::Context.new(request_class.new(mount_path,
61
- cgi.script_name, header, query, cgi.cookies))
62
-
63
- application.handle_request(context)
64
-
65
- header = {}
66
- header['status'] = context.response.status.to_s
67
-
68
- context.response.header.each { |k,v| header[k] = v }
69
- if context.response.cookies?
70
- header['cookie'] = context.response.cookies
71
- end
72
-
73
- cgi.out(header) { context.response.content }
74
- }
75
- end
76
- end
@@ -1,155 +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::Nitro::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
-
32
- module Wee::Nitro
33
-
34
- class FormTag < Wee::Brush::FormTag
35
- def with(*args, &block)
36
- rctx = @canvas.rendering_context
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::Nitro::FormTag.new, *args, &block)
49
- end
50
-
51
- def build_url(hash={})
52
- cid = hash[:callback_id]
53
- controller = rendering_context.context.controller_name
54
-
55
- url = ""
56
- url << "/#{ controller }" if controller
57
- url << "/callback"
58
- url << "?__c=#{ rendering_context.component_name }"
59
- url << "&__a=#{ rendering_context.redirect_action }" if rendering_context.redirect_action
60
- url << "&#{ cid }" if cid
61
- url
62
- end
63
- end
64
-
65
- module ControllerClassMixin
66
- def register_component(name, &block)
67
- registered_components[name] = block
68
- end
69
-
70
- def registered_components
71
- @@registered_components ||= Hash.new
72
- end
73
-
74
- def scaffold_with_component(name=nil, &block)
75
- name ||= self.name
76
- register_component(name, &block) if block
77
- send(:define_method, :index) do
78
- show_component name
79
- end
80
- end
81
- end
82
-
83
- module ControllerMixin
84
-
85
- def self.included(klass)
86
- klass.extend(ControllerClassMixin)
87
- end
88
-
89
- public
90
-
91
- def callback
92
- c = components[request.params['__c']]
93
- raise "no component found" if c.nil?
94
- callback_stream = Wee::CallbackStream.new(c.callbacks, request.params)
95
- c.process_callbacks(callback_stream)
96
-
97
- controller = context.controller_name
98
- action = request.params['__a'] || 'index'
99
- redirect [controller, action].compact.join("/")
100
- end
101
-
102
- protected
103
-
104
- def make_component(name, obj)
105
- if components.has_key?(name)
106
- raise "disallowed to overwrite component #{ name }"
107
- else
108
- components[name] = Wee::PagelessComponentDriver.new(obj, Wee::CallbackRegistry.new(Wee::SequentialIdGenerator.new))
109
- end
110
- end
111
-
112
- def drop_component(name)
113
- if components.has_key?(name)
114
- components.delete(name)
115
- else
116
- raise "component #{ name } not found"
117
- end
118
- end
119
-
120
- def has_component?(name)
121
- components.has_key?(name)
122
- end
123
-
124
- def _show_component(name, hash={}, out='')
125
- cb = Wee::CallbackRegistry.new(Wee::SequentialIdGenerator.new)
126
- rctx = Wee::RenderingContext.new(context(), cb, Wee::HtmlWriter.new(out))
127
- rctx.component_name = name
128
- rctx.controller = self
129
- rctx.redirect_action = hash[:redirect_action]
130
-
131
- unless c = components[name]
132
- if block = self.class.registered_components[name]
133
- make_component name, block.call
134
- c = components[name]
135
- end
136
- end
137
-
138
- raise "component #{ name } not found" if c.nil?
139
-
140
- c.render(rctx)
141
- c.callbacks = cb
142
- out
143
- end
144
-
145
- def show_component(name, hash={})
146
- _show_component(name, hash, @out)
147
- end
148
-
149
- def components
150
- session[:COMPONENTS] ||= Hash.new
151
- end
152
-
153
- end
154
-
155
- end # module Wee::Nitro