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,29 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__) , "helpers")
3
-
4
- module DefaultErrorsApp
5
- include Waves::Foundations::Simple
6
- include Waves::Layers::DefaultErrors
7
- module Views
8
- class Errors
9
- include Waves::Views::Mixin
10
- def not_found_404(arg)
11
- "View-based 404"
12
- end
13
- end
14
- end
15
- stub!(:views).and_return(Views)
16
- end
17
-
18
- # Waves << DefaultErrorsApp
19
- Waves::Console.load( :mode => :development )
20
-
21
-
22
- describe "An application which includes the DefaultErrors layer" do
23
-
24
- it "registers a view-based handler for NotFound errors" do
25
- r = get('/bogus')
26
- r.body.should == "View-based 404"
27
- end
28
-
29
- end
@@ -1 +0,0 @@
1
- require File.join(File.dirname(__FILE__) , "..", "helpers")
@@ -1,33 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__) , "helpers")
3
- require 'layers/orm/migration'
4
-
5
- ORM = Waves::Layers::ORM
6
-
7
- Dir.chdir("#{File.dirname(__FILE__)}/../../samples/blog") do
8
-
9
- describe "Waves::Layers::ORM migration helpers" do
10
-
11
- it "defines a standard migration location" do
12
- ORM.migration_directory.should == "schema/migrations"
13
- end
14
-
15
- it "supplies a list of all migration files found in the standard location" do
16
- ORM.migration_files.should == ["schema/migrations/001_initial_schema.rb", "schema/migrations/002_add_comments.rb"]
17
- end
18
-
19
- it "detects the highest-numbered existing migration file" do
20
- ORM.latest_migration_version.should == 2
21
- end
22
-
23
- it "determines the number of the next migration to be created" do
24
- ORM.next_migration_version.should == 3
25
- end
26
-
27
- it "generates the path for the next migration with a given name" do
28
- ORM.migration_destination("blink").should == "schema/migrations/003_blink.rb"
29
- end
30
-
31
- end
32
-
33
- end
@@ -1,41 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__) , "..", "helpers")
3
- require 'layers/orm/sequel'
4
-
5
- module TestApplication
6
- include AutoCode
7
- module Configurations
8
- class Development
9
- stub!(:database).and_return(:adapter => 'sqlite',
10
- :database => "#{File.dirname(__FILE__)}test.db")
11
- end
12
- end
13
- stub!(:config).and_return(Configurations::Development)
14
- include Waves::Layers::ORM::Sequel
15
- end
16
-
17
- Waves << TestApplication
18
- # Waves::Console.load( :mode => :development )
19
- TA = TestApplication
20
-
21
- describe "An application module which includes the Sequel ORM layer" do
22
-
23
- wrap { rm_if_exist 'test.db' }
24
-
25
- it "auto_creates models that inherit from Sequel::Model" do
26
- TA::Models::Default.superclass.should == Sequel::Model
27
- TA::Models::Thingy.superclass.should == TA::Models::Default
28
- end
29
-
30
- it "sets the dataset to use the snake_case of the class name as the table name" do
31
- TA::Models::Thingy.dataset.send(:to_table_reference).should =~ /SELECT.+FROM.+thingies+/
32
- end
33
-
34
- it "provides an accessor for database" do
35
- TA.should.respond_to :database
36
- end
37
-
38
- end
39
-
40
- # Waves.instance_variable_set(:@application, nil)
41
- # raise Waves.application.inspect
File without changes
@@ -1,19 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__), "helpers")
3
- ::TEST_VALUE = 'foo'
4
-
5
- specification "A developer can ensure" do
6
-
7
- before do
8
- mapping.clear
9
- path('/' ) { raise RuntimeError.new('bar') }
10
- always( true ) { Waves.been_there }
11
- end
12
-
13
- specify 'processing is guaranteed regardless of what happens in an action' do
14
- Waves.should.receive(:been_there)
15
- lambda { get('/') }.should.raise RuntimeError
16
- end
17
-
18
- end
19
-
@@ -1,65 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__), "helpers")
3
-
4
- describe "A developer can map requests to filters." do
5
-
6
- before do
7
- mapping.clear
8
- handle(Waves::Dispatchers::NotFoundError) { response.status = 404}
9
- mapping.before( :path => '/filters', :method => :post ) { request.response.write('Before post:') }
10
- mapping.before( :path => '/filters' ) { request.response.write('Before:') }
11
- mapping.wrap( :path => '/filters', :method => :post ) { request.response.write(':Wrap post:') }
12
- mapping.wrap( :path => '/filters' ) { request.response.write(':Wrap:') }
13
- mapping.path( '/filters' ) { 'During' }
14
- mapping.after( :path => '/filters', :method => :post ) { request.response.write('After post:') }
15
- mapping.after( :path => '/filters' ) { request.response.write(':After') }
16
-
17
- regexp = %r{^/filters/(\w+)$}
18
-
19
- mapping.before( :path => regexp ) { |filtername| request.response.write("Before #{filtername}:") }
20
- mapping.wrap( :path => regexp ) { |filtername| request.response.write(":Wrap #{filtername}:") }
21
- mapping.path( regexp ) { 'During' }
22
- mapping.after( :path => regexp ) { |filtername| request.response.write(":After #{filtername}") }
23
-
24
- mapping.before( :path => 'filters_with_no_map' ) { request.response.write("Before") }
25
- mapping.wrap( :path => 'filters_with_no_map' ) { request.response.write("Wrap") }
26
- mapping.after( :path => 'filters_with_no_map' ) { request.response.write("After") }
27
-
28
- mapping.before('/pathstring') { request.response.write("Before pathstring") }
29
- mapping.wrap('/pathstring') { request.response.write("Wrap pathstring") }
30
- mapping.path('/pathstring') { "During pathstring" }
31
- mapping.after('/pathstring') { request.response.write("After pathstring") }
32
-
33
- mapping.before(%r{^/pathregexp$}) { request.response.write("Before pathregexp") }
34
- mapping.wrap(%r{^/pathregexp$}) { request.response.write("Wrap pathregexp") }
35
- mapping.path(%r{^/pathregexp$}) { "During pathregexp" }
36
- mapping.after(%r{^/pathregexp$}) { request.response.write("After pathregexp") }
37
-
38
- mapping.before('/pathstring/name', :method => :post) { request.response.write("Before pathstring post") }
39
- mapping.wrap('/pathstring/name', :method => :post) { request.response.write("Wrap pathstring post") }
40
- mapping.path('/pathstring/name', :method => :post) { "During pathstring post" }
41
- mapping.after('/pathstring/name', :method => :post) { request.response.write("After pathstring post") }
42
-
43
- mapping.before(%r{^/pathregexp/name$}, :method => :post) { request.response.write("Before pathregexp post") }
44
- mapping.wrap(%r{^/pathregexp/name$}, :method => :post) { request.response.write("Wrap pathregexp post") }
45
- mapping.path(%r{^/pathregexp/name$}, :method => :post) { "During pathregexp post" }
46
- mapping.after(%r{^/pathregexp/name$}, :method => :post) { request.response.write("After pathregexp post") }
47
- end
48
-
49
- it "Map a path to a 'before', 'after' and 'wrap' filters." do
50
- get('/filters').body.should == 'Before::Wrap:During:Wrap::After'
51
- end
52
-
53
- it "Map a POST to a path to a 'before', 'after' and 'wrap' filters" do
54
- post('/filters').body.should == 'Before post:Before::Wrap post::Wrap:During:Wrap post::Wrap:After post::After'
55
- end
56
-
57
- it "The 'before', 'after' and 'wrap' filters accept a regular expression and can extract parameters from the request path" do
58
- get('/filters/xyz').body.should == 'Before xyz::Wrap xyz:During:Wrap xyz::After xyz'
59
- end
60
-
61
- it "When having 'before', 'after' and 'wrap' filters but no corresponding map action this results in a 404" do
62
- get('/filters_with_no_map').status.should == 404
63
- end
64
-
65
- end
@@ -1,24 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__), "helpers")
3
-
4
- specification "A developer can register exception handlers" do
5
-
6
- before do
7
- mapping.clear
8
- mapping.handle(Waves::Dispatchers::NotFoundError) do
9
- response.status = 404; response.body = "404 Not Found"
10
- end
11
- mapping.handle(Waves::Dispatchers::NotFoundError) do
12
- response.status = 404; response.body = "Something Different"
13
- end
14
- end
15
-
16
- specify 'The minimal 404 handler in SimpleErrors' do
17
-
18
- r = get('/')
19
- r.status.should == 404
20
- r.body.should == '404 Not Found'
21
- end
22
-
23
-
24
- end
@@ -1,7 +0,0 @@
1
- require File.join(File.dirname(__FILE__) , "..", "helpers")
2
-
3
- # define basic app for use in testing
4
- # before methods may add to it using helper methods
5
- module MappingApp ; include Waves::Foundations::Simple ; end
6
- Waves << MappingApp
7
- Waves::Console.load( :mode => :development )
@@ -1,27 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__), "helpers")
3
-
4
- specification "A developer can extract parameters from a request path or URL." do
5
-
6
- before do
7
- mapping.clear
8
-
9
- path %r{/param/(\w+)} do |value|
10
- "You asked for: #{value}."
11
- end
12
-
13
- url %r{http://localhost:(\d+)/port} do |port|
14
- port
15
- end
16
-
17
- end
18
-
19
- specify 'Extract a parameter via a regexp match of the path.' do
20
- get('/param/elephant').body.should == 'You asked for: elephant.'
21
- end
22
-
23
- specify 'Extract a parameter via a regexp match of the URL.' do
24
- get('http://localhost:3000/port').body.should == '3000'
25
- end
26
-
27
- end
@@ -1,29 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__), "helpers")
3
-
4
- specification "A developer can register named mappings" do
5
-
6
- # before do
7
- # mapping.clear
8
- # resource = /([\w\-]+)/
9
- # name = /([\w\-\_\.\+\@]+)/
10
- # path [resource, name],
11
- # :generator => generator(:show) { |resource,name| "/#{resource}/#{name}" } do
12
- # "Works"
13
- # end
14
- # end
15
- #
16
- # specify "accessible via Waves.mapping.named" do
17
- #
18
- # Waves.mapping.named.show("foo", "bar").should == "/foo/bar"
19
- #
20
- # end
21
- #
22
- # specify "accessible via Application.paths" do
23
- #
24
- # Test.paths.show("foo", "bar").should == "/foo/bar"
25
- #
26
- # end
27
-
28
-
29
- end
@@ -1,17 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__), "helpers")
3
-
4
- specification "A developer can map requests with options." do
5
-
6
- before do
7
- mapping.clear
8
- path('/', :remote_addr => "10.10.10.10" ) { 'This request is from 10.10.10.10' }
9
- path('/', :remote_addr => "127.0.0.1" ) { 'This request is from 127.0.0.1' }
10
- end
11
-
12
- specify 'Map the path of a GET request to a lambda.' do
13
- get('/').body.should == 'This request is from 127.0.0.1'
14
- end
15
-
16
- end
17
-
@@ -1,40 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__), "helpers")
3
-
4
- specification "A developer can map requests using the request path." do
5
-
6
- before do
7
- mapping.clear
8
- path('/', :method => :post ) { 'This is a simple post rule.' }
9
- path('/', :method => :put ) { 'This is a simple put rule.' }
10
- path('/', :method => :delete ) { 'This is a simple delete rule.' }
11
- path('/', :method => :get) { 'This is a simple get rule.' }
12
- path('/foo') { "The server says, 'bar!'" }
13
- end
14
-
15
- specify 'Map the path of a GET request to a lambda.' do
16
- get('/').body.should == 'This is a simple get rule.'
17
- end
18
-
19
- specify 'Map the path of a POST request to a lambda.' do
20
- post('/').body.should == 'This is a simple post rule.'
21
- end
22
-
23
- specify 'Map the path of a PUT request to a lambda.' do
24
- put('/').body.should == 'This is a simple put rule.'
25
- end
26
-
27
- specify 'Map the path of a DELETE request to a lambda.' do
28
- delete('/').body.should == 'This is a simple delete rule.'
29
- end
30
-
31
- specify 'When method is not explicitely set in a mapping it accepts all methods' do
32
- get( '/foo' ).body.should == "The server says, 'bar!'"
33
- post( '/foo' ).body.should == "The server says, 'bar!'"
34
- put( '/foo' ).body.should == "The server says, 'bar!'"
35
- delete( '/foo' ).body.should == "The server says, 'bar!'"
36
- end
37
-
38
-
39
- end
40
-
@@ -1,50 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__), "helpers")
3
-
4
- # Note: you have to define the resource classes using module_eval here, because otherwise
5
- # the auto_create code never gets triggered in the application.
6
-
7
- module MappingApp
8
- include Waves::Layers::MVC
9
- end
10
-
11
- MappingApp::Controllers.module_eval do
12
- class Animal
13
- include Waves::Controllers::Mixin
14
- def cow() 'Moo!' end
15
- end
16
- end
17
-
18
- MappingApp::Views.module_eval do
19
- class Animal
20
- include Waves::Views::Mixin
21
- def say( says ) "This animal says: '#{says}'" end
22
- end
23
- end
24
-
25
- specification "A developer may succinctly define a resource-based controller-view chain." do
26
-
27
- before do
28
- mapping.clear
29
- path('/cow' ) do
30
- resource( :animal ) { controller { cow } | view { | says | say( says ) } }
31
- end
32
-
33
- path('/onager') do
34
- resource( "cow" ) do
35
- controller { redirect model_name }.call
36
- end
37
- end
38
- end
39
-
40
- specify 'Pipe output of controller to view within a resource context.' do
41
- get('/cow').body.should == "This animal says: 'Moo!'"
42
- end
43
-
44
- specify "Redirect from within controller" do
45
- get('/onager').status.should == 302
46
- end
47
-
48
-
49
- end
50
-
@@ -1,25 +0,0 @@
1
- # require 'test_helper' because RubyMate needs help
2
- require File.join(File.dirname(__FILE__), "helpers")
3
-
4
- specification "Requests can be made threaded for event driven servers" do
5
-
6
- before do
7
- mapping.clear
8
- threaded( '/upload', {:method => :post} ) { 'This is threaded.' }
9
- path( '/foo' ) { "The server says, 'bar!'" }
10
- end
11
-
12
- specify 'Post to upload should be threaded' do
13
- req = Waves::Request.new( ::Rack::MockRequest.env_for('/upload', {:method => 'POST'}) )
14
- ::Waves::Dispatchers::Default.new.deferred?(req).should == true
15
- post('/upload').body.should == 'This is threaded.'
16
- end
17
-
18
- specify 'Get to foo should not be threaded' do
19
- req = Waves::Request.new( ::Rack::MockRequest.env_for('/foo', {:method => 'GET'}) )
20
- ::Waves::Dispatchers::Default.new.deferred?(req).should == false
21
- get('/foo').body.should == "The server says, 'bar!'"
22
- end
23
-
24
- end
25
-
@@ -1,16 +0,0 @@
1
- require File.join(File.dirname(__FILE__) , "..", "helpers")
2
-
3
- module TestRequests
4
- module Configurations
5
- class Default
6
- # stub!(:session).and_return(:duration => 30.minutes, :path => '/tmp/sessions')
7
- ::BasePath = File.dirname(__FILE__) / :tmp
8
- stub!(:session).and_return(:duration => 30.minutes, :path => ::BasePath)
9
- end
10
- end
11
-
12
- end
13
-
14
- def env_for(uri="/", options={})
15
- Rack::MockRequest.env_for(uri,options)
16
- end