ramaze 0.3.9.1 → 2023.01.06

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 (781) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/README.md +125 -0
  4. data/Rakefile +13 -186
  5. data/bin/ramaze +4 -149
  6. data/examples/app/auth/layout/auth.xhtml +25 -0
  7. data/examples/app/auth/start.rb +25 -0
  8. data/examples/app/auth/view/index.xhtml +4 -0
  9. data/examples/app/auth/view/login.xhtml +20 -0
  10. data/examples/app/auth/view/secret.xhtml +1 -0
  11. data/examples/app/blog/app.rb +23 -0
  12. data/examples/app/blog/config.ru +19 -0
  13. data/examples/app/blog/controller/init.rb +30 -0
  14. data/examples/app/blog/controller/posts.rb +223 -0
  15. data/examples/app/blog/controller/users.rb +152 -0
  16. data/examples/app/blog/layout/default.xhtml +61 -0
  17. data/examples/app/blog/migrations/01_create_schema.rb +50 -0
  18. data/examples/app/blog/model/comment.rb +42 -0
  19. data/examples/app/blog/model/init.rb +44 -0
  20. data/examples/app/blog/model/post.rb +33 -0
  21. data/examples/app/blog/model/user.rb +100 -0
  22. data/examples/app/blog/public/css/grid.css +107 -0
  23. data/examples/app/blog/public/css/layout.css +203 -0
  24. data/examples/app/blog/public/css/reset.css +123 -0
  25. data/examples/app/blog/public/css/text.css +109 -0
  26. data/examples/app/blog/public/dispatch.fcgi +11 -0
  27. data/examples/app/blog/public/favicon.ico +0 -0
  28. data/examples/app/blog/public/images/bg.png +0 -0
  29. data/examples/app/blog/start.rb +20 -0
  30. data/examples/app/blog/view/feed.xhtml +23 -0
  31. data/examples/app/blog/view/form.xhtml +11 -0
  32. data/examples/app/blog/view/index.xhtml +44 -0
  33. data/examples/app/blog/view/users/form.xhtml +12 -0
  34. data/examples/app/blog/view/users/index.xhtml +30 -0
  35. data/examples/app/blog/view/users/login.xhtml +8 -0
  36. data/examples/app/blog/view/view.xhtml +68 -0
  37. data/examples/app/chat/layout/default.xhtml +13 -0
  38. data/examples/app/chat/model/history.rb +38 -0
  39. data/examples/app/chat/model/message.rb +7 -0
  40. data/examples/app/chat/public/css/chat.css +9 -0
  41. data/examples/app/chat/public/js/chat.js +28 -0
  42. data/{lib/proto → examples/app/chat}/public/js/jquery.js +75 -15
  43. data/examples/app/chat/start.rb +39 -0
  44. data/examples/app/chat/view/chat.xhtml +9 -0
  45. data/examples/app/chat/view/index.xhtml +7 -0
  46. data/examples/app/localization/locale/de.yaml +5 -0
  47. data/examples/app/localization/locale/en.yaml +5 -0
  48. data/examples/app/localization/locale/ja.yaml +5 -0
  49. data/examples/app/localization/start.rb +48 -0
  50. data/examples/app/todolist/controller/init.rb +11 -0
  51. data/examples/app/todolist/controller/task.rb +39 -0
  52. data/examples/app/todolist/layout/default.xhtml +14 -0
  53. data/examples/app/todolist/model/init.rb +14 -0
  54. data/examples/app/todolist/model/task.rb +39 -0
  55. data/examples/app/todolist/public/css/screen.css +63 -0
  56. data/examples/app/todolist/start.rb +7 -0
  57. data/examples/app/todolist/view/index.xhtml +29 -0
  58. data/examples/{upload → app/upload}/start.rb +7 -3
  59. data/examples/app/whywiki/spec/whywiki.rb +56 -0
  60. data/examples/{whywiki → app/whywiki}/start.rb +10 -9
  61. data/examples/{whywiki/template → app/whywiki/view}/edit.xhtml +2 -2
  62. data/examples/app/whywiki/view/show.xhtml +20 -0
  63. data/examples/{wikore → app/wikore}/spec/wikore.rb +7 -9
  64. data/examples/{wikore → app/wikore}/src/controller.rb +9 -11
  65. data/examples/{wikore → app/wikore}/src/model.rb +11 -13
  66. data/examples/app/wikore/start.rb +9 -0
  67. data/examples/{wiktacular/template/html_layout.xhtml → app/wiktacular/layout/application.xhtml} +1 -1
  68. data/examples/{wiktacular → app/wiktacular}/mkd/main/2007-07-20_19-21-12.mkd +1 -1
  69. data/examples/app/wiktacular/mkd/main/2007-07-20_19-23-10.mkd +2 -0
  70. data/examples/app/wiktacular/mkd/main/2007-07-20_19-45-07.mkd +2 -0
  71. data/examples/app/wiktacular/mkd/main/current.mkd +2 -0
  72. data/examples/{wiktacular → app/wiktacular}/mkd/markdown/current.mkd +2 -2
  73. data/examples/app/wiktacular/mkd/testing/2007-07-20_16-43-46.mkd +2 -0
  74. data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-20_19-43-50.mkd +2 -2
  75. data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-46-01.mkd +11 -11
  76. data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-46-32.mkd +12 -12
  77. data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-47-08.mkd +16 -16
  78. data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-47-54.mkd +16 -16
  79. data/examples/{wiktacular → app/wiktacular}/mkd/testing/current.mkd +16 -16
  80. data/examples/{wiktacular → app/wiktacular}/spec/wiktacular.rb +39 -40
  81. data/examples/{wiktacular → app/wiktacular}/src/controller.rb +18 -18
  82. data/examples/{wiktacular → app/wiktacular}/src/model.rb +30 -14
  83. data/examples/{wiktacular → app/wiktacular}/start.rb +1 -1
  84. data/examples/{wiktacular/template → app/wiktacular/view}/edit.xhtml +2 -2
  85. data/examples/{wiktacular/template → app/wiktacular/view}/new.xhtml +1 -1
  86. data/examples/{element.rb → basic/element.rb} +5 -3
  87. data/examples/basic/gestalt.rb +26 -0
  88. data/examples/basic/hello.rb +14 -0
  89. data/examples/{layout.rb → basic/layout.rb} +2 -2
  90. data/examples/basic/linking.rb +29 -0
  91. data/examples/basic/partial.rb +26 -0
  92. data/examples/{simple.rb → basic/simple.rb} +9 -12
  93. data/examples/{caching.rb → helpers/cache.rb} +9 -7
  94. data/examples/helpers/paginate.rb +71 -0
  95. data/examples/helpers/rest.rb +28 -0
  96. data/examples/helpers/simple_captcha.rb +29 -0
  97. data/examples/{css.rb → misc/css.rb} +6 -12
  98. data/examples/misc/memleak_detector.rb +37 -0
  99. data/examples/misc/nagoro_element.rb +43 -0
  100. data/examples/{ramaise.rb → misc/ramaise.rb} +2 -2
  101. data/examples/misc/rapp.rb +56 -0
  102. data/examples/misc/sequel_scaffolding.rb +45 -0
  103. data/examples/misc/serve_directory.rb +6 -0
  104. data/examples/templates/template_erubis.rb +9 -10
  105. data/examples/templates/template_ezamar.rb +8 -7
  106. data/examples/templates/template_haml.rb +7 -8
  107. data/examples/templates/template_liquid.rb +20 -19
  108. data/examples/templates/template_markaby.rb +6 -7
  109. data/examples/templates/template_mustache.rb +70 -0
  110. data/examples/templates/template_nagoro.rb +6 -7
  111. data/examples/templates/template_redcloth.rb +8 -9
  112. data/examples/templates/template_remarkably.rb +8 -9
  113. data/examples/templates/template_tenjin.rb +10 -15
  114. data/examples/templates/{template → view}/external.haml +4 -4
  115. data/examples/templates/{template → view}/external.mab +4 -4
  116. data/examples/templates/view/external.mt +29 -0
  117. data/examples/templates/{template → view}/external.nag +4 -4
  118. data/examples/templates/{template → view}/external.redcloth +4 -4
  119. data/examples/templates/{template → view}/external.rem +4 -4
  120. data/examples/templates/{template → view}/external.rhtml +6 -6
  121. data/examples/templates/{template → view}/external.tenjin +4 -4
  122. data/examples/templates/{template → view}/external.zmr +6 -6
  123. data/guide/AUTHORS +80 -0
  124. data/guide/CHANGELOG +20210 -0
  125. data/guide/LICENSE +19 -0
  126. data/guide/_static/logo.png +0 -0
  127. data/guide/_static/logo.svg +49 -0
  128. data/guide/css/common.css +20 -0
  129. data/guide/general/cache.md +168 -0
  130. data/guide/general/configuration.md +169 -0
  131. data/guide/general/contributing.md +182 -0
  132. data/guide/general/controllers.md +210 -0
  133. data/guide/general/helpers.md +89 -0
  134. data/guide/general/installation.md +59 -0
  135. data/guide/general/logging.md +96 -0
  136. data/guide/general/middlewares.md +111 -0
  137. data/guide/general/models.md +79 -0
  138. data/{doc/readme_chunks/principles.txt → guide/general/principles.md} +15 -17
  139. data/guide/general/ramaze_command.md +110 -0
  140. data/guide/general/routes.md +82 -0
  141. data/guide/general/sessions.md +210 -0
  142. data/guide/general/special_thanks.md +69 -0
  143. data/guide/general/testing.md +228 -0
  144. data/guide/general/upgrading.md +85 -0
  145. data/guide/general/views.md +335 -0
  146. data/lib/proto/Gemfile +4 -0
  147. data/lib/proto/README.md +35 -0
  148. data/lib/proto/Rakefile +1 -0
  149. data/lib/proto/app.rb +9 -0
  150. data/lib/proto/config.ru +19 -0
  151. data/lib/proto/controller/init.rb +18 -0
  152. data/lib/proto/controller/main.rb +13 -10
  153. data/lib/proto/layout/default.xhtml +57 -0
  154. data/lib/proto/public/css/grid.css +107 -0
  155. data/lib/proto/public/css/layout.css +81 -0
  156. data/lib/proto/public/css/reset.css +123 -0
  157. data/lib/proto/public/css/text.css +109 -0
  158. data/lib/proto/public/favicon.ico +0 -0
  159. data/lib/proto/public/images/bg.png +0 -0
  160. data/lib/proto/spec/helper.rb +39 -0
  161. data/lib/proto/task/ramaze.rake +57 -0
  162. data/lib/proto/view/index.xhtml +36 -25
  163. data/lib/ramaze/app.rb +198 -0
  164. data/lib/ramaze/bin/create.rb +92 -0
  165. data/lib/ramaze/bin/runner.rb +127 -0
  166. data/lib/ramaze/cache/lru.rb +88 -0
  167. data/lib/ramaze/cache/memcache.rb +219 -0
  168. data/lib/ramaze/cache/moneta.rb +143 -0
  169. data/lib/ramaze/cache/redis.rb +163 -0
  170. data/lib/ramaze/cache/sequel.rb +373 -0
  171. data/lib/ramaze/cache.rb +42 -82
  172. data/lib/ramaze/controller/default.rb +25 -0
  173. data/lib/ramaze/controller.rb +184 -224
  174. data/lib/ramaze/current.rb +17 -68
  175. data/lib/ramaze/default_middleware.rb +24 -0
  176. data/lib/ramaze/files.rb +59 -0
  177. data/lib/ramaze/gestalt.rb +95 -63
  178. data/lib/ramaze/helper/auth.rb +107 -107
  179. data/lib/ramaze/helper/bench.rb +51 -0
  180. data/lib/ramaze/helper/blue_form.rb +683 -0
  181. data/lib/ramaze/helper/cache.rb +108 -130
  182. data/lib/ramaze/helper/csrf.rb +191 -0
  183. data/lib/ramaze/helper/email.rb +116 -0
  184. data/lib/ramaze/helper/erector.rb +113 -0
  185. data/lib/ramaze/helper/flash.rb +42 -39
  186. data/lib/ramaze/helper/formatting.rb +200 -35
  187. data/lib/ramaze/helper/gestalt.rb +49 -0
  188. data/lib/ramaze/helper/gravatar.rb +75 -0
  189. data/lib/ramaze/helper/identity.rb +93 -68
  190. data/lib/ramaze/helper/layout.rb +128 -0
  191. data/lib/ramaze/helper/link.rb +52 -119
  192. data/lib/ramaze/helper/localize.rb +143 -0
  193. data/lib/ramaze/helper/markaby.rb +26 -24
  194. data/lib/ramaze/helper/maruku.rb +15 -6
  195. data/lib/ramaze/helper/paginate.rb +315 -0
  196. data/lib/ramaze/helper/remarkably.rb +14 -0
  197. data/lib/ramaze/helper/request_accessor.rb +20 -0
  198. data/lib/ramaze/helper/send_file.rb +34 -0
  199. data/lib/ramaze/helper/simple_captcha.rb +61 -0
  200. data/lib/ramaze/helper/stack.rb +72 -62
  201. data/lib/ramaze/helper/tagz.rb +13 -12
  202. data/lib/ramaze/helper/thread.rb +25 -0
  203. data/lib/ramaze/helper/upload.rb +525 -0
  204. data/lib/ramaze/helper/user.rb +260 -39
  205. data/lib/ramaze/helper/xhtml.rb +122 -0
  206. data/lib/ramaze/helper.rb +8 -79
  207. data/lib/ramaze/log/hub.rb +41 -32
  208. data/lib/ramaze/log/informer.rb +128 -104
  209. data/lib/ramaze/log/logger.rb +25 -15
  210. data/lib/ramaze/log/logging.rb +46 -27
  211. data/lib/ramaze/log/rotatinginformer.rb +237 -0
  212. data/lib/ramaze/log/syslog.rb +57 -31
  213. data/lib/ramaze/log.rb +16 -15
  214. data/lib/ramaze/reloader/watch_inotify.rb +84 -0
  215. data/lib/ramaze/reloader/watch_stat.rb +58 -0
  216. data/lib/ramaze/reloader.rb +212 -0
  217. data/lib/ramaze/request.rb +126 -0
  218. data/lib/ramaze/response.rb +67 -0
  219. data/lib/ramaze/snippets/object/__dir__.rb +25 -0
  220. data/lib/ramaze/snippets/ramaze/deprecated.rb +23 -0
  221. data/lib/ramaze/snippets/string/camel_case.rb +17 -14
  222. data/lib/ramaze/snippets/string/color.rb +27 -24
  223. data/lib/ramaze/snippets/string/esc.rb +25 -25
  224. data/lib/ramaze/snippets/string/snake_case.rb +16 -13
  225. data/lib/ramaze/snippets/string/unindent.rb +24 -11
  226. data/lib/ramaze/snippets.rb +21 -6
  227. data/lib/ramaze/spec/bacon.rb +44 -0
  228. data/lib/ramaze/spec/helper/bacon.rb +4 -4
  229. data/lib/ramaze/spec/helper/pretty_output.rb +9 -1
  230. data/lib/ramaze/spec/helper/snippets.rb +11 -1
  231. data/lib/ramaze/spec/helper/template_examples.rb +22 -0
  232. data/lib/ramaze/version.rb +4 -13
  233. data/lib/ramaze/view/erector.rb +116 -0
  234. data/lib/ramaze/view/erubis.rb +26 -0
  235. data/lib/ramaze/view/ezamar.rb +27 -0
  236. data/lib/ramaze/view/gestalt.rb +20 -0
  237. data/lib/ramaze/view/haml.rb +27 -0
  238. data/lib/ramaze/view/liquid.rb +99 -0
  239. data/lib/ramaze/view/lokar.rb +18 -0
  240. data/lib/ramaze/view/mustache.rb +46 -0
  241. data/lib/ramaze/view/nagoro/render_partial.rb +32 -0
  242. data/lib/ramaze/view/nagoro.rb +44 -0
  243. data/lib/ramaze/view/remarkably.rb +22 -0
  244. data/lib/ramaze/view/sass.rb +22 -0
  245. data/lib/ramaze/view/slim.rb +43 -0
  246. data/lib/ramaze/view/slippers.rb +51 -0
  247. data/lib/ramaze/view/tagz.rb +67 -0
  248. data/lib/ramaze/view/tenjin.rb +32 -0
  249. data/lib/ramaze/view.rb +35 -0
  250. data/lib/ramaze.rb +60 -100
  251. data/lib/vendor/route_exceptions.rb +42 -0
  252. data/ramaze.gemspec +61 -0
  253. data/spec/examples/caching.rb +5 -8
  254. data/spec/examples/css.rb +3 -4
  255. data/spec/examples/element.rb +4 -4
  256. data/spec/examples/hello.rb +4 -5
  257. data/spec/examples/linking.rb +3 -4
  258. data/spec/examples/misc/sequel_scaffolding.rb +18 -0
  259. data/spec/examples/simple.rb +3 -8
  260. data/spec/examples/templates/template_erubis.rb +8 -18
  261. data/spec/examples/templates/template_ezamar.rb +9 -19
  262. data/spec/examples/templates/template_haml.rb +8 -20
  263. data/spec/examples/templates/template_liquid.rb +8 -24
  264. data/spec/examples/templates/template_markaby.rb +10 -19
  265. data/spec/examples/templates/template_mustache.rb +13 -0
  266. data/spec/examples/templates/template_nagoro.rb +13 -0
  267. data/spec/examples/templates/template_remarkably.rb +8 -18
  268. data/spec/examples/templates/template_tenjin.rb +8 -23
  269. data/spec/examples/todolist.rb +33 -0
  270. data/spec/helper.rb +14 -3
  271. data/spec/ramaze/action/render.rb +9 -17
  272. data/spec/ramaze/action/view/other_wrapper.erb +1 -0
  273. data/spec/ramaze/action/view/sub/sub_wrapper.xhtml +1 -0
  274. data/spec/ramaze/app/location.rb +43 -0
  275. data/spec/ramaze/app.rb +50 -0
  276. data/spec/ramaze/bin/app/config.ru +11 -0
  277. data/spec/ramaze/bin/create.rb +28 -0
  278. data/spec/ramaze/bin/runner.rb +30 -0
  279. data/spec/ramaze/cache/lru.rb +48 -0
  280. data/spec/ramaze/cache/memcache.rb +69 -0
  281. data/spec/ramaze/cache/moneta.rb +53 -0
  282. data/spec/ramaze/cache/redis.rb +58 -0
  283. data/spec/ramaze/cache/sequel.rb +60 -0
  284. data/spec/ramaze/controller/actionless_templates.rb +16 -12
  285. data/spec/ramaze/controller/lonely_mapping.rb +18 -0
  286. data/spec/ramaze/controller/mapping.rb +63 -0
  287. data/spec/ramaze/controller/provide_inheritance.rb +40 -0
  288. data/spec/ramaze/controller/resolve.rb +9 -11
  289. data/spec/ramaze/controller/subclass.rb +22 -7
  290. data/spec/ramaze/controller/template_resolving.rb +23 -61
  291. data/spec/ramaze/controller/view/bar.xhtml +1 -0
  292. data/spec/ramaze/controller/view/base/another.xhtml +1 -0
  293. data/spec/ramaze/dispatcher/directory.rb +61 -33
  294. data/spec/ramaze/dispatcher/file.rb +65 -47
  295. data/spec/ramaze/error.rb +54 -64
  296. data/spec/ramaze/files/public_1/plain.txt +1 -0
  297. data/spec/ramaze/files/public_2/rich.txt +1 -0
  298. data/spec/ramaze/files.rb +30 -0
  299. data/spec/ramaze/gestalt.rb +28 -21
  300. data/spec/ramaze/helper/auth.rb +47 -29
  301. data/spec/ramaze/helper/bench.rb +21 -0
  302. data/spec/ramaze/helper/blue_form.rb +807 -0
  303. data/spec/ramaze/helper/cache.rb +65 -84
  304. data/spec/ramaze/helper/csrf.rb +64 -0
  305. data/spec/ramaze/helper/email.rb +69 -0
  306. data/spec/ramaze/helper/flash.rb +22 -101
  307. data/spec/ramaze/helper/formatting.rb +100 -6
  308. data/spec/ramaze/helper/gestalt.rb +18 -0
  309. data/spec/ramaze/helper/gravatar.rb +43 -0
  310. data/spec/ramaze/helper/layout/alternative.xhtml +5 -0
  311. data/spec/ramaze/helper/layout/default.xhtml +5 -0
  312. data/spec/ramaze/helper/layout.rb +109 -0
  313. data/spec/ramaze/helper/link.rb +48 -102
  314. data/spec/ramaze/helper/localize.rb +65 -0
  315. data/spec/ramaze/helper/maruku.rb +22 -0
  316. data/spec/ramaze/helper/paginate.rb +304 -0
  317. data/spec/ramaze/helper/request_accessor.rb +22 -0
  318. data/spec/ramaze/helper/simple_captcha.rb +45 -0
  319. data/spec/ramaze/helper/stack.rb +54 -41
  320. data/spec/ramaze/helper/upload.rb +150 -0
  321. data/spec/ramaze/helper/uploads/text_1.txt +1 -0
  322. data/spec/ramaze/helper/uploads/text_2.txt +1 -0
  323. data/spec/ramaze/helper/user.rb +63 -20
  324. data/spec/ramaze/helper/xhtml.rb +54 -0
  325. data/spec/ramaze/log/informer.rb +30 -28
  326. data/spec/ramaze/log/logging.rb +66 -0
  327. data/spec/ramaze/log/syslog.rb +89 -4
  328. data/spec/ramaze/params.rb +12 -16
  329. data/spec/ramaze/request.rb +51 -160
  330. data/spec/ramaze/rewrite/file.css +1 -0
  331. data/spec/ramaze/session/lru.rb +58 -0
  332. data/spec/ramaze/session/memcache.rb +66 -0
  333. data/spec/ramaze/session/redis.rb +63 -0
  334. data/spec/ramaze/session/sequel.rb +62 -0
  335. data/spec/ramaze/view/erector/external_view.erector +5 -0
  336. data/spec/ramaze/view/erector/index.erector +5 -0
  337. data/spec/ramaze/view/erector/layout.erector +13 -0
  338. data/spec/ramaze/view/erector/tables.erector +23 -0
  339. data/spec/ramaze/view/erector/view.erector +6 -0
  340. data/spec/ramaze/view/erector.rb +68 -0
  341. data/spec/ramaze/view/erubis/external.rhtml +8 -0
  342. data/spec/ramaze/view/erubis/sum.rhtml +1 -0
  343. data/spec/ramaze/view/erubis.rb +73 -0
  344. data/spec/ramaze/view/ezamar/external.zmr +8 -0
  345. data/spec/ramaze/view/ezamar/sum.zmr +1 -0
  346. data/spec/ramaze/view/ezamar.rb +73 -0
  347. data/spec/ramaze/view/gestalt/external.ges +8 -0
  348. data/spec/ramaze/view/gestalt.rb +94 -0
  349. data/spec/ramaze/view/haml/external.haml +5 -0
  350. data/spec/ramaze/view/haml/sum.haml +2 -0
  351. data/spec/ramaze/view/haml.rb +114 -0
  352. data/spec/ramaze/view/liquid/external.liquid +8 -0
  353. data/spec/ramaze/view/liquid/sum.liquid +1 -0
  354. data/spec/ramaze/view/liquid.rb +73 -0
  355. data/spec/ramaze/view/lokar/external.lok +8 -0
  356. data/spec/ramaze/view/lokar/sum.lok +1 -0
  357. data/spec/ramaze/view/lokar.rb +78 -0
  358. data/spec/ramaze/view/mustache/external.mt +8 -0
  359. data/spec/ramaze/view/mustache/sum.mt +1 -0
  360. data/spec/ramaze/view/mustache.rb +77 -0
  361. data/spec/ramaze/view/nagoro/external.nag +8 -0
  362. data/spec/ramaze/view/nagoro/sum.nag +1 -0
  363. data/spec/ramaze/view/nagoro.rb +78 -0
  364. data/spec/ramaze/view/remarkably.rb +49 -0
  365. data/spec/ramaze/view/sass.rb +73 -0
  366. data/spec/ramaze/view/slim/external.slim +5 -0
  367. data/spec/ramaze/view/slim/external_vars.slim +5 -0
  368. data/spec/ramaze/view/slim.rb +49 -0
  369. data/spec/ramaze/view/slippers/external.st +8 -0
  370. data/spec/ramaze/view/slippers/sum.st +1 -0
  371. data/spec/ramaze/view/slippers.rb +49 -0
  372. data/spec/ramaze/{template → view}/tagz.rb +20 -31
  373. data/spec/ramaze/view/tenjin/external.rbhtml +8 -0
  374. data/spec/ramaze/view/tenjin/sum.rbhtml +1 -0
  375. data/spec/ramaze/view/tenjin.rb +57 -0
  376. data/spec/ramaze/view.rb +36 -0
  377. data/spec/snippets/object/__dir__.rb +17 -0
  378. data/spec/snippets/ramaze/lru_hash.rb +88 -0
  379. data/spec/snippets/string/camel_case.rb +4 -1
  380. data/spec/snippets/string/color.rb +4 -1
  381. data/spec/snippets/string/snake_case.rb +4 -1
  382. data/spec/snippets/string/unindent.rb +10 -1
  383. data/tasks/authors.rake +17 -0
  384. data/tasks/bacon.rake +81 -0
  385. data/tasks/changelog.rake +20 -0
  386. data/tasks/gems.rake +15 -0
  387. data/tasks/release.rake +38 -0
  388. data/tasks/todo.rake +31 -0
  389. data/tasks/yard.rake +13 -0
  390. metadata +813 -714
  391. data/doc/AUTHORS +0 -25
  392. data/doc/CHANGELOG +0 -5757
  393. data/doc/COPYING +0 -56
  394. data/doc/FAQ +0 -92
  395. data/doc/GPL +0 -339
  396. data/doc/INSTALL +0 -34
  397. data/doc/LEGAL +0 -26
  398. data/doc/ProjectInfo +0 -53
  399. data/doc/README +0 -435
  400. data/doc/TODO +0 -29
  401. data/doc/meta/announcement.txt +0 -126
  402. data/doc/meta/configuration.txt +0 -162
  403. data/doc/meta/internals.txt +0 -278
  404. data/doc/meta/users.kml +0 -64
  405. data/doc/migrate/1110_to_1111.txt +0 -131
  406. data/doc/readme_chunks/appendix.txt +0 -10
  407. data/doc/readme_chunks/examples.txt +0 -38
  408. data/doc/readme_chunks/features.txt +0 -148
  409. data/doc/readme_chunks/getting_help.txt +0 -5
  410. data/doc/readme_chunks/getting_started.txt +0 -18
  411. data/doc/readme_chunks/installing.txt +0 -46
  412. data/doc/readme_chunks/introduction.txt +0 -18
  413. data/doc/readme_chunks/thanks.txt +0 -59
  414. data/doc/tutorial/todolist.html +0 -816
  415. data/doc/tutorial/todolist.mkd +0 -736
  416. data/examples/auth/auth.rb +0 -54
  417. data/examples/auth/template/layout.haml +0 -20
  418. data/examples/auth/template/login.haml +0 -16
  419. data/examples/blog/README +0 -3
  420. data/examples/blog/controller/main.rb +0 -29
  421. data/examples/blog/model/entry.rb +0 -30
  422. data/examples/blog/public/styles/blog.css +0 -132
  423. data/examples/blog/spec/blog.rb +0 -87
  424. data/examples/blog/start.rb +0 -7
  425. data/examples/blog/view/edit.xhtml +0 -17
  426. data/examples/blog/view/index.xhtml +0 -17
  427. data/examples/blog/view/layout.xhtml +0 -11
  428. data/examples/blog/view/new.xhtml +0 -16
  429. data/examples/hello.rb +0 -15
  430. data/examples/linking.rb +0 -29
  431. data/examples/memleak_detector.rb +0 -32
  432. data/examples/nitro_form.rb +0 -23
  433. data/examples/rammit/spec/rammit.rb +0 -30
  434. data/examples/rammit/src/controller/main.rb +0 -3
  435. data/examples/rammit/src/controller/page.rb +0 -16
  436. data/examples/rammit/src/model.rb +0 -33
  437. data/examples/rammit/start.rb +0 -8
  438. data/examples/rammit/template/index.xhtml +0 -14
  439. data/examples/rammit/template/page/view.xhtml +0 -4
  440. data/examples/rapaste/Rakefile +0 -35
  441. data/examples/rapaste/controller/paste.rb +0 -94
  442. data/examples/rapaste/model/paste.rb +0 -55
  443. data/examples/rapaste/public/css/active4d.css +0 -114
  444. data/examples/rapaste/public/css/all_hallows_eve.css +0 -72
  445. data/examples/rapaste/public/css/amy.css +0 -147
  446. data/examples/rapaste/public/css/blackboard.css +0 -88
  447. data/examples/rapaste/public/css/brilliance_black.css +0 -605
  448. data/examples/rapaste/public/css/brilliance_dull.css +0 -599
  449. data/examples/rapaste/public/css/cobalt.css +0 -149
  450. data/examples/rapaste/public/css/dawn.css +0 -121
  451. data/examples/rapaste/public/css/display.css +0 -197
  452. data/examples/rapaste/public/css/eiffel.css +0 -121
  453. data/examples/rapaste/public/css/espresso_libre.css +0 -109
  454. data/examples/rapaste/public/css/idle.css +0 -62
  455. data/examples/rapaste/public/css/iplastic.css +0 -80
  456. data/examples/rapaste/public/css/lazy.css +0 -73
  457. data/examples/rapaste/public/css/mac_classic.css +0 -123
  458. data/examples/rapaste/public/css/magicwb_amiga.css +0 -104
  459. data/examples/rapaste/public/css/pastels_on_dark.css +0 -188
  460. data/examples/rapaste/public/css/slush_poppies.css +0 -85
  461. data/examples/rapaste/public/css/spacecadet.css +0 -51
  462. data/examples/rapaste/public/css/sunburst.css +0 -180
  463. data/examples/rapaste/public/css/twilight.css +0 -137
  464. data/examples/rapaste/public/css/zenburnesque.css +0 -91
  465. data/examples/rapaste/public/js/jquery.js +0 -11
  466. data/examples/rapaste/spec/rapaste.rb +0 -49
  467. data/examples/rapaste/start.rb +0 -24
  468. data/examples/rapaste/view/copy.xhtml +0 -10
  469. data/examples/rapaste/view/index.xhtml +0 -9
  470. data/examples/rapaste/view/layout.xhtml +0 -25
  471. data/examples/rapaste/view/list.xhtml +0 -29
  472. data/examples/rapaste/view/search.xhtml +0 -41
  473. data/examples/rapaste/view/view.xhtml +0 -37
  474. data/examples/simple_auth.rb +0 -23
  475. data/examples/sourceview/public/coderay.css +0 -104
  476. data/examples/sourceview/public/images/file.gif +0 -0
  477. data/examples/sourceview/public/images/folder.gif +0 -0
  478. data/examples/sourceview/public/images/tv-collapsable-last.gif +0 -0
  479. data/examples/sourceview/public/images/tv-collapsable.gif +0 -0
  480. data/examples/sourceview/public/images/tv-expandable-last.gif +0 -0
  481. data/examples/sourceview/public/images/tv-expandable.gif +0 -0
  482. data/examples/sourceview/public/images/tv-item-last.gif +0 -0
  483. data/examples/sourceview/public/images/tv-item.gif +0 -0
  484. data/examples/sourceview/public/jquery.js +0 -11
  485. data/examples/sourceview/public/jquery.treeview.css +0 -48
  486. data/examples/sourceview/public/jquery.treeview.js +0 -223
  487. data/examples/sourceview/public/sourceview.js +0 -52
  488. data/examples/sourceview/sourceview.rb +0 -77
  489. data/examples/sourceview/template/index.haml +0 -59
  490. data/examples/templates/template/external.amrita +0 -19
  491. data/examples/templates/template/external.xsl +0 -57
  492. data/examples/templates/template_amrita2.rb +0 -74
  493. data/examples/templates/template_xslt.rb +0 -49
  494. data/examples/todolist/README +0 -1
  495. data/examples/todolist/public/js/jquery.js +0 -1923
  496. data/examples/todolist/public/ramaze.png +0 -0
  497. data/examples/todolist/spec/todolist.rb +0 -132
  498. data/examples/todolist/src/controller/main.rb +0 -70
  499. data/examples/todolist/src/element/page.rb +0 -31
  500. data/examples/todolist/src/model.rb +0 -14
  501. data/examples/todolist/start.rb +0 -11
  502. data/examples/todolist/template/index.xhtml +0 -17
  503. data/examples/todolist/template/new.xhtml +0 -7
  504. data/examples/whywiki/spec/whywiki.rb +0 -58
  505. data/examples/whywiki/template/show.xhtml +0 -18
  506. data/examples/wikore/start.rb +0 -9
  507. data/examples/wiktacular/mkd/main/2007-07-20_19-23-10.mkd +0 -2
  508. data/examples/wiktacular/mkd/main/2007-07-20_19-45-07.mkd +0 -2
  509. data/examples/wiktacular/mkd/main/current.mkd +0 -2
  510. data/examples/wiktacular/mkd/testing/2007-07-20_16-43-46.mkd +0 -2
  511. data/lib/proto/public/css/ramaze_error.css +0 -90
  512. data/lib/proto/public/dispatch.fcgi +0 -11
  513. data/lib/proto/public/ramaze.png +0 -0
  514. data/lib/proto/spec/main.rb +0 -24
  515. data/lib/proto/start.rb +0 -8
  516. data/lib/proto/start.ru +0 -8
  517. data/lib/proto/view/error.xhtml +0 -64
  518. data/lib/proto/view/page.xhtml +0 -15
  519. data/lib/ramaze/action/render.rb +0 -163
  520. data/lib/ramaze/action.rb +0 -136
  521. data/lib/ramaze/adapter/base.rb +0 -59
  522. data/lib/ramaze/adapter/cgi.rb +0 -24
  523. data/lib/ramaze/adapter/ebb.rb +0 -32
  524. data/lib/ramaze/adapter/evented_mongrel.rb +0 -7
  525. data/lib/ramaze/adapter/fcgi.rb +0 -24
  526. data/lib/ramaze/adapter/lsws.rb +0 -23
  527. data/lib/ramaze/adapter/mongrel.rb +0 -25
  528. data/lib/ramaze/adapter/scgi.rb +0 -22
  529. data/lib/ramaze/adapter/swiftiplied_mongrel.rb +0 -7
  530. data/lib/ramaze/adapter/thin.rb +0 -22
  531. data/lib/ramaze/adapter/webrick.rb +0 -52
  532. data/lib/ramaze/adapter.rb +0 -101
  533. data/lib/ramaze/cache/memcached.rb +0 -70
  534. data/lib/ramaze/cache/memory.rb +0 -6
  535. data/lib/ramaze/cache/yaml_store.rb +0 -68
  536. data/lib/ramaze/contrib/auto_params/get_args.rb +0 -57
  537. data/lib/ramaze/contrib/auto_params.rb +0 -135
  538. data/lib/ramaze/contrib/email.rb +0 -84
  539. data/lib/ramaze/contrib/facebook/facebook.rb +0 -171
  540. data/lib/ramaze/contrib/facebook.rb +0 -23
  541. data/lib/ramaze/contrib/file_cache.rb +0 -65
  542. data/lib/ramaze/contrib/gettext/mo.rb +0 -155
  543. data/lib/ramaze/contrib/gettext/parser.rb +0 -46
  544. data/lib/ramaze/contrib/gettext/po.rb +0 -109
  545. data/lib/ramaze/contrib/gettext.rb +0 -113
  546. data/lib/ramaze/contrib/gzip_filter.rb +0 -56
  547. data/lib/ramaze/contrib/profiling.rb +0 -36
  548. data/lib/ramaze/contrib/route.rb +0 -22
  549. data/lib/ramaze/contrib/sequel/fill.rb +0 -12
  550. data/lib/ramaze/contrib/sequel_cache.rb +0 -92
  551. data/lib/ramaze/contrib.rb +0 -82
  552. data/lib/ramaze/controller/error.rb +0 -46
  553. data/lib/ramaze/controller/main.rb +0 -2
  554. data/lib/ramaze/controller/resolve.rb +0 -234
  555. data/lib/ramaze/current/request.rb +0 -181
  556. data/lib/ramaze/current/response.rb +0 -19
  557. data/lib/ramaze/current/session/flash.rb +0 -67
  558. data/lib/ramaze/current/session/hash.rb +0 -65
  559. data/lib/ramaze/current/session.rb +0 -153
  560. data/lib/ramaze/dispatcher/action.rb +0 -40
  561. data/lib/ramaze/dispatcher/directory.rb +0 -116
  562. data/lib/ramaze/dispatcher/error.rb +0 -108
  563. data/lib/ramaze/dispatcher/file.rb +0 -87
  564. data/lib/ramaze/dispatcher.rb +0 -124
  565. data/lib/ramaze/error.rb +0 -24
  566. data/lib/ramaze/global/dsl.rb +0 -39
  567. data/lib/ramaze/global/globalstruct.rb +0 -147
  568. data/lib/ramaze/global.rb +0 -116
  569. data/lib/ramaze/helper/aspect.rb +0 -100
  570. data/lib/ramaze/helper/cgi.rb +0 -43
  571. data/lib/ramaze/helper/inform.rb +0 -40
  572. data/lib/ramaze/helper/nitroform.rb +0 -14
  573. data/lib/ramaze/helper/pager.rb +0 -366
  574. data/lib/ramaze/helper/partial.rb +0 -96
  575. data/lib/ramaze/helper/redirect.rb +0 -73
  576. data/lib/ramaze/helper/sendfile.rb +0 -18
  577. data/lib/ramaze/helper/sequel.rb +0 -52
  578. data/lib/ramaze/inform.rb +0 -4
  579. data/lib/ramaze/log/analogger.rb +0 -37
  580. data/lib/ramaze/log/growl.rb +0 -35
  581. data/lib/ramaze/log/knotify.rb +0 -25
  582. data/lib/ramaze/log/xosd.rb +0 -88
  583. data/lib/ramaze/route.rb +0 -84
  584. data/lib/ramaze/snippets/array/put_within.rb +0 -37
  585. data/lib/ramaze/snippets/binding/locals.rb +0 -13
  586. data/lib/ramaze/snippets/dictionary.rb +0 -504
  587. data/lib/ramaze/snippets/divide.rb +0 -20
  588. data/lib/ramaze/snippets/kernel/__dir__.rb +0 -23
  589. data/lib/ramaze/snippets/kernel/acquire.rb +0 -39
  590. data/lib/ramaze/snippets/kernel/aquire.rb +0 -1
  591. data/lib/ramaze/snippets/kernel/constant.rb +0 -26
  592. data/lib/ramaze/snippets/kernel/pretty_inspect.rb +0 -15
  593. data/lib/ramaze/snippets/metaid.rb +0 -17
  594. data/lib/ramaze/snippets/numeric/filesize_format.rb +0 -19
  595. data/lib/ramaze/snippets/object/pretty.rb +0 -6
  596. data/lib/ramaze/snippets/object/scope.rb +0 -11
  597. data/lib/ramaze/snippets/object/thread_accessor.rb +0 -5
  598. data/lib/ramaze/snippets/object/traits.rb +0 -76
  599. data/lib/ramaze/snippets/ordered_set.rb +0 -36
  600. data/lib/ramaze/snippets/proc/locals.rb +0 -11
  601. data/lib/ramaze/snippets/ramaze/caller_info.rb +0 -30
  602. data/lib/ramaze/snippets/ramaze/caller_lines.rb +0 -51
  603. data/lib/ramaze/snippets/ramaze/thread_accessor.rb +0 -44
  604. data/lib/ramaze/snippets/string/each.rb +0 -8
  605. data/lib/ramaze/snippets/string/ord.rb +0 -15
  606. data/lib/ramaze/snippets/string/start_with.rb +0 -7
  607. data/lib/ramaze/snippets/struct/fill.rb +0 -23
  608. data/lib/ramaze/snippets/struct/values_at.rb +0 -23
  609. data/lib/ramaze/snippets/symbol/to_proc.rb +0 -24
  610. data/lib/ramaze/snippets/thread/into.rb +0 -18
  611. data/lib/ramaze/sourcereload.rb +0 -169
  612. data/lib/ramaze/spec/helper/browser.rb +0 -88
  613. data/lib/ramaze/spec/helper/mock_http.rb +0 -69
  614. data/lib/ramaze/spec/helper/requester.rb +0 -49
  615. data/lib/ramaze/spec/helper/simple_http.rb +0 -434
  616. data/lib/ramaze/spec/helper.rb +0 -122
  617. data/lib/ramaze/spec.rb +0 -1
  618. data/lib/ramaze/store/default.rb +0 -109
  619. data/lib/ramaze/template/amrita2.rb +0 -44
  620. data/lib/ramaze/template/builder.rb +0 -28
  621. data/lib/ramaze/template/erubis.rb +0 -35
  622. data/lib/ramaze/template/ezamar/element.rb +0 -169
  623. data/lib/ramaze/template/ezamar/engine.rb +0 -76
  624. data/lib/ramaze/template/ezamar/morpher.rb +0 -135
  625. data/lib/ramaze/template/ezamar/render_partial.rb +0 -31
  626. data/lib/ramaze/template/ezamar.rb +0 -42
  627. data/lib/ramaze/template/haml.rb +0 -37
  628. data/lib/ramaze/template/liquid.rb +0 -36
  629. data/lib/ramaze/template/markaby.rb +0 -52
  630. data/lib/ramaze/template/nagoro.rb +0 -51
  631. data/lib/ramaze/template/none.rb +0 -14
  632. data/lib/ramaze/template/redcloth.rb +0 -24
  633. data/lib/ramaze/template/remarkably.rb +0 -38
  634. data/lib/ramaze/template/sass.rb +0 -37
  635. data/lib/ramaze/template/tagz.rb +0 -79
  636. data/lib/ramaze/template/tenjin.rb +0 -34
  637. data/lib/ramaze/template/xslt.rb +0 -96
  638. data/lib/ramaze/template.rb +0 -81
  639. data/lib/ramaze/tool/create.rb +0 -74
  640. data/lib/ramaze/tool/localize.rb +0 -162
  641. data/lib/ramaze/tool/mime.rb +0 -25
  642. data/lib/ramaze/tool/mime_types.yaml +0 -615
  643. data/lib/ramaze/tool/record.rb +0 -6
  644. data/lib/ramaze/tool.rb +0 -9
  645. data/lib/ramaze/trinity.rb +0 -13
  646. data/lib/vendor/bacon.rb +0 -323
  647. data/rake_tasks/conf.rake +0 -73
  648. data/rake_tasks/coverage.rake +0 -46
  649. data/rake_tasks/darcs.rake +0 -5
  650. data/rake_tasks/gem.rake +0 -43
  651. data/rake_tasks/maintenance.rake +0 -384
  652. data/rake_tasks/spec.rake +0 -62
  653. data/spec/contrib/auto_params.rb +0 -121
  654. data/spec/contrib/profiling.rb +0 -26
  655. data/spec/contrib/route.rb +0 -36
  656. data/spec/contrib/sequel/fill.rb +0 -47
  657. data/spec/examples/simple_auth.rb +0 -32
  658. data/spec/examples/templates/template_amrita2.rb +0 -16
  659. data/spec/examples/templates/template_redcloth.rb +0 -28
  660. data/spec/ramaze/action/basics.rb +0 -36
  661. data/spec/ramaze/action/cache.rb +0 -43
  662. data/spec/ramaze/action/layout.rb +0 -190
  663. data/spec/ramaze/adapter/mongrel.rb +0 -12
  664. data/spec/ramaze/adapter/record.rb +0 -31
  665. data/spec/ramaze/adapter/webrick.rb +0 -12
  666. data/spec/ramaze/adapter.rb +0 -22
  667. data/spec/ramaze/cache.rb +0 -73
  668. data/spec/ramaze/controller.rb +0 -177
  669. data/spec/ramaze/current/request.rb +0 -30
  670. data/spec/ramaze/current/session.rb +0 -97
  671. data/spec/ramaze/dispatcher.rb +0 -31
  672. data/spec/ramaze/element.rb +0 -107
  673. data/spec/ramaze/helper/aspect.rb +0 -92
  674. data/spec/ramaze/helper/cgi.rb +0 -43
  675. data/spec/ramaze/helper/file.rb +0 -18
  676. data/spec/ramaze/helper/pager.rb +0 -99
  677. data/spec/ramaze/helper/partial.rb +0 -76
  678. data/spec/ramaze/helper/redirect.rb +0 -112
  679. data/spec/ramaze/localize.rb +0 -67
  680. data/spec/ramaze/morpher.rb +0 -111
  681. data/spec/ramaze/public/error404.xhtml +0 -1
  682. data/spec/ramaze/request/mongrel.rb +0 -9
  683. data/spec/ramaze/request/thin.rb +0 -9
  684. data/spec/ramaze/request/webrick.rb +0 -5
  685. data/spec/ramaze/route.rb +0 -130
  686. data/spec/ramaze/session.rb +0 -94
  687. data/spec/ramaze/store/default.rb +0 -71
  688. data/spec/ramaze/template/amrita2/external.amrita +0 -6
  689. data/spec/ramaze/template/amrita2/sum.amrita +0 -1
  690. data/spec/ramaze/template/amrita2.rb +0 -50
  691. data/spec/ramaze/template/builder/external.rxml +0 -3
  692. data/spec/ramaze/template/builder.rb +0 -55
  693. data/spec/ramaze/template/erubis/sum.rhtml +0 -1
  694. data/spec/ramaze/template/erubis.rb +0 -41
  695. data/spec/ramaze/template/ezamar/another/long/action.zmr +0 -1
  696. data/spec/ramaze/template/ezamar/combined.zmr +0 -1
  697. data/spec/ramaze/template/ezamar/file_only.zmr +0 -1
  698. data/spec/ramaze/template/ezamar/index.zmr +0 -1
  699. data/spec/ramaze/template/ezamar/nested.zmr +0 -1
  700. data/spec/ramaze/template/ezamar/other__index.xhtml +0 -1
  701. data/spec/ramaze/template/ezamar/some__long__action.zmr +0 -1
  702. data/spec/ramaze/template/ezamar/sum.zmr +0 -1
  703. data/spec/ramaze/template/ezamar.rb +0 -63
  704. data/spec/ramaze/template/haml/index.haml +0 -5
  705. data/spec/ramaze/template/haml/locals.haml +0 -2
  706. data/spec/ramaze/template/haml/with_vars.haml +0 -4
  707. data/spec/ramaze/template/haml.rb +0 -66
  708. data/spec/ramaze/template/liquid/index.liquid +0 -1
  709. data/spec/ramaze/template/liquid/products.liquid +0 -45
  710. data/spec/ramaze/template/liquid.rb +0 -99
  711. data/spec/ramaze/template/markaby/external.mab +0 -8
  712. data/spec/ramaze/template/markaby/sum.mab +0 -1
  713. data/spec/ramaze/template/markaby.rb +0 -61
  714. data/spec/ramaze/template/nagoro/another/long/action.nag +0 -1
  715. data/spec/ramaze/template/nagoro/combined.nag +0 -1
  716. data/spec/ramaze/template/nagoro/file_only.nag +0 -1
  717. data/spec/ramaze/template/nagoro/index.nag +0 -1
  718. data/spec/ramaze/template/nagoro/nested.nag +0 -1
  719. data/spec/ramaze/template/nagoro/some__long__action.nag +0 -1
  720. data/spec/ramaze/template/nagoro/sum.nag +0 -1
  721. data/spec/ramaze/template/nagoro.rb +0 -64
  722. data/spec/ramaze/template/redcloth/external.redcloth +0 -1
  723. data/spec/ramaze/template/redcloth.rb +0 -38
  724. data/spec/ramaze/template/remarkably.rb +0 -58
  725. data/spec/ramaze/template/sass.rb +0 -69
  726. data/spec/ramaze/template/tenjin/external.tenjin +0 -1
  727. data/spec/ramaze/template/tenjin.rb +0 -49
  728. data/spec/ramaze/template/xslt/concat_words.xsl +0 -16
  729. data/spec/ramaze/template/xslt/index.xsl +0 -14
  730. data/spec/ramaze/template/xslt/products.xsl +0 -32
  731. data/spec/ramaze/template/xslt/ruby_version.xsl +0 -14
  732. data/spec/ramaze/template/xslt.rb +0 -90
  733. data/spec/ramaze/template.rb +0 -128
  734. data/spec/snippets/array/put_within.rb +0 -33
  735. data/spec/snippets/divide.rb +0 -19
  736. data/spec/snippets/kernel/__dir__.rb +0 -8
  737. data/spec/snippets/kernel/acquire.rb +0 -71
  738. data/spec/snippets/kernel/constant.rb +0 -23
  739. data/spec/snippets/numeric/filesize_format.rb +0 -12
  740. data/spec/snippets/ordered_set.rb +0 -63
  741. data/spec/snippets/ramaze/caller_info.rb +0 -39
  742. data/spec/snippets/ramaze/caller_lines.rb +0 -30
  743. data/spec/snippets/struct/fill.rb +0 -26
  744. data/spec/snippets/struct/values_at.rb +0 -44
  745. data/spec/snippets/symbol/to_proc.rb +0 -13
  746. data/spec/snippets/thread/into.rb +0 -20
  747. /data/examples/{todolist → app/todolist}/public/favicon.ico +0 -0
  748. /data/examples/{upload → app/upload}/view/index.xhtml +0 -0
  749. /data/examples/{wikore/template → app/wikore/view}/index.xhtml +0 -0
  750. /data/examples/{wiktacular → app/wiktacular}/README +0 -0
  751. /data/examples/{wiktacular → app/wiktacular}/mkd/link/2007-07-20_19-45-51.mkd +0 -0
  752. /data/examples/{wiktacular → app/wiktacular}/mkd/link/current.mkd +0 -0
  753. /data/examples/{wiktacular → app/wiktacular}/mkd/main/2007-07-20_16-31-33.mkd +0 -0
  754. /data/examples/{wiktacular → app/wiktacular}/public/favicon.ico +0 -0
  755. /data/examples/{wiktacular → app/wiktacular}/public/screen.css +0 -0
  756. /data/examples/{wiktacular/template → app/wiktacular/view}/index.xhtml +0 -0
  757. /data/examples/{identity.rb → helpers/identity.rb} +0 -0
  758. /data/examples/{facebook.rb → misc/facebook.rb} +0 -0
  759. /data/examples/templates/{template → view}/external.liquid +0 -0
  760. /data/spec/ramaze/action/{template → view}/bar.xhtml +0 -0
  761. /data/spec/ramaze/action/{template → view}/instancevars/layout.xhtml +0 -0
  762. /data/spec/ramaze/action/{template → view}/other_wrapper.xhtml +0 -0
  763. /data/spec/ramaze/action/{template → view}/single_wrapper.xhtml +0 -0
  764. /data/spec/ramaze/action/{template/sub/sub_wrapper.xhtml → view/sub/sub_wrapper.erb} +0 -0
  765. /data/spec/ramaze/controller/{template → view}/greet.xhtml +0 -0
  766. /data/spec/ramaze/controller/{template → view}/list.xhtml +0 -0
  767. /data/spec/ramaze/controller/{template → view}/other/greet/other.xhtml +0 -0
  768. /data/spec/ramaze/controller/{template → view}/other_wrapper.xhtml +0 -0
  769. /data/spec/ramaze/helper/{template → view}/locals.xhtml +0 -0
  770. /data/spec/ramaze/helper/{template → view}/loop.xhtml +0 -0
  771. /data/spec/ramaze/helper/{template → view}/num.xhtml +0 -0
  772. /data/spec/ramaze/helper/{template → view}/partial.xhtml +0 -0
  773. /data/spec/ramaze/helper/{template → view}/recursive.xhtml +0 -0
  774. /data/spec/ramaze/helper/{template → view}/recursive_local_ivars.xhtml +0 -0
  775. /data/spec/ramaze/helper/{template → view}/recursive_locals.xhtml +0 -0
  776. /data/spec/ramaze/helper/{template → view}/test_template.xhtml +0 -0
  777. /data/spec/ramaze/{template → view}/remarkably/external.rem +0 -0
  778. /data/spec/ramaze/{template → view}/remarkably/sum.rem +0 -0
  779. /data/spec/ramaze/{template → view}/sass/file.css.sass +0 -0
  780. /data/spec/ramaze/{template → view}/tagz/external.tagz +0 -0
  781. /data/spec/ramaze/{template → view}/tagz/sum.tagz +0 -0
@@ -0,0 +1,5 @@
1
+ <em>laid out</em>
2
+
3
+ <div id="content">
4
+ #@content
5
+ </div>
@@ -0,0 +1,109 @@
1
+ # Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
2
+ # All files in this distribution are subject to the terms of the MIT license.
3
+
4
+ require File.expand_path('../../../../spec/helper', __FILE__)
5
+
6
+ class LayoutHelperOne < Ramaze::Controller
7
+ map '/one'
8
+
9
+ set_layout 'default'
10
+
11
+ def laid_out1; end
12
+ def laid_out2; end
13
+ def laid_out3; end
14
+ end
15
+
16
+ class LayoutHelperTwo < Ramaze::Controller
17
+ map '/two'
18
+
19
+ layout 'default'
20
+ set_layout 'alternative' => [:laid_out2, :laid_out3]
21
+
22
+ def laid_out1; end
23
+ def laid_out2; end
24
+ def laid_out3; end
25
+ end
26
+
27
+ class LayoutHelperThree < Ramaze::Controller
28
+ map '/three'
29
+
30
+ set_layout 'default' => [:laid_out1], 'alternative' => [:laid_out2]
31
+ set_layout 'default' => [:laid_out3]
32
+
33
+ def laid_out1; end
34
+ def laid_out2; end
35
+ def laid_out3; end
36
+ end
37
+
38
+ class LayoutHelperFour < Ramaze::Controller
39
+ map '/four'
40
+
41
+ layout { |path| 'default' }
42
+
43
+ set_layout 'alternative' => [:laid_out2]
44
+ set_layout 'alternative' => [:laid_out3]
45
+
46
+ def laid_out1; end
47
+ def laid_out2; end
48
+ def laid_out3; end
49
+ end
50
+
51
+ describe Ramaze::Helper::Layout do
52
+ behaves_like :rack_test
53
+
54
+ it 'lays out all actions' do
55
+ get '/one/laid_out1'
56
+ last_response.status.should == 200
57
+ last_response.body.should.match /laid out/
58
+
59
+ get '/one/laid_out2'
60
+ last_response.status.should == 200
61
+ last_response.body.should.match /laid out/
62
+
63
+ get '/one/laid_out3'
64
+ last_response.status.should == 200
65
+ last_response.body.should.match /laid out/
66
+ end
67
+
68
+ it 'lays out only a whitelist of actions with layout() as a fallback' do
69
+ get '/two/laid_out1'
70
+ last_response.status.should == 200
71
+ last_response.body.should.match /laid out/
72
+
73
+ get '/two/laid_out2'
74
+ last_response.status.should == 200
75
+ last_response.body.should.match /alternative/
76
+
77
+ get '/two/laid_out3'
78
+ last_response.status.should == 200
79
+ last_response.body.should.match /alternative/
80
+ end
81
+
82
+ it 'Define a set of method specific layouts' do
83
+ get '/three/laid_out1'
84
+ last_response.status.should === 200
85
+ last_response.body.should.match /laid out/
86
+
87
+ get '/three/laid_out2'
88
+ last_response.status.should === 200
89
+ last_response.body.should.match /alternative/
90
+
91
+ get '/three/laid_out3'
92
+ last_response.status.should === 200
93
+ last_response.body.should.match /laid out/
94
+ end
95
+
96
+ it 'lays out a whitelist with layout() as a fallback using a block' do
97
+ get '/four/laid_out1'
98
+ last_response.status.should == 200
99
+ last_response.body.should.match /laid out/
100
+
101
+ get '/four/laid_out2'
102
+ last_response.status.should == 200
103
+ last_response.body.should.match /alternative/
104
+
105
+ get '/four/laid_out3'
106
+ last_response.status.should == 200
107
+ last_response.body.should.match /alternative/
108
+ end
109
+ end
@@ -1,124 +1,70 @@
1
- # Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com
2
- # All files in this distribution are subject to the terms of the Ruby license.
1
+ # Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
2
+ # All files in this distribution are subject to the terms of the MIT license.
3
3
 
4
- require 'spec/helper'
5
- require 'ramaze/helper/link'
4
+ require File.expand_path('../../../../spec/helper', __FILE__)
6
5
 
7
- class TCLink < Ramaze::Controller
6
+ class SpecHelperLink < Ramaze::Controller
8
7
  map '/'
9
- def index; end
10
8
  end
11
9
 
12
- class TCLink2 < Ramaze::Controller
13
- map '/2'
14
- def index; end
10
+ class SpecHelperLinkTwo < Ramaze::Controller
11
+ map '/two'
15
12
  end
16
13
 
17
- ramaze
18
-
19
- describe "A" do
20
- extend Ramaze::Helper::Link
21
- behaves_like 'resolve'
22
-
23
- it 'should build links' do
24
- A('title', :href => '/').should == %(<a href="/">title</a>)
25
- A('title', :href => '/foo').should == %(<a href="/foo">title</a>)
26
- A('title', :href => '/foo?x=y').should == %{<a href="/foo?x=y">title</a>}
27
- stack('/'){ A('/foo?x=y') }.should == %{<a href="/foo?x=y">/foo?x=y</a>}
28
-
29
- a = A('title', :href => '/foo', :class => :none)
30
- a.should =~ /class="none"/
31
- a.should =~ /href="\/foo"/
32
- end
33
-
34
- it 'should build position independend links' do
35
- stack('/'){ A(TCLink, :foo) }.should == %(<a href="/foo">foo</a>)
36
- end
37
-
38
- it 'should escape path' do
39
- stack('/'){ A('ti tle') }.should == '<a href="/ti+tle">ti tle</a>'
40
- a = A('', :href => "/foo?chunky=b\000acon")
41
- a.should == '<a href="/foo?chunky=b%00acon"></a>'
42
- end
43
-
44
- it 'should handle text key' do
45
- A(:href => '/', :text => 'text').should == '<a href="/">text</a>'
46
- end
47
-
48
- it 'should use last argument as first text fallback' do
49
- a = A('text', :href => '/', :title => 'title')
50
- a.should =~ /href="\/"/
51
- a.should =~ /title="title"/
52
- a.should =~ />text</
53
- end
54
-
55
- it 'should use :title as second text fallback' do
56
- a = A(:href => '/', :title => 'text')
57
- a.should =~ /title="text"/
58
- a.should =~ /href="\/"/
59
- a.should =~ />text</
60
- end
61
-
62
- it 'should use :href as third text fallback' do
63
- A(:href => '/').should == '<a href="/">/</a>'
64
- end
14
+ class SpecHelperApp < Ramaze::Controller
15
+ map '/', :other
65
16
  end
66
17
 
67
- describe 'R' do
68
- extend Ramaze::Helper::Link
69
-
70
- it 'should build urls' do
71
- R(TCLink).should == '/'
72
- R(TCLink, :foo).should == '/foo'
73
- R(TCLink, :foo, :bar).should == '/foo/bar'
74
- R(TCLink, :foo, :bar => :baz).should == '/foo?bar=baz'
75
- end
18
+ class SpecHelperAppTwo < Ramaze::Controller
19
+ map '/two', :other
76
20
  end
77
21
 
78
- describe 'Rs' do
79
- extend Ramaze::Helper::Link
80
-
81
- def resolve(url)
82
- Ramaze::Controller::resolve(url)
83
- end
84
-
85
- it 'should build links for current controller' do
86
- resolve('/2').stack{ Rs(:index).should == '/2/index' }
87
- resolve('/').stack{ Rs(:index).should == '/index' }
88
- end
89
-
90
- it 'should treat Rs() like R() when Controller given' do
91
- resolve('/2').stack{ Rs(TCLink, :index).should == '/2/index' }
92
- end
93
-
94
- it 'should treat non-controllers as strings' do
95
- resolve('/2').stack{ Rs(Ramaze, :index).should == '/2/Ramaze/index' }
96
- end
22
+ Ramaze::App[:other].location = '/other'
97
23
 
98
- end
99
-
100
- describe 'breadcrumbs' do
24
+ describe Ramaze::Helper::Link do
101
25
  extend Ramaze::Helper::Link
102
26
 
103
- it 'should lay out breadcrumbs' do
104
- breadcrumbs('/file/dir/listing/is/cool').
27
+ it 'lays out breadcrumbs' do
28
+ SpecHelperLink.breadcrumbs('/file/dir/listing/is/cool').
105
29
  should == [
106
- "<a href=\"/file\">file</a>",
107
- "<a href=\"/file/dir\">dir</a>",
108
- "<a href=\"/file/dir/listing\">listing</a>",
109
- "<a href=\"/file/dir/listing/is\">is</a>",
110
- "<a href=\"/file/dir/listing/is/cool\">cool</a>"
30
+ '<a href="/file">file</a>',
31
+ '<a href="/file/dir">dir</a>',
32
+ '<a href="/file/dir/listing">listing</a>',
33
+ '<a href="/file/dir/listing/is">is</a>',
34
+ '<a href="/file/dir/listing/is/cool">cool</a>'
111
35
  ].join('/')
112
36
  end
113
37
 
114
- it 'should lay out breadcrumbs with href prefix' do
115
- breadcrumbs('/file/dir/listing/is/cool', '/', '/', '/prefix/path').
38
+ it 'lays out breadcrumbs with href prefix' do
39
+ SpecHelperLink.breadcrumbs('/file/dir/listing/is/cool', '/', '/', '/prefix/path').
116
40
  should == [
117
- "<a href=\"/prefix/path/file\">file</a>",
118
- "<a href=\"/prefix/path/file/dir\">dir</a>",
119
- "<a href=\"/prefix/path/file/dir/listing\">listing</a>",
120
- "<a href=\"/prefix/path/file/dir/listing/is\">is</a>",
121
- "<a href=\"/prefix/path/file/dir/listing/is/cool\">cool</a>"
41
+ '<a href="/prefix/path/file">file</a>',
42
+ '<a href="/prefix/path/file/dir">dir</a>',
43
+ '<a href="/prefix/path/file/dir/listing">listing</a>',
44
+ '<a href="/prefix/path/file/dir/listing/is">is</a>',
45
+ '<a href="/prefix/path/file/dir/listing/is/cool">cool</a>'
122
46
  ].join('/')
123
47
  end
48
+
49
+ it "builds routes and links to other applications" do
50
+ SpecHelperApp.r(:foo).to_s.should == '/other/foo'
51
+ SpecHelperApp.a(:foo, :bar).should == '<a href="/other/bar">foo</a>'
52
+ SpecHelperAppTwo.r(:foo).to_s.should == '/other/two/foo'
53
+ SpecHelperAppTwo.a(:foo, :bar).should == '<a href="/other/two/bar">foo</a>'
54
+ end
55
+ it "builds routes when Ramaze.options.prefix is present" do
56
+ Ramaze.options.prefix = '/prfx'
57
+ SpecHelperLink.r(:foo).to_s.should == '/prfx/foo'
58
+ SpecHelperLinkTwo.r(:foo).to_s.should == '/prfx/two/foo'
59
+ SpecHelperApp.r(:foo).to_s.should == '/prfx/other/foo'
60
+ SpecHelperAppTwo.r(:foo).to_s.should == '/prfx/other/two/foo'
61
+
62
+ end
63
+ it "builds links when Ramaze.options.prefix is present" do
64
+ Ramaze.options.prefix = '/prfx'
65
+ SpecHelperLink.a(:foo, :bar).should == '<a href="/prfx/bar">foo</a>'
66
+ SpecHelperLinkTwo.a(:foo, :bar).should == '<a href="/prfx/two/bar">foo</a>'
67
+ SpecHelperApp.a(:foo, :bar).should == '<a href="/prfx/other/bar">foo</a>'
68
+ SpecHelperAppTwo.a(:foo, :bar).should == '<a href="/prfx/other/two/bar">foo</a>'
69
+ end
124
70
  end
@@ -0,0 +1,65 @@
1
+ # * Encoding: UTF-8
2
+ # Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
3
+ # All files in this distribution are subject to the terms of the MIT license.
4
+
5
+ $KCODE = 'u' if /regexp/.respond_to?(:kcode)
6
+ require File.expand_path('../../../../spec/helper', __FILE__)
7
+ spec_requires 'locale/tag', 'locale'
8
+
9
+ class SpecHelperLocalize < Ramaze::Controller
10
+ map '/'
11
+ helper :localize
12
+
13
+ def index
14
+ locale.language
15
+ end
16
+
17
+ def translate(string)
18
+ l(string)
19
+ end
20
+
21
+ private
22
+
23
+ def localize_dictionary
24
+ DICTIONARY
25
+ end
26
+ end
27
+
28
+ DICTIONARY = Ramaze::Helper::Localize::Dictionary.new
29
+ DICTIONARY.load(:en, :hash => {'one' => 'one', 'two' => 'two'})
30
+ DICTIONARY.load(:de, :hash => {'one' => 'eins', 'two' => 'zwei'})
31
+ DICTIONARY.load(:ja, :hash => {'one' => '一', 'three' => '三'})
32
+
33
+ describe Ramaze::Helper::Localize do
34
+ behaves_like :rack_test
35
+
36
+ should 'default to a language' do
37
+ get('/').body.should == 'en'
38
+ end
39
+
40
+ should 'override language by ?lang' do
41
+ get('/?lang=de').body.should == 'de'
42
+ end
43
+
44
+ should 'override language by cookie' do
45
+ set_cookie('lang=ja')
46
+ get('/').body.should == 'ja'
47
+ clear_cookies
48
+ end
49
+
50
+ should 'not fail if language is invalid' do
51
+ get('/?lang=foobar').body.should == 'foobar'
52
+ end
53
+
54
+ should 'use dictionary to translate' do
55
+ get('/translate/one').body.should == 'one'
56
+ get('/translate/one?lang=en').body.should == 'one'
57
+ get('/translate/one?lang=ja').body.should == '一'
58
+ get('/translate/one?lang=de').body.should == 'eins'
59
+ end
60
+
61
+ it "falls back to default language if string wasn't found in dictionary" do
62
+ get('/translate/two?lang=ja').body.should == 'two'
63
+ get('/translate/three?lang=ja').body.should == '三'
64
+ end
65
+ end
@@ -0,0 +1,22 @@
1
+ # Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
2
+ # All files in this distribution are subject to the terms of the MIT license.
3
+
4
+ require File.expand_path('../../../../spec/helper', __FILE__)
5
+ spec_require 'maruku'
6
+
7
+ class SpecHelperMaruku < Ramaze::Controller
8
+ map '/'
9
+ helper :maruku
10
+
11
+ def index
12
+ maruku('# Hello')
13
+ end
14
+ end
15
+
16
+ describe Ramaze::Helper::Maruku do
17
+ behaves_like :rack_test
18
+
19
+ it 'converts a markdown string to html' do
20
+ get('/').body.should =~ /<h1 id=["']hello["']>Hello<\/h1>/
21
+ end
22
+ end
@@ -0,0 +1,304 @@
1
+ # Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
2
+ # All files in this distribution are subject to the terms of the MIT license.
3
+
4
+ require File.expand_path('../../../../spec/helper', __FILE__)
5
+
6
+ spec_require 'nokogiri'
7
+
8
+ class SpecHelperPaginateArray < Ramaze::Controller
9
+ map '/array'
10
+ helper :paginate
11
+
12
+ ALPHA = %w[ alpha beta gamma delta epsilon zeta eta theta iota kappa lambda
13
+ mu nu xi omicron pi rho sigma tau ypsilon phi chi psi omega ]
14
+
15
+ def navigation
16
+ pager = paginate(ALPHA)
17
+ pager.navigation
18
+ end
19
+
20
+ def custom_navigation
21
+ css = {:first => "TheFirst", :prev => "ThePrevious", :next => "TheNext",
22
+ :last => "TheLast", :number => "TheNumber",
23
+ :disabled =>"Severely Disabled", :current => "TheCurrent" }
24
+
25
+ pager = paginate(ALPHA, :css => css)
26
+ pager.navigation
27
+ end
28
+
29
+ def iteration
30
+ pager = paginate(ALPHA)
31
+ out = []
32
+ pager.each{|item| out << item }
33
+ out.inspect
34
+ end
35
+
36
+ def preserve_params
37
+ request.params['single'] = 'zero'
38
+ request.params['multiple'] = %w[ one two three ]
39
+ pager = paginate(ALPHA)
40
+ pager.navigation
41
+ end
42
+ end
43
+
44
+ describe Ramaze::Helper::Paginate do
45
+ describe 'Array' do
46
+ behaves_like :rack_test
47
+
48
+ it 'shows navigation for page 1' do
49
+ doc = Nokogiri::HTML(get("/array/navigation").body)
50
+
51
+ doc.css('a').map{|a| [a.inner_text, a[:href]] }.
52
+ should == [
53
+ ['1', '/array/navigation?pager=1'],
54
+ ['2', '/array/navigation?pager=2'],
55
+ ['3', '/array/navigation?pager=3'],
56
+ ['>', '/array/navigation?pager=2'],
57
+ ['>>', '/array/navigation?pager=3']]
58
+ end
59
+
60
+ it 'shows navigation for page 2' do
61
+ doc = Nokogiri::HTML(get("/array/navigation?pager=2").body)
62
+
63
+ doc.css('a').map{|a| [a.inner_text, a[:href]] }.
64
+ should == [
65
+ ['<<', '/array/navigation?pager=1'],
66
+ ['<', '/array/navigation?pager=1'],
67
+ ['1', '/array/navigation?pager=1'],
68
+ ['2', '/array/navigation?pager=2'],
69
+ ['3', '/array/navigation?pager=3'],
70
+ ['>', '/array/navigation?pager=3'],
71
+ ['>>', '/array/navigation?pager=3']]
72
+ end
73
+
74
+ it 'shows navigation for page 3' do
75
+ doc = Nokogiri::HTML(get("/array/navigation?pager=3").body)
76
+ doc.css('a').map{|a| [a.inner_text, a[:href]] }.
77
+ should == [
78
+ ['<<', '/array/navigation?pager=1'],
79
+ ['<', '/array/navigation?pager=2'],
80
+ ['1', '/array/navigation?pager=1'],
81
+ ['2', '/array/navigation?pager=2'],
82
+ ['3', '/array/navigation?pager=3']]
83
+ end
84
+
85
+ it 'iterates over the items in the pager' do
86
+ got = get('/array/iteration')
87
+ got.body.scan(/\w+/).should == SpecHelperPaginateArray::ALPHA.first(10)
88
+ end
89
+
90
+ it 'sets default css elements on page 1' do
91
+ doc = Nokogiri::HTML(get('/array/navigation').body)
92
+ # Paginator outputs spans for disabled elements
93
+ # Since we're on the first page, the first two
94
+ # elements are spans, then a's
95
+ # Note that this is only valid for the first page since
96
+ # it doens't need lonks to first and prev
97
+ #
98
+ # Looking for spans first
99
+ spans = doc.search("//span")
100
+ first = spans.first[:class]
101
+ first.should == "first grey"
102
+
103
+ prev = spans[1][:class]
104
+ prev.should == "prev grey"
105
+
106
+ # Looking for a elements
107
+ as = doc.search("//a")
108
+ current = as.first[:class]
109
+ current.should == "current "
110
+
111
+ randomnumber = as[1][:class]
112
+ randomnumber.should == ""
113
+
114
+ nxt = as[3][:class]
115
+ nxt.should == "next"
116
+
117
+ last = as[4][:class]
118
+ last.should == "last"
119
+ end
120
+
121
+ it 'sets default css elements on page 2' do
122
+ doc = Nokogiri::HTML(get('/array/navigation?pager=2').body)
123
+ # Paginator outputs spans for disabled elements
124
+ # Since we're on the second page, none are disabled
125
+ # Note that this is only valid for the second page since
126
+ # it will have all the links, while 1 and 3 have some disabled
127
+ #
128
+ # Looking for a elements
129
+ as = doc.search("//a")
130
+ first = as.first[:class]
131
+ first.should == "first"
132
+
133
+ prev = as[1][:class]
134
+ prev.should == "prev"
135
+
136
+ pg1 = as[2][:class]
137
+ pg1.should == ""
138
+
139
+ current = as[3][:class]
140
+ current.should == "current "
141
+
142
+ pg3 = as[4][:class]
143
+ pg3.should == ""
144
+
145
+ nxt = as[5][:class]
146
+ nxt.should == "next"
147
+
148
+ last = as[6][:class]
149
+ last.should == "last"
150
+ end
151
+
152
+ it 'sets default css elements on page 3' do
153
+ doc = Nokogiri::HTML(get('/array/navigation?pager=3').body)
154
+ # Paginator outputs spans for disabled elements
155
+ # Since we're on the last page, last and next will be disabled
156
+ # Note that this is only valid for the third page
157
+ #
158
+ # Looking for a elements
159
+ as = doc.search("//a")
160
+ first = as.first[:class]
161
+ first.should == "first"
162
+
163
+ prev = as[1][:class]
164
+ prev.should == "prev"
165
+
166
+ pg1 = as[2][:class]
167
+ pg1.should == ""
168
+
169
+ pg2 = as[3][:class]
170
+ pg2.should == ""
171
+
172
+ current = as[4][:class]
173
+ current.should == "current "
174
+
175
+ # Looking for span elements
176
+ spans = doc.search("//span")
177
+ first = spans.first[:class]
178
+ first.should == "next grey"
179
+
180
+ last = spans[1][:class]
181
+ last.should == "last grey"
182
+
183
+ end
184
+
185
+ it 'sets our custom css elements for page 1' do
186
+ doc = Nokogiri::HTML(get('/array/custom_navigation').body)
187
+ # Paginator outputs spans for disabled elements
188
+ # Since we're on the first page, the first two
189
+ # elements are spans, then a's
190
+ # Note that this is only valid for the first page since
191
+ # it doens't need lonks to first and prev
192
+ #
193
+ # Looking for spans first
194
+ spans = doc.search("//span")
195
+ first = spans.first[:class]
196
+ first.should.include? "TheFirst"
197
+ first.should.include? "Disabled"
198
+ first.should.include? "Severely"
199
+
200
+ prev = spans[1][:class]
201
+ prev.should.include? "Severely"
202
+ prev.should.include? "Disabled"
203
+ prev.should.include? "ThePrevious"
204
+
205
+ # Looking for a elements
206
+ as = doc.search("//a")
207
+ current = as.first[:class]
208
+ current.should.include? "TheCurrent"
209
+ current.should.include? "TheNumber"
210
+
211
+ randomnumber = as[1][:class]
212
+ randomnumber.should.include? "TheNumber"
213
+
214
+ nxt = as[3][:class]
215
+ nxt.should.include? "TheNext"
216
+
217
+ last = as[4][:class]
218
+ last.should.include? "TheLast"
219
+ end
220
+
221
+ it 'sets our custom css elements on page 2' do
222
+ doc = Nokogiri::HTML(get('/array/custom_navigation?pager=2').body)
223
+ # Paginator outputs spans for disabled elements
224
+ # Since we're on the second page, none are disabled
225
+ # Note that this is only valid for the second page since
226
+ # it will have all the links, while 1 and 3 have some disabled
227
+ #
228
+ # Looking for a elements
229
+ as = doc.search("//a")
230
+ first = as.first[:class]
231
+ first.should == "TheFirst"
232
+
233
+ prev = as[1][:class]
234
+ prev.should == "ThePrevious"
235
+
236
+ pg1 = as[2][:class]
237
+ pg1.should == "TheNumber"
238
+
239
+ current = as[3][:class]
240
+ current.should == "TheCurrent TheNumber"
241
+
242
+ pg3 = as[4][:class]
243
+ pg3.should == "TheNumber"
244
+
245
+ nxt = as[5][:class]
246
+ nxt.should == "TheNext"
247
+
248
+ last = as[6][:class]
249
+ last.should == "TheLast"
250
+ end
251
+
252
+ it 'sets our custom css elements on page 3' do
253
+ doc = Nokogiri::HTML(get('/array/custom_navigation?pager=3').body)
254
+ # Paginator outputs spans for disabled elements
255
+ # Since we're on the last page, last and next will be disabled
256
+ # Note that this is only valid for the third page
257
+ #
258
+ # Looking for a elements
259
+ as = doc.search("//a")
260
+ first = as.first[:class]
261
+ first.should == "TheFirst"
262
+
263
+ prev = as[1][:class]
264
+ prev.should == "ThePrevious"
265
+
266
+ pg1 = as[2][:class]
267
+ pg1.should == "TheNumber"
268
+
269
+ pg2 = as[3][:class]
270
+ pg2.should == "TheNumber"
271
+
272
+ current = as[4][:class]
273
+ current.should == "TheCurrent TheNumber"
274
+
275
+ # Looking for span elements
276
+ spans = doc.search("//span")
277
+ first = spans.first[:class]
278
+ first.should == "TheNext Severely Disabled"
279
+
280
+ last = spans[1][:class]
281
+ last.should == "TheLast Severely Disabled"
282
+
283
+ end
284
+
285
+ it 'preserves single value params' do
286
+ doc = Nokogiri::HTML(get("/array/preserve_params").body)
287
+ params = doc.search("//a").first[:href].split('?').last.split('&')
288
+ params.should.include 'single=zero'
289
+ params.should.not.include 'single[]'.escape(:cgi) + '=zero'
290
+ end
291
+
292
+ it 'preserves multi value params' do
293
+ doc = Nokogiri::HTML(get("/array/preserve_params").body)
294
+ params = doc.search("//a").first[:href].split('?').last.split('&')
295
+ params.should.not.include 'multiple=one'
296
+ params.should.not.include 'multiple=two'
297
+ params.should.not.include 'multiple=three'
298
+ params.should.include 'multiple[]'.escape(:cgi) + '=one'
299
+ params.should.include 'multiple[]'.escape(:cgi) + '=two'
300
+ params.should.include 'multiple[]'.escape(:cgi) + '=three'
301
+ end
302
+
303
+ end
304
+ end