rjspotter-ramaze 2009.06.29

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 (503) hide show
  1. data/.gitignore +3 -0
  2. data/.mailmap +25 -0
  3. data/MANIFEST +502 -0
  4. data/README.md +457 -0
  5. data/Rakefile +88 -0
  6. data/benchmark/bench_templates/bench.rb +67 -0
  7. data/benchmark/bench_templates/view/large.erb +79 -0
  8. data/benchmark/bench_templates/view/large.haml +41 -0
  9. data/benchmark/bench_templates/view/large.xhtml +79 -0
  10. data/benchmark/bench_templates/view/small.erb +21 -0
  11. data/benchmark/bench_templates/view/small.haml +12 -0
  12. data/benchmark/bench_templates/view/small.xhtml +21 -0
  13. data/benchmark/results.txt +131 -0
  14. data/benchmark/run.rb +355 -0
  15. data/benchmark/suite/minimal.rb +11 -0
  16. data/benchmark/suite/no_informer.rb +7 -0
  17. data/benchmark/suite/no_sessions.rb +9 -0
  18. data/benchmark/suite/no_template.rb +7 -0
  19. data/benchmark/suite/simple.rb +5 -0
  20. data/benchmark/suite/template_erubis.rb +8 -0
  21. data/benchmark/suite/template_etanni.rb +8 -0
  22. data/benchmark/suite/template_ezamar.rb +8 -0
  23. data/benchmark/suite/template_haml.rb +13 -0
  24. data/benchmark/suite/template_liquid.rb +11 -0
  25. data/benchmark/suite/template_markaby.rb +9 -0
  26. data/benchmark/suite/template_nagoro.rb +8 -0
  27. data/benchmark/suite/template_redcloth.rb +13 -0
  28. data/benchmark/suite/template_tenjin.rb +8 -0
  29. data/benchmark/test.rb +35 -0
  30. data/bin/ramaze +15 -0
  31. data/doc/AUTHORS +44 -0
  32. data/doc/CHANGELOG +17362 -0
  33. data/doc/COPYING +56 -0
  34. data/doc/FAQ +92 -0
  35. data/doc/GPL +339 -0
  36. data/doc/INSTALL +92 -0
  37. data/doc/LEGAL +26 -0
  38. data/doc/TODO +29 -0
  39. data/doc/meta/announcement.txt +146 -0
  40. data/doc/meta/configuration.txt +163 -0
  41. data/doc/meta/internals.txt +278 -0
  42. data/doc/meta/users.kml +64 -0
  43. data/doc/tutorial/todolist.html +1379 -0
  44. data/doc/tutorial/todolist.txt +920 -0
  45. data/examples/app/auth/layout/auth.xhtml +25 -0
  46. data/examples/app/auth/start.rb +23 -0
  47. data/examples/app/auth/view/index.xhtml +4 -0
  48. data/examples/app/auth/view/login.xhtml +20 -0
  49. data/examples/app/auth/view/secret.xhtml +1 -0
  50. data/examples/app/blog/README +3 -0
  51. data/examples/app/blog/app.rb +69 -0
  52. data/examples/app/blog/config.ru +17 -0
  53. data/examples/app/blog/controller/comment.rb +45 -0
  54. data/examples/app/blog/controller/entry.rb +85 -0
  55. data/examples/app/blog/controller/init.rb +86 -0
  56. data/examples/app/blog/controller/main.rb +20 -0
  57. data/examples/app/blog/controller/tag.rb +9 -0
  58. data/examples/app/blog/layout/default.nag +31 -0
  59. data/examples/app/blog/model/comment.rb +58 -0
  60. data/examples/app/blog/model/entry.rb +89 -0
  61. data/examples/app/blog/model/init.rb +15 -0
  62. data/examples/app/blog/model/tag.rb +36 -0
  63. data/examples/app/blog/public/css/screen.css +273 -0
  64. data/examples/app/blog/spec/blog.rb +87 -0
  65. data/examples/app/blog/start.rb +5 -0
  66. data/examples/app/blog/view/comment/form.nag +10 -0
  67. data/examples/app/blog/view/comment/show.nag +16 -0
  68. data/examples/app/blog/view/entry/edit.nag +14 -0
  69. data/examples/app/blog/view/entry/feed.atom.nag +8 -0
  70. data/examples/app/blog/view/entry/feed.rss.nag +7 -0
  71. data/examples/app/blog/view/entry/index.nag +7 -0
  72. data/examples/app/blog/view/entry/new.nag +13 -0
  73. data/examples/app/blog/view/entry/show.nag +36 -0
  74. data/examples/app/blog/view/feed.atom.nag +18 -0
  75. data/examples/app/blog/view/feed.rss.nag +25 -0
  76. data/examples/app/blog/view/index.nag +6 -0
  77. data/examples/app/blog/view/tag/index.nag +5 -0
  78. data/examples/app/chat/layout/default.xhtml +13 -0
  79. data/examples/app/chat/model/history.rb +38 -0
  80. data/examples/app/chat/model/message.rb +7 -0
  81. data/examples/app/chat/public/css/chat.css +9 -0
  82. data/examples/app/chat/public/js/chat.js +28 -0
  83. data/examples/app/chat/public/js/jquery.js +3436 -0
  84. data/examples/app/chat/start.rb +39 -0
  85. data/examples/app/chat/view/chat.xhtml +9 -0
  86. data/examples/app/chat/view/index.xhtml +7 -0
  87. data/examples/app/localization/locale/de.yaml +5 -0
  88. data/examples/app/localization/locale/en.yaml +5 -0
  89. data/examples/app/localization/locale/ja.yaml +5 -0
  90. data/examples/app/localization/start.rb +48 -0
  91. data/examples/app/sourceview/public/coderay.css +104 -0
  92. data/examples/app/sourceview/public/images/file.gif +0 -0
  93. data/examples/app/sourceview/public/images/folder.gif +0 -0
  94. data/examples/app/sourceview/public/images/tv-collapsable-last.gif +0 -0
  95. data/examples/app/sourceview/public/images/tv-collapsable.gif +0 -0
  96. data/examples/app/sourceview/public/images/tv-expandable-last.gif +0 -0
  97. data/examples/app/sourceview/public/images/tv-expandable.gif +0 -0
  98. data/examples/app/sourceview/public/images/tv-item-last.gif +0 -0
  99. data/examples/app/sourceview/public/images/tv-item.gif +0 -0
  100. data/examples/app/sourceview/public/jquery.js +11 -0
  101. data/examples/app/sourceview/public/jquery.treeview.css +48 -0
  102. data/examples/app/sourceview/public/jquery.treeview.js +223 -0
  103. data/examples/app/sourceview/public/sourceview.js +52 -0
  104. data/examples/app/sourceview/start.rb +79 -0
  105. data/examples/app/sourceview/view/index.haml +59 -0
  106. data/examples/app/todolist/controller/init.rb +10 -0
  107. data/examples/app/todolist/controller/task.rb +39 -0
  108. data/examples/app/todolist/layout/default.xhtml +14 -0
  109. data/examples/app/todolist/model/init.rb +14 -0
  110. data/examples/app/todolist/model/task.rb +39 -0
  111. data/examples/app/todolist/public/css/screen.css +63 -0
  112. data/examples/app/todolist/public/favicon.ico +0 -0
  113. data/examples/app/todolist/start.rb +11 -0
  114. data/examples/app/todolist/view/index.xhtml +29 -0
  115. data/examples/app/upload/start.rb +19 -0
  116. data/examples/app/upload/view/index.xhtml +25 -0
  117. data/examples/app/whywiki/spec/whywiki.rb +58 -0
  118. data/examples/app/whywiki/start.rb +46 -0
  119. data/examples/app/whywiki/template/edit.xhtml +14 -0
  120. data/examples/app/whywiki/template/show.xhtml +18 -0
  121. data/examples/app/wikore/spec/wikore.rb +109 -0
  122. data/examples/app/wikore/src/controller.rb +78 -0
  123. data/examples/app/wikore/src/model.rb +56 -0
  124. data/examples/app/wikore/start.rb +9 -0
  125. data/examples/app/wikore/view/index.xhtml +8 -0
  126. data/examples/app/wiktacular/README +2 -0
  127. data/examples/app/wiktacular/mkd/link/2007-07-20_19-45-51.mkd +1 -0
  128. data/examples/app/wiktacular/mkd/link/current.mkd +1 -0
  129. data/examples/app/wiktacular/mkd/main/2007-07-20_16-31-33.mkd +1 -0
  130. data/examples/app/wiktacular/mkd/main/2007-07-20_19-21-12.mkd +1 -0
  131. data/examples/app/wiktacular/mkd/main/2007-07-20_19-23-10.mkd +2 -0
  132. data/examples/app/wiktacular/mkd/main/2007-07-20_19-45-07.mkd +2 -0
  133. data/examples/app/wiktacular/mkd/main/current.mkd +2 -0
  134. data/examples/app/wiktacular/mkd/markdown/current.mkd +3 -0
  135. data/examples/app/wiktacular/mkd/testing/2007-07-20_16-43-46.mkd +2 -0
  136. data/examples/app/wiktacular/mkd/testing/2007-07-20_19-43-50.mkd +3 -0
  137. data/examples/app/wiktacular/mkd/testing/2007-07-21_18-46-01.mkd +11 -0
  138. data/examples/app/wiktacular/mkd/testing/2007-07-21_18-46-32.mkd +13 -0
  139. data/examples/app/wiktacular/mkd/testing/2007-07-21_18-47-08.mkd +17 -0
  140. data/examples/app/wiktacular/mkd/testing/2007-07-21_18-47-54.mkd +17 -0
  141. data/examples/app/wiktacular/mkd/testing/current.mkd +17 -0
  142. data/examples/app/wiktacular/public/favicon.ico +0 -0
  143. data/examples/app/wiktacular/public/screen.css +72 -0
  144. data/examples/app/wiktacular/spec/wiktacular.rb +157 -0
  145. data/examples/app/wiktacular/src/controller.rb +55 -0
  146. data/examples/app/wiktacular/src/model.rb +102 -0
  147. data/examples/app/wiktacular/start.rb +8 -0
  148. data/examples/app/wiktacular/template/edit.xhtml +6 -0
  149. data/examples/app/wiktacular/template/html_layout.xhtml +27 -0
  150. data/examples/app/wiktacular/template/index.xhtml +9 -0
  151. data/examples/app/wiktacular/template/new.xhtml +6 -0
  152. data/examples/basic/element.rb +47 -0
  153. data/examples/basic/gestalt.rb +26 -0
  154. data/examples/basic/hello.rb +14 -0
  155. data/examples/basic/layout.rb +28 -0
  156. data/examples/basic/linking.rb +29 -0
  157. data/examples/basic/partial.rb +26 -0
  158. data/examples/basic/simple.rb +52 -0
  159. data/examples/helpers/cache.rb +33 -0
  160. data/examples/helpers/form_with_sequel.rb +24 -0
  161. data/examples/helpers/httpdigest.rb +107 -0
  162. data/examples/helpers/identity.rb +18 -0
  163. data/examples/helpers/nitro_form.rb +23 -0
  164. data/examples/helpers/paginate.rb +71 -0
  165. data/examples/helpers/rest.rb +28 -0
  166. data/examples/helpers/simple_captcha.rb +29 -0
  167. data/examples/misc/css.rb +37 -0
  168. data/examples/misc/facebook.rb +159 -0
  169. data/examples/misc/memleak_detector.rb +37 -0
  170. data/examples/misc/nagoro_element.rb +43 -0
  171. data/examples/misc/ramaise.rb +132 -0
  172. data/examples/misc/rapp.rb +56 -0
  173. data/examples/misc/sequel_scaffolding.rb +34 -0
  174. data/examples/misc/serve_directory.rb +6 -0
  175. data/examples/templates/template_erubis.rb +52 -0
  176. data/examples/templates/template_ezamar.rb +51 -0
  177. data/examples/templates/template_haml.rb +49 -0
  178. data/examples/templates/template_liquid.rb +66 -0
  179. data/examples/templates/template_markaby.rb +57 -0
  180. data/examples/templates/template_nagoro.rb +50 -0
  181. data/examples/templates/template_redcloth.rb +58 -0
  182. data/examples/templates/template_remarkably.rb +54 -0
  183. data/examples/templates/template_tenjin.rb +52 -0
  184. data/examples/templates/view/external.haml +22 -0
  185. data/examples/templates/view/external.liquid +28 -0
  186. data/examples/templates/view/external.mab +30 -0
  187. data/examples/templates/view/external.nag +28 -0
  188. data/examples/templates/view/external.redcloth +19 -0
  189. data/examples/templates/view/external.rem +30 -0
  190. data/examples/templates/view/external.rhtml +28 -0
  191. data/examples/templates/view/external.tenjin +28 -0
  192. data/examples/templates/view/external.zmr +28 -0
  193. data/lib/proto/app.rb +14 -0
  194. data/lib/proto/config.ru +20 -0
  195. data/lib/proto/controller/init.rb +11 -0
  196. data/lib/proto/controller/main.rb +20 -0
  197. data/lib/proto/layout/default.xhtml +24 -0
  198. data/lib/proto/model/init.rb +4 -0
  199. data/lib/proto/public/.htaccess +24 -0
  200. data/lib/proto/public/css/screen.css +30 -0
  201. data/lib/proto/public/dispatch.fcgi +11 -0
  202. data/lib/proto/public/favicon.ico +0 -0
  203. data/lib/proto/public/js/jquery.js +4376 -0
  204. data/lib/proto/public/ramaze.png +0 -0
  205. data/lib/proto/spec/main.rb +20 -0
  206. data/lib/proto/start.rb +8 -0
  207. data/lib/proto/view/index.xhtml +41 -0
  208. data/lib/ramaze.rb +87 -0
  209. data/lib/ramaze/app.rb +124 -0
  210. data/lib/ramaze/cache.rb +19 -0
  211. data/lib/ramaze/cache/localmemcache.rb +56 -0
  212. data/lib/ramaze/cache/memcache.rb +124 -0
  213. data/lib/ramaze/cache/sequel.rb +82 -0
  214. data/lib/ramaze/contrib/addressable_route.rb +55 -0
  215. data/lib/ramaze/contrib/app_graph.rb +64 -0
  216. data/lib/ramaze/contrib/email.rb +88 -0
  217. data/lib/ramaze/contrib/facebook.rb +23 -0
  218. data/lib/ramaze/contrib/facebook/facebook.rb +171 -0
  219. data/lib/ramaze/contrib/gettext.rb +113 -0
  220. data/lib/ramaze/contrib/gettext/mo.rb +155 -0
  221. data/lib/ramaze/contrib/gettext/parser.rb +46 -0
  222. data/lib/ramaze/contrib/gettext/po.rb +109 -0
  223. data/lib/ramaze/contrib/gzip_filter.rb +1 -0
  224. data/lib/ramaze/contrib/maruku_uv.rb +59 -0
  225. data/lib/ramaze/contrib/profiling.rb +36 -0
  226. data/lib/ramaze/contrib/rest.rb +22 -0
  227. data/lib/ramaze/contrib/sequel/create_join.rb +26 -0
  228. data/lib/ramaze/contrib/sequel/form_field.rb +129 -0
  229. data/lib/ramaze/contrib/sequel/image.rb +196 -0
  230. data/lib/ramaze/contrib/sequel/relation.rb +98 -0
  231. data/lib/ramaze/controller.rb +104 -0
  232. data/lib/ramaze/controller/default.rb +12 -0
  233. data/lib/ramaze/current.rb +7 -0
  234. data/lib/ramaze/files.rb +24 -0
  235. data/lib/ramaze/gestalt.rb +132 -0
  236. data/lib/ramaze/helper.rb +13 -0
  237. data/lib/ramaze/helper/auth.rb +84 -0
  238. data/lib/ramaze/helper/bench.rb +41 -0
  239. data/lib/ramaze/helper/cache.rb +117 -0
  240. data/lib/ramaze/helper/disqus.rb +26 -0
  241. data/lib/ramaze/helper/flash.rb +62 -0
  242. data/lib/ramaze/helper/form.rb +127 -0
  243. data/lib/ramaze/helper/formatting.rb +189 -0
  244. data/lib/ramaze/helper/gestalt.rb +47 -0
  245. data/lib/ramaze/helper/gravatar.rb +79 -0
  246. data/lib/ramaze/helper/httpdigest.rb +97 -0
  247. data/lib/ramaze/helper/identity.rb +119 -0
  248. data/lib/ramaze/helper/layout.rb +97 -0
  249. data/lib/ramaze/helper/link.rb +56 -0
  250. data/lib/ramaze/helper/localize.rb +138 -0
  251. data/lib/ramaze/helper/markaby.rb +31 -0
  252. data/lib/ramaze/helper/maruku.rb +16 -0
  253. data/lib/ramaze/helper/nitroform.rb +14 -0
  254. data/lib/ramaze/helper/pager.rb +367 -0
  255. data/lib/ramaze/helper/paginate.rb +242 -0
  256. data/lib/ramaze/helper/partial.rb +100 -0
  257. data/lib/ramaze/helper/remarkably.rb +14 -0
  258. data/lib/ramaze/helper/request_accessor.rb +16 -0
  259. data/lib/ramaze/helper/sequel.rb +55 -0
  260. data/lib/ramaze/helper/sequel_form.rb +284 -0
  261. data/lib/ramaze/helper/simple_captcha.rb +61 -0
  262. data/lib/ramaze/helper/stack.rb +75 -0
  263. data/lib/ramaze/helper/tagz.rb +19 -0
  264. data/lib/ramaze/helper/thread.rb +17 -0
  265. data/lib/ramaze/helper/ultraviolet.rb +46 -0
  266. data/lib/ramaze/helper/user.rb +229 -0
  267. data/lib/ramaze/helper/xhtml.rb +34 -0
  268. data/lib/ramaze/log.rb +39 -0
  269. data/lib/ramaze/log/analogger.rb +39 -0
  270. data/lib/ramaze/log/growl.rb +38 -0
  271. data/lib/ramaze/log/hub.rb +41 -0
  272. data/lib/ramaze/log/informer.rb +129 -0
  273. data/lib/ramaze/log/knotify.rb +28 -0
  274. data/lib/ramaze/log/logger.rb +26 -0
  275. data/lib/ramaze/log/logging.rb +83 -0
  276. data/lib/ramaze/log/rotatinginformer.rb +168 -0
  277. data/lib/ramaze/log/syslog.rb +51 -0
  278. data/lib/ramaze/log/xosd.rb +92 -0
  279. data/lib/ramaze/middleware_compiler.rb +13 -0
  280. data/lib/ramaze/plugin.rb +69 -0
  281. data/lib/ramaze/reloader.rb +172 -0
  282. data/lib/ramaze/reloader/watch_inotify.rb +85 -0
  283. data/lib/ramaze/reloader/watch_stat.rb +58 -0
  284. data/lib/ramaze/request.rb +115 -0
  285. data/lib/ramaze/response.rb +36 -0
  286. data/lib/ramaze/setup.rb +123 -0
  287. data/lib/ramaze/snippets.rb +22 -0
  288. data/lib/ramaze/snippets/array/put_within.rb +44 -0
  289. data/lib/ramaze/snippets/binding/locals.rb +25 -0
  290. data/lib/ramaze/snippets/blankslate.rb +7 -0
  291. data/lib/ramaze/snippets/fiber.rb +63 -0
  292. data/lib/ramaze/snippets/kernel/pretty_inspect.rb +21 -0
  293. data/lib/ramaze/snippets/metaid.rb +17 -0
  294. data/lib/ramaze/snippets/numeric/filesize_format.rb +32 -0
  295. data/lib/ramaze/snippets/numeric/time.rb +63 -0
  296. data/lib/ramaze/snippets/object/__dir__.rb +29 -0
  297. data/lib/ramaze/snippets/object/instance_variable_defined.rb +19 -0
  298. data/lib/ramaze/snippets/object/pretty.rb +16 -0
  299. data/lib/ramaze/snippets/object/scope.rb +18 -0
  300. data/lib/ramaze/snippets/ordered_set.rb +51 -0
  301. data/lib/ramaze/snippets/proc/locals.rb +19 -0
  302. data/lib/ramaze/snippets/ramaze/acquire.rb +31 -0
  303. data/lib/ramaze/snippets/ramaze/deprecated.rb +23 -0
  304. data/lib/ramaze/snippets/ramaze/dictionary.rb +400 -0
  305. data/lib/ramaze/snippets/ramaze/fiber.rb +24 -0
  306. data/lib/ramaze/snippets/ramaze/struct.rb +45 -0
  307. data/lib/ramaze/snippets/string/camel_case.rb +21 -0
  308. data/lib/ramaze/snippets/string/color.rb +31 -0
  309. data/lib/ramaze/snippets/string/end_with.rb +20 -0
  310. data/lib/ramaze/snippets/string/esc.rb +34 -0
  311. data/lib/ramaze/snippets/string/ord.rb +21 -0
  312. data/lib/ramaze/snippets/string/snake_case.rb +21 -0
  313. data/lib/ramaze/snippets/string/start_with.rb +19 -0
  314. data/lib/ramaze/snippets/string/unindent.rb +28 -0
  315. data/lib/ramaze/snippets/thread/into.rb +18 -0
  316. data/lib/ramaze/spec.rb +33 -0
  317. data/lib/ramaze/spec/bacon.rb +34 -0
  318. data/lib/ramaze/spec/helper/bacon.rb +8 -0
  319. data/lib/ramaze/spec/helper/pretty_output.rb +82 -0
  320. data/lib/ramaze/spec/helper/snippets.rb +16 -0
  321. data/lib/ramaze/spec/helper/template_examples.rb +19 -0
  322. data/lib/ramaze/tool/bin.rb +340 -0
  323. data/lib/ramaze/tool/create.rb +48 -0
  324. data/lib/ramaze/tool/project_creator.rb +111 -0
  325. data/lib/ramaze/version.rb +3 -0
  326. data/lib/ramaze/view.rb +39 -0
  327. data/lib/ramaze/view/erubis.rb +23 -0
  328. data/lib/ramaze/view/ezamar.rb +23 -0
  329. data/lib/ramaze/view/gestalt.rb +14 -0
  330. data/lib/ramaze/view/haml.rb +16 -0
  331. data/lib/ramaze/view/liquid.rb +100 -0
  332. data/lib/ramaze/view/maruku.rb +15 -0
  333. data/lib/ramaze/view/nagoro.rb +44 -0
  334. data/lib/ramaze/view/nagoro/render_partial.rb +32 -0
  335. data/lib/ramaze/view/redcloth.rb +21 -0
  336. data/lib/ramaze/view/remarkably.rb +21 -0
  337. data/lib/ramaze/view/sass.rb +21 -0
  338. data/lib/ramaze/view/tagz.rb +63 -0
  339. data/lib/ramaze/view/tenjin.rb +32 -0
  340. data/lib/vendor/etag.rb +22 -0
  341. data/lib/vendor/route_exceptions.rb +42 -0
  342. data/ramaze.gemspec +85 -0
  343. data/spec/contrib/addressable_route.rb +32 -0
  344. data/spec/contrib/rest.rb +28 -0
  345. data/spec/examples/caching.rb +16 -0
  346. data/spec/examples/css.rb +14 -0
  347. data/spec/examples/element.rb +15 -0
  348. data/spec/examples/hello.rb +10 -0
  349. data/spec/examples/helpers/httpdigest.rb +64 -0
  350. data/spec/examples/linking.rb +17 -0
  351. data/spec/examples/simple.rb +40 -0
  352. data/spec/examples/templates/template_erubis.rb +10 -0
  353. data/spec/examples/templates/template_ezamar.rb +10 -0
  354. data/spec/examples/templates/template_haml.rb +10 -0
  355. data/spec/examples/templates/template_liquid.rb +10 -0
  356. data/spec/examples/templates/template_markaby.rb +11 -0
  357. data/spec/examples/templates/template_nagoro.rb +10 -0
  358. data/spec/examples/templates/template_redcloth.rb +10 -0
  359. data/spec/examples/templates/template_remarkably.rb +10 -0
  360. data/spec/examples/templates/template_tenjin.rb +10 -0
  361. data/spec/helper.rb +9 -0
  362. data/spec/ramaze/action/render.rb +21 -0
  363. data/spec/ramaze/action/view/bar.xhtml +1 -0
  364. data/spec/ramaze/action/view/instancevars/layout.xhtml +1 -0
  365. data/spec/ramaze/action/view/other_wrapper.erb +1 -0
  366. data/spec/ramaze/action/view/other_wrapper.xhtml +1 -0
  367. data/spec/ramaze/action/view/single_wrapper.xhtml +1 -0
  368. data/spec/ramaze/action/view/sub/sub_wrapper.erb +1 -0
  369. data/spec/ramaze/action/view/sub/sub_wrapper.xhtml +1 -0
  370. data/spec/ramaze/app.rb +47 -0
  371. data/spec/ramaze/bin/ramaze.rb +91 -0
  372. data/spec/ramaze/cache/localmemcache.rb +49 -0
  373. data/spec/ramaze/cache/memcache.rb +60 -0
  374. data/spec/ramaze/cache/sequel.rb +51 -0
  375. data/spec/ramaze/controller/actionless_templates.rb +36 -0
  376. data/spec/ramaze/controller/lonely_mapping.rb +16 -0
  377. data/spec/ramaze/controller/mapping.rb +43 -0
  378. data/spec/ramaze/controller/provide_inheritance.rb +47 -0
  379. data/spec/ramaze/controller/resolve.rb +30 -0
  380. data/spec/ramaze/controller/subclass.rb +36 -0
  381. data/spec/ramaze/controller/template_resolving.rb +77 -0
  382. data/spec/ramaze/controller/view/bar.xhtml +1 -0
  383. data/spec/ramaze/controller/view/base/another.xhtml +1 -0
  384. data/spec/ramaze/controller/view/greet.xhtml +1 -0
  385. data/spec/ramaze/controller/view/list.xhtml +1 -0
  386. data/spec/ramaze/controller/view/other/greet/other.xhtml +1 -0
  387. data/spec/ramaze/controller/view/other_wrapper.xhtml +1 -0
  388. data/spec/ramaze/dispatcher/directory.rb +69 -0
  389. data/spec/ramaze/dispatcher/file.rb +71 -0
  390. data/spec/ramaze/dispatcher/public/favicon.ico +0 -0
  391. data/spec/ramaze/dispatcher/public/file name.txt +1 -0
  392. data/spec/ramaze/dispatcher/public/test_download.css +141 -0
  393. data/spec/ramaze/error.rb +88 -0
  394. data/spec/ramaze/files.rb +29 -0
  395. data/spec/ramaze/files/public_1/plain.txt +1 -0
  396. data/spec/ramaze/files/public_2/rich.txt +1 -0
  397. data/spec/ramaze/gestalt.rb +135 -0
  398. data/spec/ramaze/helper/auth.rb +83 -0
  399. data/spec/ramaze/helper/bench.rb +18 -0
  400. data/spec/ramaze/helper/cache.rb +124 -0
  401. data/spec/ramaze/helper/flash.rb +41 -0
  402. data/spec/ramaze/helper/form.rb +356 -0
  403. data/spec/ramaze/helper/formatting.rb +111 -0
  404. data/spec/ramaze/helper/gestalt.rb +15 -0
  405. data/spec/ramaze/helper/gravatar.rb +40 -0
  406. data/spec/ramaze/helper/httpdigest.rb +144 -0
  407. data/spec/ramaze/helper/layout.rb +79 -0
  408. data/spec/ramaze/helper/layout/default.xhtml +5 -0
  409. data/spec/ramaze/helper/link.rb +70 -0
  410. data/spec/ramaze/helper/localize.rb +62 -0
  411. data/spec/ramaze/helper/maruku.rb +19 -0
  412. data/spec/ramaze/helper/pager.rb +96 -0
  413. data/spec/ramaze/helper/paginate.rb +68 -0
  414. data/spec/ramaze/helper/request_accessor.rb +19 -0
  415. data/spec/ramaze/helper/sequel_form.rb +91 -0
  416. data/spec/ramaze/helper/simple_captcha.rb +45 -0
  417. data/spec/ramaze/helper/stack.rb +86 -0
  418. data/spec/ramaze/helper/user.rb +72 -0
  419. data/spec/ramaze/helper/view/locals.xhtml +1 -0
  420. data/spec/ramaze/helper/view/loop.xhtml +4 -0
  421. data/spec/ramaze/helper/view/num.xhtml +1 -0
  422. data/spec/ramaze/helper/view/partial.xhtml +1 -0
  423. data/spec/ramaze/helper/view/recursive.xhtml +8 -0
  424. data/spec/ramaze/helper/view/recursive_local_ivars.xhtml +7 -0
  425. data/spec/ramaze/helper/view/recursive_locals.xhtml +7 -0
  426. data/spec/ramaze/helper/view/test_template.xhtml +1 -0
  427. data/spec/ramaze/helper/xhtml.rb +32 -0
  428. data/spec/ramaze/log/informer.rb +73 -0
  429. data/spec/ramaze/log/logging.rb +63 -0
  430. data/spec/ramaze/log/syslog.rb +73 -0
  431. data/spec/ramaze/params.rb +153 -0
  432. data/spec/ramaze/public/favicon.ico +0 -0
  433. data/spec/ramaze/public/ramaze.png +0 -0
  434. data/spec/ramaze/public/test_download.css +141 -0
  435. data/spec/ramaze/request.rb +61 -0
  436. data/spec/ramaze/rewrite/file.css +1 -0
  437. data/spec/ramaze/session/memcache.rb +66 -0
  438. data/spec/ramaze/struct.rb +47 -0
  439. data/spec/ramaze/template/ramaze/external.test +1 -0
  440. data/spec/ramaze/view.rb +36 -0
  441. data/spec/ramaze/view/erubis.rb +73 -0
  442. data/spec/ramaze/view/erubis/external.rhtml +8 -0
  443. data/spec/ramaze/view/erubis/sum.rhtml +1 -0
  444. data/spec/ramaze/view/ezamar.rb +73 -0
  445. data/spec/ramaze/view/ezamar/external.zmr +8 -0
  446. data/spec/ramaze/view/ezamar/sum.zmr +1 -0
  447. data/spec/ramaze/view/gestalt.rb +94 -0
  448. data/spec/ramaze/view/gestalt/external.ges +8 -0
  449. data/spec/ramaze/view/haml.rb +86 -0
  450. data/spec/ramaze/view/haml/external.haml +5 -0
  451. data/spec/ramaze/view/haml/sum.haml +2 -0
  452. data/spec/ramaze/view/liquid.rb +73 -0
  453. data/spec/ramaze/view/liquid/external.liquid +8 -0
  454. data/spec/ramaze/view/liquid/sum.liquid +1 -0
  455. data/spec/ramaze/view/nagoro.rb +73 -0
  456. data/spec/ramaze/view/nagoro/external.nag +8 -0
  457. data/spec/ramaze/view/nagoro/sum.nag +1 -0
  458. data/spec/ramaze/view/redcloth.rb +66 -0
  459. data/spec/ramaze/view/redcloth/external.redcloth +8 -0
  460. data/spec/ramaze/view/remarkably.rb +49 -0
  461. data/spec/ramaze/view/remarkably/external.rem +8 -0
  462. data/spec/ramaze/view/remarkably/sum.rem +1 -0
  463. data/spec/ramaze/view/sass.rb +73 -0
  464. data/spec/ramaze/view/sass/file.css.sass +5 -0
  465. data/spec/ramaze/view/tagz.rb +51 -0
  466. data/spec/ramaze/view/tagz/external.tagz +8 -0
  467. data/spec/ramaze/view/tagz/sum.tagz +1 -0
  468. data/spec/ramaze/view/tenjin.rb +57 -0
  469. data/spec/ramaze/view/tenjin/external.rbhtml +8 -0
  470. data/spec/ramaze/view/tenjin/sum.rbhtml +1 -0
  471. data/spec/snippets/array/put_within.rb +33 -0
  472. data/spec/snippets/binding/locals.rb +9 -0
  473. data/spec/snippets/numeric/filesize_format.rb +12 -0
  474. data/spec/snippets/numeric/time.rb +12 -0
  475. data/spec/snippets/object/__dir__.rb +14 -0
  476. data/spec/snippets/ordered_set.rb +63 -0
  477. data/spec/snippets/ramaze/acquire.rb +77 -0
  478. data/spec/snippets/ramaze/dictionary.rb +110 -0
  479. data/spec/snippets/ramaze/struct.rb +12 -0
  480. data/spec/snippets/string/camel_case.rb +25 -0
  481. data/spec/snippets/string/color.rb +11 -0
  482. data/spec/snippets/string/snake_case.rb +24 -0
  483. data/spec/snippets/string/unindent.rb +43 -0
  484. data/spec/snippets/thread/into.rb +9 -0
  485. data/tasks/authors.rake +30 -0
  486. data/tasks/bacon.rake +66 -0
  487. data/tasks/changelog.rake +20 -0
  488. data/tasks/copyright.rake +21 -0
  489. data/tasks/gem.rake +22 -0
  490. data/tasks/gem_setup.rake +99 -0
  491. data/tasks/git.rake +46 -0
  492. data/tasks/grancher.rake +12 -0
  493. data/tasks/jquery.rake +15 -0
  494. data/tasks/manifest.rake +4 -0
  495. data/tasks/metric_changes.rake +24 -0
  496. data/tasks/rcov.rake +23 -0
  497. data/tasks/release.rake +54 -0
  498. data/tasks/reversion.rake +8 -0
  499. data/tasks/setup.rake +6 -0
  500. data/tasks/todo.rake +27 -0
  501. data/tasks/traits.rake +21 -0
  502. data/tasks/yard.rake +4 -0
  503. metadata +720 -0
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'ramaze'
3
+
4
+ class MainController < Ramaze::Controller
5
+ helper :identity
6
+
7
+ def index
8
+ if session[:openid_identity]
9
+ %{<h1>#{flash[:success]}</h1>
10
+ <p>You are logged in as #{session[:openid_identity]}</p>}
11
+ else
12
+ openid_login_form
13
+ end
14
+ end
15
+ end
16
+
17
+ Ramaze::Log.loggers.each{|l| l.log_levels << :dev }
18
+ Ramaze.start :adapter => :mongrel
@@ -0,0 +1,23 @@
1
+ require 'rubygems'
2
+ require 'ramaze'
3
+
4
+ gem 'facets', '=1.4.5'
5
+ require '/home/manveru/prog/projects/nitroproject/glycerin'
6
+ require 'nitro'
7
+ require 'og'
8
+
9
+ class Article
10
+ attr_accessor :title, String
11
+ end
12
+
13
+ Og.setup :store => :sqlite, :destroy => true
14
+
15
+ class MainController < Ramaze::Controller
16
+ helper :nitroform
17
+
18
+ def index
19
+ form(Article.new).to_s
20
+ end
21
+ end
22
+
23
+ Ramaze.start
@@ -0,0 +1,71 @@
1
+ require 'rubygems'
2
+ require 'ramaze'
3
+
4
+ USERS = DATA.read.split("\n")
5
+
6
+ class MainController < Ramaze::Controller
7
+ helper :paginate
8
+
9
+ trait :paginate => {
10
+ :limit => 6,
11
+ :var => 'user_page',
12
+ }
13
+
14
+ def index
15
+ @pager = paginate(USERS)
16
+ %q~
17
+ <html>
18
+
19
+ <head><title>Users</title></head>
20
+ <body>
21
+ #{@pager.navigation if @pager.needed?}
22
+ <pre>
23
+ <?r @pager.each do |user| ?>
24
+ #{user}
25
+ <?r end ?>
26
+ </pre>
27
+ #{@pager.navigation if @pager.needed?}
28
+ </body>
29
+ </html>
30
+ ~
31
+ end
32
+ end
33
+
34
+ Ramaze.start
35
+
36
+ __END__
37
+ Michael Fellinger 1868 [ 77.13% ]
38
+ Aman Gupta 211 [ 8.71% ]
39
+ Jonathan Buch 89 [ 3.67% ]
40
+ Gabriele Renzi 49 [ 2.02% ]
41
+ Ara T. Howard 44 [ 1.82% ]
42
+ Clive Crous 37 [ 1.53% ]
43
+ Keita Yamaguchi 27 [ 1.11% ]
44
+ Ryan Grove 17 [ 0.70% ]
45
+ Pistos 16 [ 0.66% ]
46
+ Wang, Jinjing 11 [ 0.45% ]
47
+ Colin Shea 9 [ 0.37% ]
48
+ Sam Carr 6 [ 0.25% ]
49
+ Stephan Maka 5 [ 0.21% ]
50
+ samcarr 4 [ 0.17% ]
51
+ raggi 3 [ 0.12% ]
52
+ Clinton R. Nixon 3 [ 0.12% ]
53
+ Chris Duncan 3 [ 0.12% ]
54
+ Richard Outten 2 [ 0.08% ]
55
+ Andy Smith 2 [ 0.08% ]
56
+ skaar 1 [ 0.04% ]
57
+ Yasushi Abe 1 [ 0.04% ]
58
+ Thomas Leitner 1 [ 0.04% ]
59
+ Rob Lievaart 1 [ 0.04% ]
60
+ Riku Raisaenen 1 [ 0.04% ]
61
+ Matt Rubens 1 [ 0.04% ]
62
+ Martin Hilbig 1 [ 0.04% ]
63
+ Leo Borisenko 1 [ 0.04% ]
64
+ Lars Olsson 1 [ 0.04% ]
65
+ Jeremy Evans 1 [ 0.04% ]
66
+ Jean-Francois Chevrette 1 [ 0.04% ]
67
+ James Tucker 1 [ 0.04% ]
68
+ Fabian Buch 1 [ 0.04% ]
69
+ Christian Neukirchen 1 [ 0.04% ]
70
+ Carlo Zottmann 1 [ 0.04% ]
71
+ Andrew Farmer 1 [ 0.04% ]
@@ -0,0 +1,28 @@
1
+ require 'rubygems'
2
+ require 'ramaze'
3
+
4
+ class MainController < Ramaze::Controller
5
+ helper :rest
6
+
7
+ on_get
8
+ def index
9
+ 'Hello, World'
10
+ end
11
+
12
+ on_post
13
+ def create
14
+ p request.params
15
+ end
16
+
17
+ on_delete
18
+ def delete
19
+ 'Deleted stuff'
20
+ end
21
+
22
+ on_put
23
+ def insert
24
+ 'Inserted stuff'
25
+ end
26
+ end
27
+
28
+ Ramaze.start
@@ -0,0 +1,29 @@
1
+ require 'rubygems'
2
+ require 'ramaze'
3
+
4
+ class MainController < Ramaze::Controller
5
+ helper :simple_captcha
6
+
7
+ def index
8
+ %|
9
+ <form action="/answer" method="POST">
10
+ <fieldset>
11
+ <legend>#{simple_captcha}</legend>
12
+ <input type="text" name="answer" />
13
+ <input type="submit" />
14
+ </fieldset>
15
+ </form>
16
+ |
17
+ end
18
+
19
+ def answer
20
+ redirect_referrer unless request.post?
21
+
22
+ answer = request[:answer]
23
+ is = check_captcha(answer) ? 'Correct' : 'Wrong'
24
+
25
+ "<h1>#{is}</h1><a href='/'>Back</a>"
26
+ end
27
+ end
28
+
29
+ Ramaze.start
@@ -0,0 +1,37 @@
1
+ require 'rubygems'
2
+ require 'ramaze'
3
+
4
+ # delete cached css after inline template is changed
5
+ module Ramaze::SourceReloadHooks
6
+ module_function
7
+ def after_safe_load file
8
+ Ramaze::Cache.actions.delete '/css/style.css' if file == __FILE__
9
+ end
10
+ end
11
+
12
+ class CSSController < Ramaze::Controller
13
+ engine :Sass
14
+
15
+ helper :aspect
16
+ before_all do
17
+ response['Content-Type'] = 'text/css'
18
+ nil
19
+ end
20
+
21
+ define_method('style.css') do
22
+ %(
23
+ body
24
+ font:
25
+ family: sans-serif
26
+ size: 11px
27
+ margin: 0.5em
28
+ padding: 1em
29
+ )
30
+ end
31
+
32
+ helper :cache
33
+ cache 'style.css'
34
+ end
35
+
36
+ # http://localhost:81/css/style.css
37
+ Ramaze.start :adapter => :mongrel, :port => 81
@@ -0,0 +1,159 @@
1
+ require 'rubygems'
2
+ require 'ramaze'
3
+
4
+ Ramaze.contrib :facebook
5
+
6
+ # Settings for your facebook app
7
+ # SERVER: where this ramaze app is running
8
+ # URL: the apps.facebook.com url to your app
9
+ # KEY: API key for your app
10
+ # SECRET: Secret key for your app
11
+ # ID: Your app's ID (from the about page url)
12
+ # ADMINS: uids of facebook users that are admins
13
+ # SESSION: an admin's session key
14
+ #
15
+ # These vars are used by the Facebook Helper are are also useful
16
+ # within your controller and templates. For example,
17
+ # <a href="#{Facebook::URL}/search">click here to search</a>
18
+ #
19
+ # In addition, set the following options on your app's 'Edit Settings' page:
20
+ # Callback URL: http://myapp.domain.com:7000/ (trailing slash required)
21
+ # Canvas Page URL: ramazing
22
+ # Can your app be added on Facebook: Yes
23
+ # Who can add your app: Users
24
+ # Post-Add URL: http://apps.facebook.com/ramazing/install
25
+ # Post-Remove URL: http://myapp.domain.com:7000/uninstall
26
+ # Side Nav URL: http://apps.facebook.com/ramazing
27
+
28
+ module Facebook
29
+ SERVER = 'http://myapp.domain.com:7000'
30
+ URL = 'http://apps.facebook.com/ramazing'
31
+ KEY = 'b32f58685c06a7f8107bc7915354bd89'
32
+ SECRET = 'e0f9........................9429'
33
+ ID = 2502696782
34
+ ADMINS = [ 15601088 ]
35
+ SESSION = ''
36
+ end unless defined? Facebook::ID
37
+
38
+ # The facebook helper (included your controller using +helper :facebook+)
39
+ # defines a +facebook+ object, which is also aliased to +fb+.
40
+ #
41
+ # POST parameters sent by the facebook servers can be accessed via fb.params
42
+ # and also fb[]. Wherever possible, values will be converted to native ruby
43
+ # types (Time objects, true/false, arrays)
44
+ #
45
+ # fb.params = { :api_key => "b32f58685c06a7f8107bc7915354bd89",
46
+ # :added => true,
47
+ # :profile_update_time => Mon Oct 15 15:07:28 -0400 2007,
48
+ # :friends => [1,2,3],
49
+ # :session_key => "f7bed6aefaa5467b3a6344f2-15601088",
50
+ # :time => Sat Dec 01 02:02:50 -0500 2007,
51
+ # :user => 15601088,
52
+ # :position_fix => false,
53
+ # :expires => 0,
54
+ # :in_canvas => true }
55
+ #
56
+ # fb[:user] == facebook[:user] == facebook.params[:user]
57
+ #
58
+ # The facebook object can also be used to make API calls. Native ruby types (true, false, strings, hashes and arrays)
59
+ # will be returned. If facebook returns an array with only one element, that element will be returned instead.
60
+ #
61
+ # facebook.auth.createToken # => "41b5dc65792ba4bf405faf857a17267c"
62
+ # fb.users.getInfo :uids => 15601088, :fields => [:name] # => {"name"=>"Aman Gupta", "uid"=>15601088}
63
+ # fb.profile.setFBML :uid => 15601088, :markup => 'Hi!' # => true
64
+ #
65
+ # API calls will use the current viewing users' session key (from fb[:session_key]) if present,
66
+ # or Facebook::SESSION, which should be set to one of the admin's keys. You can also provide another
67
+ # session key yourself from your users database:
68
+ #
69
+ # fb.feed.publishActionOfUser :session_key => "the user's session key", :title => 'is using Ramaze!'
70
+ #
71
+ # Finally, you can use the following facebook object methods:
72
+ #
73
+ # facebook.valid? # verify fb_sig, if invalid fb.params will return {}
74
+ # facebook.redirect '/url' # redirect to /url using <fb:redirect/>
75
+ # facebook.addurl # return the add url for the current app
76
+ # facebook.addurl '/url' # add url for app that redirects to /url after successful install
77
+
78
+ class MainController < Ramaze::Controller
79
+ helper :formatting
80
+ helper :facebook
81
+
82
+ before {
83
+ # show some information about current user in logs
84
+ # INFO Facebook {:user=>15601088, :in_canvas=>true, :added=>true}
85
+ if fb[:user]
86
+ # use facebook session_key as session cookie
87
+ session.session_id = fb[:session_key] if fb[:session_key]
88
+
89
+ Ramaze::Log.info "Facebook " + fb.params.reject{|k,v| k.to_s !~ /^(in|is|user|added|locale|request)/}.inspect
90
+ else
91
+ # require_add: redirect to add url
92
+ # fb.redirect fb.addurl
93
+ end
94
+
95
+ # suggest setting SESSION key if one is not set, and current user is an admin
96
+ # INFO Set a default session key: SESSION = 'b3638446fa02466210c49f42-15601088'
97
+ if Facebook::SESSION.empty? and Facebook::ADMINS.include? fb[:user]
98
+ Ramaze::Log.info "Set a default session key: SESSION = '#{fb[:session_key]}'"
99
+ end
100
+ }
101
+
102
+ def install
103
+ Ramaze::Log.info "#{fb[:user]} installed app" if request['installed'] == '1'
104
+ facebook.profile.setFBML :uid => fb[:user], :markup => "Isn't this a great surprise!?"
105
+ facebook.redirect request['next'] || '/'
106
+ end
107
+
108
+ def uninstall
109
+ Ramaze::Log.info "#{fb[:user]} uninstalled app"
110
+ end
111
+
112
+ def main
113
+ fb.redirect '/index' unless fb[:user]
114
+ @userinfo = facebook.users.getInfo :uids => facebook[:user], :fields => [:name, :pic_square]
115
+ %q(
116
+ Hey there #{@userinfo['name']}. You look like this: <img src="#{@userinfo['pic_square']}"/>. <br/>
117
+ You updated your profile #{time_diff fb[:profile_update_time]} ago. You have #{fb[:friends].size} friends. <br/>
118
+ <p>
119
+ <?r unless fb[:added] ?>
120
+ I know you already logged in, but you should really <a href="#{facebook.addurl}">add this app</a>.
121
+ You'll get a real nifty surprise on your profile if you do.
122
+ <?r else ?>
123
+ Now that you added this app, I can access your profile and news feed. <br/>
124
+ Did you see the cool surprise I left on <a href="http://www.facebook.com/profile.php?id=#{fb[:user]}">your profile</a>?
125
+ <?r end ?>
126
+ </p>
127
+ )
128
+ end
129
+
130
+ def index
131
+ facebook.redirect '/main' if facebook[:user]
132
+ %q(
133
+ This is a great app. Here are some reasons you'll like it:
134
+ <ul>
135
+ <li>It's on facebook</li>
136
+ <li>It's written in Ramaze</li>
137
+ </ul>
138
+ <a href="#{Facebook::URL}/main" requirelogin="true">Login</a> to start using it. Or, to
139
+ get the full benefit, you should <a href="#{facebook.addurl '/main'}">add it</a> so we have
140
+ access to your newsfeed and can add a box to your profile.
141
+ )
142
+ end
143
+
144
+ def layout
145
+ %q(
146
+ <fb:dashboard>
147
+ <?r unless fb[:added] ?>
148
+ <fb:create-button href="#{facebook.addurl '/main'}">Add App</fb:create-button>
149
+ <?r end ?>
150
+ </fb:dashboard>
151
+ <div id="content" style="margin: 0 2em 2em 2em">
152
+ #@content
153
+ </div>
154
+ )
155
+ end
156
+ layout :layout
157
+ end
158
+
159
+ Ramaze.start :adapter => :mongrel
@@ -0,0 +1,37 @@
1
+ # Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
2
+ # All files in this distribution are subject to the terms of the Ruby license.
3
+
4
+ require 'ramaze'
5
+
6
+ # This little app helps me track down memory-leaks in Ramaze.
7
+
8
+ class MainController < Ramaze::Controller
9
+ def index
10
+ "Hello, World!"
11
+ end
12
+ end
13
+
14
+ def memcheck(top = 10, klass = Object)
15
+ puts
16
+ os = Hash.new(0)
17
+ ObjectSpace.each_object(klass){|o| yield(os, o) }
18
+ pp sorted = os.sort_by{|k,v| -v }.first(top)
19
+ puts
20
+
21
+ return sorted
22
+ rescue Exception => ex
23
+ puts ex
24
+ ensure
25
+ GC.start
26
+ end
27
+
28
+ Thread.new do
29
+ loop do
30
+ # memcheck(10, String){|os, o| os[o] += 1 }
31
+ memcheck{|os, o| os[o.class] += 1 }
32
+ sleep 5
33
+ end
34
+ end
35
+
36
+ Ramaze::Log.loggers.clear
37
+ Ramaze.start :adapter => :webrick, :mode => :live
@@ -0,0 +1,43 @@
1
+ require 'rubygems'
2
+ require 'ramaze'
3
+
4
+ class MainController < Ramaze::Controller
5
+ map '/'
6
+
7
+ engine :Nagoro
8
+
9
+ def index
10
+ %{
11
+ <Page title="Test">
12
+ <SideBar />
13
+ <p>
14
+ Hello, World!
15
+ </p>
16
+ </Page>
17
+ }
18
+ end
19
+ end
20
+
21
+ Nagoro.element 'Page' do |content, attrs|
22
+ %{
23
+ <html>
24
+ <head>
25
+ <title>examples/element</title>
26
+ </head>
27
+ <body>
28
+ <h1>#{attrs['title']}</h1>
29
+ #{content}
30
+ </body>
31
+ </html>
32
+ }
33
+ end
34
+
35
+ Nagoro.element 'SideBar' do |content, attrs|
36
+ %{
37
+ <div class="sidebar">
38
+ <a href="http://something.com">something</a>
39
+ </div>
40
+ }
41
+ end
42
+
43
+ Ramaze.start