waves 0.7.7 → 0.8.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 (402) hide show
  1. data/bin/waves +17 -72
  2. data/doc/HISTORY +1 -44
  3. data/doc/README +1 -0
  4. data/doc/VERSION +1 -0
  5. data/lib/caches/file.rb +48 -0
  6. data/lib/caches/memcached.rb +40 -0
  7. data/lib/caches/simple.rb +25 -0
  8. data/lib/caches/synchronized.rb +25 -0
  9. data/lib/commands/console.rb +35 -0
  10. data/lib/commands/generate.rb +52 -0
  11. data/lib/commands/help.rb +5 -0
  12. data/lib/commands/{waves-server.rb → server.rb} +16 -3
  13. data/lib/dispatchers/base.rb +21 -20
  14. data/lib/dispatchers/default.rb +11 -63
  15. data/lib/ext/float.rb +13 -0
  16. data/lib/{utilities → ext}/hash.rb +2 -2
  17. data/lib/{utilities → ext}/integer.rb +5 -2
  18. data/lib/ext/kernel.rb +20 -0
  19. data/lib/ext/module.rb +20 -0
  20. data/lib/{utilities → ext}/object.rb +3 -5
  21. data/lib/ext/string.rb +20 -0
  22. data/lib/ext/symbol.rb +11 -0
  23. data/lib/ext/tempfile.rb +5 -0
  24. data/lib/foundations/classic.rb +64 -0
  25. data/lib/foundations/compact.rb +50 -0
  26. data/lib/helpers/basic.rb +11 -0
  27. data/lib/helpers/doc_type.rb +34 -0
  28. data/lib/helpers/extended.rb +21 -0
  29. data/lib/helpers/form.rb +3 -1
  30. data/lib/helpers/formatting.rb +3 -3
  31. data/lib/helpers/layouts.rb +37 -0
  32. data/lib/helpers/model.rb +8 -4
  33. data/lib/helpers/view.rb +2 -4
  34. data/lib/layers/inflect/english.rb +48 -5
  35. data/lib/layers/mvc.rb +18 -18
  36. data/lib/layers/mvc/controllers.rb +41 -0
  37. data/lib/layers/mvc/extensions.rb +52 -0
  38. data/lib/layers/orm/{active_record.rb → providers/active_record.rb} +9 -14
  39. data/lib/layers/orm/{active_record → providers/active_record}/migrations/empty.rb.erb +0 -0
  40. data/lib/layers/orm/{active_record → providers/active_record}/tasks/generate.rb +1 -1
  41. data/lib/layers/orm/{active_record → providers/active_record}/tasks/schema.rb +1 -1
  42. data/lib/layers/orm/{data_mapper.rb → providers/data_mapper.rb} +3 -4
  43. data/lib/layers/orm/providers/filebase.rb +25 -0
  44. data/lib/layers/orm/{sequel.rb → providers/sequel.rb} +11 -7
  45. data/lib/layers/orm/{sequel → providers/sequel}/migrations/empty.rb.erb +0 -0
  46. data/lib/layers/orm/{sequel → providers/sequel}/tasks/generate.rb +5 -3
  47. data/lib/layers/orm/{sequel → providers/sequel}/tasks/schema.rb +2 -2
  48. data/lib/{renderers → layers/renderers}/erubis.rb +10 -13
  49. data/lib/{renderers → layers/renderers}/haml.rb +27 -25
  50. data/lib/layers/renderers/markaby.rb +29 -0
  51. data/lib/matchers/accept.rb +21 -0
  52. data/lib/matchers/base.rb +30 -0
  53. data/lib/matchers/content_type.rb +17 -0
  54. data/lib/matchers/path.rb +67 -0
  55. data/lib/matchers/query.rb +21 -0
  56. data/lib/matchers/request.rb +27 -0
  57. data/lib/matchers/resource.rb +19 -0
  58. data/lib/matchers/traits.rb +19 -0
  59. data/lib/matchers/uri.rb +20 -0
  60. data/lib/renderers/mixin.rb +15 -29
  61. data/lib/resources/mixin.rb +132 -0
  62. data/lib/resources/paths.rb +34 -0
  63. data/lib/runtime/configuration.rb +55 -135
  64. data/lib/runtime/console.rb +4 -1
  65. data/lib/runtime/logger.rb +24 -48
  66. data/lib/runtime/mime_types.rb +516 -2
  67. data/lib/runtime/mocks.rb +14 -0
  68. data/lib/runtime/monitor.rb +32 -0
  69. data/lib/runtime/request.rb +107 -39
  70. data/lib/runtime/response.rb +5 -2
  71. data/lib/runtime/response_mixin.rb +43 -22
  72. data/lib/runtime/runtime.rb +67 -0
  73. data/lib/runtime/server.rb +14 -101
  74. data/lib/runtime/session.rb +4 -43
  75. data/lib/runtime/worker.rb +86 -0
  76. data/lib/servers/base.rb +42 -0
  77. data/lib/servers/mongrel.rb +13 -0
  78. data/lib/servers/webrick.rb +13 -0
  79. data/lib/tasks/gem.rb +1 -0
  80. data/lib/tasks/generate.rb +67 -62
  81. data/lib/views/errors.rb +49 -0
  82. data/lib/views/mixin.rb +34 -82
  83. data/lib/waves.rb +36 -57
  84. data/samples/blog/Rakefile +16 -5
  85. data/samples/blog/blog.db +0 -0
  86. data/samples/blog/configurations/default.rb +11 -0
  87. data/samples/blog/configurations/development.rb +9 -11
  88. data/samples/blog/configurations/production.rb +11 -15
  89. data/samples/blog/log/waves.production +3 -0
  90. data/samples/blog/models/comment.rb +9 -0
  91. data/samples/blog/models/entry.rb +17 -0
  92. data/samples/blog/public/css/site.css +13 -2
  93. data/samples/blog/public/javascript/jquery-1.2.6.min.js +32 -0
  94. data/samples/blog/resources/entry.rb +39 -0
  95. data/samples/blog/resources/map.rb +9 -0
  96. data/samples/blog/schema/migrations/001_initial_schema.rb +3 -3
  97. data/samples/blog/schema/migrations/002_add_comments.rb +2 -2
  98. data/samples/blog/startup.rb +8 -6
  99. data/samples/blog/templates/comment/add.mab +6 -4
  100. data/samples/blog/templates/comment/list.mab +4 -4
  101. data/samples/blog/templates/entry/{editor.mab → edit.mab} +7 -6
  102. data/samples/blog/templates/entry/list.mab +10 -5
  103. data/samples/blog/templates/entry/show.mab +16 -7
  104. data/samples/blog/templates/entry/summary.mab +8 -4
  105. data/samples/blog/templates/errors/not_found_404.mab +6 -1
  106. data/samples/blog/templates/layouts/default.mab +5 -3
  107. data/samples/blog/templates/waves/status.mab +85 -0
  108. data/{app → templates/classic}/Rakefile +58 -0
  109. data/templates/classic/configurations/default.rb.erb +9 -0
  110. data/{app → templates/classic}/configurations/development.rb.erb +3 -8
  111. data/{app → templates/classic}/configurations/production.rb.erb +3 -5
  112. data/templates/classic/resources/map.rb.erb +8 -0
  113. data/templates/classic/startup.rb.erb +11 -0
  114. data/{app → templates/classic}/templates/errors/not_found_404.mab +0 -0
  115. data/{app → templates/classic}/templates/errors/server_error_500.mab +0 -0
  116. data/{app → templates/classic}/templates/layouts/default.mab +0 -0
  117. data/templates/compact/startup.rb.erb +11 -0
  118. metadata +257 -610
  119. data/app/bin/waves-console +0 -4
  120. data/app/bin/waves-server +0 -4
  121. data/app/configurations/mapping.rb.erb +0 -14
  122. data/app/controllers/.gitignore +0 -0
  123. data/app/doc/.gitignore +0 -0
  124. data/app/helpers/.gitignore +0 -0
  125. data/app/lib/application.rb.erb +0 -5
  126. data/app/lib/tasks/.gitignore +0 -0
  127. data/app/log/.gitignore +0 -0
  128. data/app/models/.gitignore +0 -0
  129. data/app/public/css/.gitignore +0 -0
  130. data/app/public/flash/.gitignore +0 -0
  131. data/app/public/images/.gitignore +0 -0
  132. data/app/public/javascript/.gitignore +0 -0
  133. data/app/schema/migrations/.gitignore +0 -0
  134. data/app/startup.rb +0 -5
  135. data/app/tmp/sessions/.gitignore +0 -0
  136. data/app/views/.gitignore +0 -0
  137. data/bin/waves-console +0 -4
  138. data/bin/waves-server +0 -4
  139. data/doc/rdoc/classes/Erubis/Context.html +0 -218
  140. data/doc/rdoc/classes/Kernel.html +0 -145
  141. data/doc/rdoc/classes/Symbol.html +0 -154
  142. data/doc/rdoc/classes/Tempfile.html +0 -161
  143. data/doc/rdoc/classes/Waves.html +0 -455
  144. data/doc/rdoc/classes/Waves/Application.html +0 -371
  145. data/doc/rdoc/classes/Waves/Blackboard.html +0 -296
  146. data/doc/rdoc/classes/Waves/Configurations.html +0 -283
  147. data/doc/rdoc/classes/Waves/Configurations/Base.html +0 -209
  148. data/doc/rdoc/classes/Waves/Configurations/Default.html +0 -237
  149. data/doc/rdoc/classes/Waves/Console.html +0 -187
  150. data/doc/rdoc/classes/Waves/Controllers.html +0 -203
  151. data/doc/rdoc/classes/Waves/Controllers/Base.html +0 -151
  152. data/doc/rdoc/classes/Waves/Controllers/Mixin.html +0 -312
  153. data/doc/rdoc/classes/Waves/Dispatchers.html +0 -118
  154. data/doc/rdoc/classes/Waves/Dispatchers/Base.html +0 -198
  155. data/doc/rdoc/classes/Waves/Dispatchers/Default.html +0 -224
  156. data/doc/rdoc/classes/Waves/Dispatchers/NotFoundError.html +0 -122
  157. data/doc/rdoc/classes/Waves/Dispatchers/Redirect.html +0 -173
  158. data/doc/rdoc/classes/Waves/Foundations.html +0 -131
  159. data/doc/rdoc/classes/Waves/Foundations/Default.html +0 -179
  160. data/doc/rdoc/classes/Waves/Foundations/Simple.html +0 -167
  161. data/doc/rdoc/classes/Waves/Helpers.html +0 -176
  162. data/doc/rdoc/classes/Waves/Helpers/AssetHelper.html +0 -212
  163. data/doc/rdoc/classes/Waves/Helpers/Common.html +0 -213
  164. data/doc/rdoc/classes/Waves/Helpers/Default.html +0 -135
  165. data/doc/rdoc/classes/Waves/Helpers/Form.html +0 -201
  166. data/doc/rdoc/classes/Waves/Helpers/Formatting.html +0 -232
  167. data/doc/rdoc/classes/Waves/Helpers/Model.html +0 -194
  168. data/doc/rdoc/classes/Waves/Helpers/NumberHelper.html +0 -165
  169. data/doc/rdoc/classes/Waves/Helpers/TagHelper.html +0 -226
  170. data/doc/rdoc/classes/Waves/Helpers/UrlHelper.html +0 -242
  171. data/doc/rdoc/classes/Waves/Helpers/View.html +0 -163
  172. data/doc/rdoc/classes/Waves/Inflect/InflectorMethods.html +0 -475
  173. data/doc/rdoc/classes/Waves/Layers.html +0 -175
  174. data/doc/rdoc/classes/Waves/Layers/DefaultErrors.html +0 -161
  175. data/doc/rdoc/classes/Waves/Layers/Inflect.html +0 -119
  176. data/doc/rdoc/classes/Waves/Layers/Inflect/English.html +0 -168
  177. data/doc/rdoc/classes/Waves/Layers/Inflect/English/Rules.html +0 -112
  178. data/doc/rdoc/classes/Waves/Layers/Inflect/English/StringMethods.html +0 -194
  179. data/doc/rdoc/classes/Waves/Layers/MVC.html +0 -204
  180. data/doc/rdoc/classes/Waves/Layers/ORM/ActiveRecord.html +0 -239
  181. data/doc/rdoc/classes/Waves/Layers/ORM/ActiveRecord/ControllerMethods.html +0 -246
  182. data/doc/rdoc/classes/Waves/Layers/ORM/ActiveRecord/Symbol.html +0 -132
  183. data/doc/rdoc/classes/Waves/Layers/ORM/DataMapper.html +0 -166
  184. data/doc/rdoc/classes/Waves/Layers/ORM/Filebase.html +0 -157
  185. data/doc/rdoc/classes/Waves/Layers/ORM/Sequel.html +0 -232
  186. data/doc/rdoc/classes/Waves/Layers/ORM/Sequel/ControllerMethods.html +0 -246
  187. data/doc/rdoc/classes/Waves/Layers/Simple.html +0 -169
  188. data/doc/rdoc/classes/Waves/Layers/SimpleErrors.html +0 -159
  189. data/doc/rdoc/classes/Waves/Logger.html +0 -288
  190. data/doc/rdoc/classes/Waves/Mapping.html +0 -760
  191. data/doc/rdoc/classes/Waves/Mapping/PrettyUrls.html +0 -129
  192. data/doc/rdoc/classes/Waves/Mapping/PrettyUrls/GetRules.html +0 -174
  193. data/doc/rdoc/classes/Waves/Mapping/PrettyUrls/RestRules.html +0 -180
  194. data/doc/rdoc/classes/Waves/MimeTypes.html +0 -200
  195. data/doc/rdoc/classes/Waves/Renderers/Erubis.html +0 -162
  196. data/doc/rdoc/classes/Waves/Renderers/Haml.html +0 -160
  197. data/doc/rdoc/classes/Waves/Renderers/Markaby.html +0 -167
  198. data/doc/rdoc/classes/Waves/Renderers/Mixin.html +0 -191
  199. data/doc/rdoc/classes/Waves/Renderers/Scope.html +0 -181
  200. data/doc/rdoc/classes/Waves/Request.html +0 -441
  201. data/doc/rdoc/classes/Waves/Request/ParseError.html +0 -111
  202. data/doc/rdoc/classes/Waves/Response.html +0 -283
  203. data/doc/rdoc/classes/Waves/ResponseMixin.html +0 -460
  204. data/doc/rdoc/classes/Waves/ResponseProxy.html +0 -269
  205. data/doc/rdoc/classes/Waves/Server.html +0 -488
  206. data/doc/rdoc/classes/Waves/Session.html +0 -330
  207. data/doc/rdoc/classes/Waves/Utilities/Hash.html +0 -185
  208. data/doc/rdoc/classes/Waves/Utilities/Integer.html +0 -424
  209. data/doc/rdoc/classes/Waves/Utilities/Module.html +0 -174
  210. data/doc/rdoc/classes/Waves/Utilities/Object.html +0 -155
  211. data/doc/rdoc/classes/Waves/Utilities/Proc.html +0 -145
  212. data/doc/rdoc/classes/Waves/Utilities/String.html +0 -290
  213. data/doc/rdoc/classes/Waves/Views.html +0 -278
  214. data/doc/rdoc/classes/Waves/Views/Base.html +0 -118
  215. data/doc/rdoc/classes/Waves/Views/Mixin.html +0 -279
  216. data/doc/rdoc/classes/Waves/Views/NoTemplateError.html +0 -111
  217. data/doc/rdoc/created.rid +0 -1
  218. data/doc/rdoc/files/README_rdoc.html +0 -415
  219. data/doc/rdoc/files/bin/waves.html +0 -135
  220. data/doc/rdoc/files/doc/HISTORY.html +0 -265
  221. data/doc/rdoc/files/lib/commands/waves-console_rb.html +0 -110
  222. data/doc/rdoc/files/lib/commands/waves-server_rb.html +0 -108
  223. data/doc/rdoc/files/lib/controllers/base_rb.html +0 -101
  224. data/doc/rdoc/files/lib/controllers/mixin_rb.html +0 -101
  225. data/doc/rdoc/files/lib/dispatchers/base_rb.html +0 -101
  226. data/doc/rdoc/files/lib/dispatchers/default_rb.html +0 -101
  227. data/doc/rdoc/files/lib/foundations/default_rb.html +0 -101
  228. data/doc/rdoc/files/lib/foundations/simple_rb.html +0 -101
  229. data/doc/rdoc/files/lib/helpers/asset_helper_rb.html +0 -101
  230. data/doc/rdoc/files/lib/helpers/common_rb.html +0 -101
  231. data/doc/rdoc/files/lib/helpers/default_rb.html +0 -101
  232. data/doc/rdoc/files/lib/helpers/form_rb.html +0 -101
  233. data/doc/rdoc/files/lib/helpers/formatting_rb.html +0 -108
  234. data/doc/rdoc/files/lib/helpers/model_rb.html +0 -101
  235. data/doc/rdoc/files/lib/helpers/number_helper_rb.html +0 -101
  236. data/doc/rdoc/files/lib/helpers/tag_helper_rb.html +0 -101
  237. data/doc/rdoc/files/lib/helpers/url_helper_rb.html +0 -101
  238. data/doc/rdoc/files/lib/helpers/view_rb.html +0 -101
  239. data/doc/rdoc/files/lib/layers/default_errors_rb.html +0 -101
  240. data/doc/rdoc/files/lib/layers/inflect/english/rules_rb.html +0 -101
  241. data/doc/rdoc/files/lib/layers/inflect/english/string_rb.html +0 -101
  242. data/doc/rdoc/files/lib/layers/inflect/english_rb.html +0 -109
  243. data/doc/rdoc/files/lib/layers/mvc_rb.html +0 -101
  244. data/doc/rdoc/files/lib/layers/orm/active_record/tasks/generate_rb.html +0 -101
  245. data/doc/rdoc/files/lib/layers/orm/active_record/tasks/schema_rb.html +0 -101
  246. data/doc/rdoc/files/lib/layers/orm/active_record_rb.html +0 -108
  247. data/doc/rdoc/files/lib/layers/orm/data_mapper_rb.html +0 -108
  248. data/doc/rdoc/files/lib/layers/orm/filebase_rb.html +0 -101
  249. data/doc/rdoc/files/lib/layers/orm/migration_rb.html +0 -101
  250. data/doc/rdoc/files/lib/layers/orm/sequel/tasks/generate_rb.html +0 -101
  251. data/doc/rdoc/files/lib/layers/orm/sequel/tasks/schema_rb.html +0 -101
  252. data/doc/rdoc/files/lib/layers/orm/sequel_rb.html +0 -108
  253. data/doc/rdoc/files/lib/layers/simple_errors_rb.html +0 -101
  254. data/doc/rdoc/files/lib/layers/simple_rb.html +0 -101
  255. data/doc/rdoc/files/lib/mapping/mapping_rb.html +0 -101
  256. data/doc/rdoc/files/lib/mapping/pretty_urls_rb.html +0 -101
  257. data/doc/rdoc/files/lib/renderers/erubis_rb.html +0 -108
  258. data/doc/rdoc/files/lib/renderers/haml_rb.html +0 -108
  259. data/doc/rdoc/files/lib/renderers/markaby_rb.html +0 -108
  260. data/doc/rdoc/files/lib/renderers/mixin_rb.html +0 -101
  261. data/doc/rdoc/files/lib/runtime/application_rb.html +0 -107
  262. data/doc/rdoc/files/lib/runtime/blackboard_rb.html +0 -101
  263. data/doc/rdoc/files/lib/runtime/configuration_rb.html +0 -101
  264. data/doc/rdoc/files/lib/runtime/console_rb.html +0 -101
  265. data/doc/rdoc/files/lib/runtime/debugger_rb.html +0 -101
  266. data/doc/rdoc/files/lib/runtime/logger_rb.html +0 -108
  267. data/doc/rdoc/files/lib/runtime/mime_types_rb.html +0 -101
  268. data/doc/rdoc/files/lib/runtime/request_rb.html +0 -101
  269. data/doc/rdoc/files/lib/runtime/response_mixin_rb.html +0 -101
  270. data/doc/rdoc/files/lib/runtime/response_proxy_rb.html +0 -101
  271. data/doc/rdoc/files/lib/runtime/response_rb.html +0 -101
  272. data/doc/rdoc/files/lib/runtime/server_rb.html +0 -108
  273. data/doc/rdoc/files/lib/runtime/session_rb.html +0 -101
  274. data/doc/rdoc/files/lib/tasks/cluster_rb.html +0 -101
  275. data/doc/rdoc/files/lib/tasks/gem_rb.html +0 -108
  276. data/doc/rdoc/files/lib/tasks/generate_rb.html +0 -101
  277. data/doc/rdoc/files/lib/utilities/hash_rb.html +0 -101
  278. data/doc/rdoc/files/lib/utilities/inflect_rb.html +0 -111
  279. data/doc/rdoc/files/lib/utilities/integer_rb.html +0 -101
  280. data/doc/rdoc/files/lib/utilities/module_rb.html +0 -101
  281. data/doc/rdoc/files/lib/utilities/object_rb.html +0 -101
  282. data/doc/rdoc/files/lib/utilities/proc_rb.html +0 -101
  283. data/doc/rdoc/files/lib/utilities/string_rb.html +0 -101
  284. data/doc/rdoc/files/lib/utilities/symbol_rb.html +0 -101
  285. data/doc/rdoc/files/lib/utilities/tempfile_rb.html +0 -115
  286. data/doc/rdoc/files/lib/views/base_rb.html +0 -101
  287. data/doc/rdoc/files/lib/views/mixin_rb.html +0 -101
  288. data/doc/rdoc/files/lib/waves_rb.html +0 -195
  289. data/doc/rdoc/fr_class_index.html +0 -104
  290. data/doc/rdoc/fr_file_index.html +0 -97
  291. data/doc/rdoc/fr_method_index.html +0 -233
  292. data/doc/rdoc/index.html +0 -24
  293. data/doc/rdoc/rdoc-style.css +0 -208
  294. data/lib/commands/waves-console.rb +0 -21
  295. data/lib/controllers/base.rb +0 -11
  296. data/lib/controllers/mixin.rb +0 -165
  297. data/lib/foundations/default.rb +0 -27
  298. data/lib/foundations/simple.rb +0 -30
  299. data/lib/helpers/asset_helper.rb +0 -67
  300. data/lib/helpers/common.rb +0 -66
  301. data/lib/helpers/default.rb +0 -13
  302. data/lib/helpers/number_helper.rb +0 -25
  303. data/lib/helpers/tag_helper.rb +0 -58
  304. data/lib/helpers/url_helper.rb +0 -77
  305. data/lib/layers/default_errors.rb +0 -26
  306. data/lib/layers/inflect/english/rules.rb +0 -88
  307. data/lib/layers/inflect/english/string.rb +0 -24
  308. data/lib/layers/orm/filebase.rb +0 -22
  309. data/lib/layers/simple.rb +0 -32
  310. data/lib/layers/simple_errors.rb +0 -23
  311. data/lib/mapping/mapping.rb +0 -289
  312. data/lib/mapping/pretty_urls.rb +0 -96
  313. data/lib/renderers/markaby.rb +0 -33
  314. data/lib/runtime/application.rb +0 -69
  315. data/lib/runtime/blackboard.rb +0 -57
  316. data/lib/runtime/debugger.rb +0 -9
  317. data/lib/runtime/response_proxy.rb +0 -30
  318. data/lib/tasks/cluster.rb +0 -26
  319. data/lib/utilities/inflect.rb +0 -110
  320. data/lib/utilities/module.rb +0 -21
  321. data/lib/utilities/proc.rb +0 -16
  322. data/lib/utilities/string.rb +0 -49
  323. data/lib/utilities/symbol.rb +0 -10
  324. data/lib/utilities/tempfile.rb +0 -9
  325. data/lib/views/base.rb +0 -9
  326. data/samples/blog/bin/waves-console +0 -3
  327. data/samples/blog/bin/waves-server +0 -3
  328. data/samples/blog/configurations/mapping.rb +0 -23
  329. data/samples/blog/doc/EMTPY +0 -0
  330. data/samples/blog/lib/application.rb +0 -5
  331. data/samples/jub/Rakefile +0 -72
  332. data/samples/jub/bin/waves-console +0 -4
  333. data/samples/jub/bin/waves-server +0 -4
  334. data/samples/jub/configurations/development.rb +0 -31
  335. data/samples/jub/configurations/mapping.rb +0 -18
  336. data/samples/jub/configurations/production.rb +0 -31
  337. data/samples/jub/lib/application.rb +0 -5
  338. data/samples/jub/startup.rb +0 -6
  339. data/samples/jub/templates/errors/not_found_404.mab +0 -2
  340. data/samples/jub/templates/errors/server_error_500.mab +0 -2
  341. data/samples/jub/templates/layouts/default.mab +0 -14
  342. data/verify/app_generation/helpers.rb +0 -24
  343. data/verify/app_generation/startup.rb +0 -39
  344. data/verify/blackboard/blackboard_verify.rb +0 -92
  345. data/verify/blackboard/helpers.rb +0 -5
  346. data/verify/configurations/attributes.rb +0 -37
  347. data/verify/configurations/helpers.rb +0 -1
  348. data/verify/configurations/rack_integration.rb +0 -29
  349. data/verify/controllers/base.rb +0 -37
  350. data/verify/controllers/helpers.rb +0 -13
  351. data/verify/controllers/interface.rb +0 -51
  352. data/verify/core/helpers.rb +0 -3
  353. data/verify/core/utilities.rb +0 -177
  354. data/verify/foundations/default.rb +0 -86
  355. data/verify/foundations/default_application/Rakefile +0 -14
  356. data/verify/foundations/default_application/bin/waves-console +0 -3
  357. data/verify/foundations/default_application/bin/waves-server +0 -3
  358. data/verify/foundations/default_application/configurations/development.rb +0 -26
  359. data/verify/foundations/default_application/configurations/mapping.rb +0 -14
  360. data/verify/foundations/default_application/configurations/production.rb +0 -30
  361. data/verify/foundations/default_application/controllers/default.rb +0 -15
  362. data/verify/foundations/default_application/controllers/loaded.rb +0 -15
  363. data/verify/foundations/default_application/defaultapplication.db +0 -0
  364. data/verify/foundations/default_application/helpers/loaded.rb +0 -10
  365. data/verify/foundations/default_application/lib/application.rb +0 -5
  366. data/verify/foundations/default_application/models/default.rb +0 -13
  367. data/verify/foundations/default_application/models/loaded.rb +0 -13
  368. data/verify/foundations/default_application/schema/migrations/templates/empty.rb.erb +0 -9
  369. data/verify/foundations/default_application/startup.rb +0 -7
  370. data/verify/foundations/default_application/templates/errors/not_found_404.mab +0 -2
  371. data/verify/foundations/default_application/templates/errors/server_error_500.mab +0 -2
  372. data/verify/foundations/default_application/templates/layouts/default.mab +0 -14
  373. data/verify/foundations/default_application/views/default.rb +0 -7
  374. data/verify/foundations/default_application/views/loaded.rb +0 -15
  375. data/verify/foundations/helpers.rb +0 -1
  376. data/verify/foundations/simple.rb +0 -25
  377. data/verify/helpers.rb +0 -76
  378. data/verify/layers/data_mapper/association_verify.rb +0 -87
  379. data/verify/layers/default_errors.rb +0 -29
  380. data/verify/layers/helpers.rb +0 -1
  381. data/verify/layers/migration.rb +0 -33
  382. data/verify/layers/sequel/model.rb +0 -41
  383. data/verify/layers/sequeltest.db +0 -0
  384. data/verify/mapping/always.rb +0 -19
  385. data/verify/mapping/filters.rb +0 -65
  386. data/verify/mapping/handle.rb +0 -24
  387. data/verify/mapping/helpers.rb +0 -7
  388. data/verify/mapping/matches.rb +0 -27
  389. data/verify/mapping/named.rb +0 -29
  390. data/verify/mapping/options.rb +0 -17
  391. data/verify/mapping/path.rb +0 -40
  392. data/verify/mapping/response_proxy.rb +0 -50
  393. data/verify/mapping/threaded.rb +0 -25
  394. data/verify/requests/helpers.rb +0 -16
  395. data/verify/requests/request.rb +0 -73
  396. data/verify/requests/response.rb +0 -59
  397. data/verify/requests/session.rb +0 -54
  398. data/verify/views/helpers.rb +0 -1
  399. data/verify/views/rendering.rb +0 -34
  400. data/verify/views/templates/foo.erb +0 -0
  401. data/verify/views/templates/moo.erb +0 -0
  402. data/verify/views/templates/moo.mab +0 -0
@@ -1,96 +0,0 @@
1
- module Waves
2
- module Mapping
3
-
4
- # A set of pre-packed mapping rules for dealing with pretty URLs (that use names instead
5
- # of numbers to identify resources). There are two modules.
6
- # - GetRules, which defines all the GET methods for dealing with named resources
7
- # - RestRules, which defines add, update, and delete rules using a REST style interface
8
- #
9
- module PrettyUrls
10
-
11
- #
12
- # GetRules defines the following URL conventions:
13
- #
14
- # /resources # => get a list of all instances of resource
15
- # /resource/name # => get a specific instance of resource with the given name
16
- # /resource/name/editor # => display an edit page for the given resource
17
- #
18
- module GetRules
19
-
20
- def self.included(target)
21
-
22
- target.module_eval do
23
-
24
- extend Waves::Mapping
25
-
26
- name = '([\w\-\_\.\+\@]+)'; model = '([\w\-]+)'
27
-
28
- # get all resources for the given model
29
- path %r{^/#{model}/?$}, :method => :get do | model |
30
- resource( model.singular ) { controller { all } | view { |data| list( model => data ) } }
31
- end
32
-
33
- # get the given resource for the given model
34
- path %r{^/#{model}/#{name}/?$}, :method => :get do | model, name |
35
- resource( model ) { controller { find( name ) } | view { |data| show( model => data ) } }
36
- end
37
-
38
- # display an editor for the given resource / model
39
- path %r{^/#{model}/#{name}/editor/?$}, :method => :get do | model, name |
40
- resource( model ) { controller { find( name ) } | view { |data| editor( model => data ) } }
41
- end
42
-
43
- end
44
-
45
- end
46
-
47
- end
48
-
49
- #
50
- # RestRules defines the following URL conventions:
51
- #
52
- # POST /resources # => add a new resource
53
- # PUT /resource/name # => update the given resource
54
- # DELETE /resource/name # => delete the given resource
55
- #
56
- module RestRules
57
-
58
- def self.included(target)
59
-
60
- target.module_eval do
61
-
62
- extend Waves::Mapping
63
-
64
- name = '([\w\-\_\.\+\@]+)'; model = '([\w\-]+)'
65
-
66
- # create a new resource for the given model
67
- path %r{^/#{model}/?$}, :method => :post do | model |
68
- resource( model.singular ) do
69
- controller do
70
- instance = create
71
- redirect( "/#{model_name}/#{instance.name}/editor" )
72
- end
73
- end
74
- end
75
-
76
- # update the given resource for the given model
77
- path %r{^/#{model}/#{name}/?$}, :method => :put do | model, name |
78
- resource( model ) { controller { update( name ); redirect( url ) } }
79
- end
80
-
81
- # delete the given resource for the given model
82
- path %r{^/#{model}/#{name}/?$}, :method => :delete do | model, name |
83
- resource( model ) { controller { delete( name ) } }
84
- end
85
-
86
- end
87
-
88
- end
89
-
90
- end
91
-
92
- end
93
-
94
- end
95
-
96
- end
@@ -1,33 +0,0 @@
1
- require 'markaby'
2
-
3
- ::Markaby::Builder.set( :indent, 2 )
4
-
5
- module Waves
6
-
7
- module Renderers
8
-
9
- class Markaby
10
-
11
- include Renderers::Mixin
12
-
13
- extension :mab
14
-
15
- # capture needed here for content fragments, otherwise
16
- # you'll just get the last tag's output ...
17
- # def self.capture( template )
18
- # "capture { #{template} }"
19
- # end
20
-
21
- def self.render( path, assigns )
22
- builder = ::Markaby::Builder.new( assigns )
23
- helper = helper( path )
24
- builder.meta_eval { include( helper ) }
25
- builder.instance_eval( template( path ) )
26
- builder.to_s
27
- end
28
-
29
- end
30
-
31
- end
32
-
33
- end
@@ -1,69 +0,0 @@
1
- # See the README for an overview.
2
- module Waves
3
-
4
- class << self
5
-
6
- # Access the principal Waves application.
7
- attr_reader :application
8
-
9
- # Register a module as a Waves application.
10
- def << ( app )
11
- @application = app if Module === app
12
- end
13
-
14
- def instance ; Waves::Application.instance ; end
15
-
16
- def method_missing(name,*args,&block)
17
- instance.send(name,*args,&block)
18
- end
19
-
20
- end
21
-
22
- # An application in Waves is anything that provides access to the Waves
23
- # runtime and the registered Waves applications. This includes both
24
- # Waves::Server and Waves::Console. Waves::Application is *not* the actual
25
- # application module(s) registered as Waves applications. To access the
26
- # main Waves application, you can use +Waves+.+application+.
27
- class Application
28
-
29
- class << self; attr_accessor :instance; end
30
-
31
- # Accessor for options passed to the application.
32
- attr_reader :options
33
-
34
- # Create a new Waves application instance.
35
- def initialize( options={} )
36
- @options = options
37
- Dir.chdir options[:directory] if options[:directory]
38
- Application.instance = self
39
- Kernel.load( :lib / 'application.rb' ) if Waves.application.nil?
40
- end
41
-
42
- def synchronize( &block )
43
- ( @mutex ||= Mutex.new ).synchronize( &block )
44
- end
45
-
46
- # The 'mode' of the application determines which configuration it will run under.
47
- def mode
48
- @mode ||= @options[:mode]||:development
49
- end
50
-
51
- # Debug is true if debug is set to true in the current configuration.
52
- def debug? ; config.debug ; end
53
-
54
- # Access the current configuration. *Example:* +Waves::Server.config+
55
- def config
56
- Waves.application.configurations[ mode ]
57
- end
58
-
59
- # Access the mappings for the application.
60
- def mapping ; Waves.application.configurations[ :mapping ] ; end
61
-
62
- # Reload the modules specified in the current configuration.
63
- def reload ; config.reloadable.each { |mod| mod.reload } ; end
64
-
65
- # Returns the cache set for the current configuration
66
- def cache ; config.cache ; end
67
- end
68
-
69
- end
@@ -1,57 +0,0 @@
1
- module Waves
2
-
3
- # Encapsulates the blackboard associated with a given request. The scope of the blackboard is
4
- # the same as the request object it gets attached to.
5
- #
6
- # The Waves blackboard is a very simple shared storaged usable during the request processing.
7
- # It is available within:
8
- # - mappings
9
- # - controllers
10
- # - helpers
11
- #
12
- # Adding a value:
13
- # blackboard.value1 = 1
14
- # blackboard[:value2] = 2
15
- #
16
- # Retrieving values
17
- # blackboard.value1
18
- # blackboard[:value2]
19
- #
20
- # see also blackboard_verify.rb
21
-
22
- class Blackboard
23
-
24
- # Create a new blackboard object using the given request.
25
- def initialize( request )
26
- @request = request
27
- @data = {}
28
- end
29
-
30
- # Access a given data element of the blackboard using the given key.
31
- def [](key)
32
- @data[key]
33
- end
34
-
35
- # Set the given data element of the blackboard using the given key and value.
36
- def []=(key,val)
37
- @data[key] = val
38
- end
39
-
40
- def each(&block)
41
- @data.each(&block)
42
- end
43
-
44
- # also allow things like
45
- # blackboard.test1 instead of blackboard[:test1]
46
- # blackboard.test1 = 2 instead of blackboard[:test1] = 2
47
- def method_missing(name,*args)
48
- if (name.to_s =~ /=$/)
49
- self[name.to_s.gsub('=', '')] = args[0]
50
- else
51
- self[name.to_s]
52
- end
53
- end
54
-
55
- end
56
-
57
- end
@@ -1,9 +0,0 @@
1
- module Kernel
2
- unless respond_to?(:debugger)
3
- # Starts a debugging session if ruby-debug has been loaded (call waves-server --debugger to do load it).
4
- def debugger
5
- puts "debugger called"
6
- Waves::Logger.info "\n***** Debugger requested, but was not available: Start server with --debugger to enable *****\n"
7
- end
8
- end
9
- end
@@ -1,30 +0,0 @@
1
- module Waves
2
-
3
- # Mapping actions are evaluated in the context of a ResponseProxy.
4
- class ResponseProxy
5
-
6
- attr_reader :request
7
-
8
- include ResponseMixin
9
-
10
- def initialize(request)
11
- @request = request
12
- end
13
-
14
- def resource( resource, &block )
15
- @resource = resource; yield.call
16
- end
17
-
18
- def controller( &block )
19
- lambda { Waves.application.controllers[ @resource ].process( @request, &block ) }
20
- end
21
-
22
- def view( &block )
23
- lambda { |val| Waves.application.views[ @resource ].process( @request, val, &block ) }
24
- end
25
-
26
- def redirect(path, status = '302'); @request.redirect(path, status); end
27
-
28
- end
29
-
30
- end
@@ -1,26 +0,0 @@
1
- namespace :cluster do
2
-
3
- desc 'Start a cluster of waves applications.'
4
- task :start do |task|
5
- using_waves_src = defined?(WAVES) || ENV['WAVES'] || File.exist?( File.dirname(__FILE__) / :waves )
6
- script = using_waves_src ? :bin / 'waves-server' : 'waves-server'
7
- ( Waves::Console.config.ports || [ Waves::Console.config.port ] ).each do |port|
8
- cmd = "#{script} -p #{port} -c #{ENV['mode']||'development'} -d"
9
- puts cmd ; `#{cmd}`
10
- end
11
- end
12
-
13
- desc 'Stop a cluster of waves applications.'
14
- task :stop do |task|
15
- Dir[ :log / '*.pid' ].each do |pidfile|
16
- pid = File.read(pidfile).to_i
17
- puts "Stopping process #{pid} ..."
18
- Process.kill( 'INT', pid ) rescue nil
19
- end
20
- end
21
-
22
- desc 'Restart a cluster of waves applications.'
23
- task :restart => [ :stop, :start ] do |task|
24
- end
25
-
26
- end
@@ -1,110 +0,0 @@
1
- # Much love to Facets (more specifically English) for this module
2
- # http://english.rubyforge.org/
3
- # changed slightly in the hopes of one day implementing a different set
4
- # of rules for different languages
5
- # NOTE: this is NOT implemented yet.
6
- # plural and singular work directly with the English class
7
- module Waves
8
- module Inflect # :nodoc:
9
- module InflectorMethods
10
-
11
- # Define a general exception.
12
- def word(singular, plural=nil)
13
- plural = singular unless plural
14
- singular_word(singular, plural)
15
- plural_word(singular, plural)
16
- end
17
-
18
- # Define a singularization exception.
19
- def singular_word(singular, plural)
20
- @singular_of ||= {}
21
- @singular_of[plural] = singular
22
- end
23
-
24
- # Define a pluralization exception.
25
- def plural_word(singular, plural)
26
- @plural_of ||= {}
27
- @plural_of[singular] = plural
28
- end
29
-
30
- # Define a general rule.
31
- def rule(singular, plural)
32
- singular_rule(singular, plural)
33
- plural_rule(singular, plural)
34
- end
35
-
36
- # Define a singularization rule.
37
- def singular_rule(singular, plural)
38
- (@singular_rules ||= []) << [singular, plural]
39
- end
40
-
41
- # Define a plurualization rule.
42
- def plural_rule(singular, plural)
43
- (@plural_rules ||= []) << [singular, plural]
44
- end
45
-
46
- # Read prepared singularization rules.
47
- def singularization_rules
48
- @singular_rules ||= []
49
- return @singularization_rules if @singularization_rules
50
- sorted = @singular_rules.sort_by{ |s, p| "#{p}".size }.reverse
51
- @singularization_rules = sorted.collect do |s, p|
52
- [ /#{p}$/, "#{s}" ]
53
- end
54
- end
55
-
56
- # Read prepared pluralization rules.
57
- def pluralization_rules
58
- @plural_rules ||= []
59
- return @pluralization_rules if @pluralization_rules
60
- sorted = @plural_rules.sort_by{ |s, p| "#{s}".size }.reverse
61
- @pluralization_rules = sorted.collect do |s, p|
62
- [ /#{s}$/, "#{p}" ]
63
- end
64
- end
65
-
66
- #
67
- def plural_of
68
- @plural_of ||= {}
69
- end
70
-
71
- #
72
- def singular_of
73
- @singular_of ||= {}
74
- end
75
-
76
- # Convert an English word from plural to singular.
77
- #
78
- # "boys".singular #=> boy
79
- # "tomatoes".singular #=> tomato
80
- #
81
- def singular(word)
82
- if result = singular_of[word]
83
- return result.dup
84
- end
85
- result = word.dup
86
- singularization_rules.each do |(match, replacement)|
87
- break if result.gsub!(match, replacement)
88
- end
89
- return result
90
- end
91
-
92
- # Convert an English word from singular to plurel.
93
- #
94
- # "boy".plural #=> boys
95
- # "tomato".plural #=> tomatoes
96
- #
97
- def plural(word)
98
- if result = plural_of[word]
99
- return result.dup
100
- end
101
- #return self.dup if /s$/ =~ self # ???
102
- result = word.dup
103
- pluralization_rules.each do |(match, replacement)|
104
- break if result.gsub!(match, replacement)
105
- end
106
- return result
107
- end
108
- end
109
- end
110
- end
@@ -1,21 +0,0 @@
1
- module Waves
2
- module Utilities
3
- module Module
4
- # This comes in handy when you are trying to do meta-programming with modules / classes
5
- # that may be nested within other modules / classes. I think I've seen it defined in
6
- # facets, but I'm not relying on facets just for this one method.
7
- def basename
8
- self.name.split('::').last || ''
9
- end
10
-
11
- # Just a convenience method for accessing a const within a Module
12
- def []( cname )
13
- const_get( cname.to_s.camel_case )
14
- end
15
- end
16
- end
17
- end
18
-
19
- class Module # :nodoc:
20
- include Waves::Utilities::Module
21
- end