zen 0.1a

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 (338) hide show
  1. data/LICENSE +19 -0
  2. data/MANIFEST +337 -0
  3. data/README.textile +42 -0
  4. data/Rakefile +6 -0
  5. data/bin/zen +9 -0
  6. data/doc/Categories.html +93 -0
  7. data/doc/Categories/Controllers.html +93 -0
  8. data/doc/Categories/Controllers/Categories.html +995 -0
  9. data/doc/Categories/Controllers/CategoryGroups.html +878 -0
  10. data/doc/Categories/Models.html +97 -0
  11. data/doc/Categories/Models/Category.html +269 -0
  12. data/doc/Categories/Models/CategoryGroup.html +231 -0
  13. data/doc/Comments.html +93 -0
  14. data/doc/Comments/Controllers.html +93 -0
  15. data/doc/Comments/Controllers/Comments.html +797 -0
  16. data/doc/Comments/Controllers/CommentsForm.html +487 -0
  17. data/doc/Comments/Liquid.html +93 -0
  18. data/doc/Comments/Liquid/CommentForm.html +522 -0
  19. data/doc/Comments/Liquid/Comments.html +543 -0
  20. data/doc/Comments/Models.html +95 -0
  21. data/doc/Comments/Models/Comment.html +260 -0
  22. data/doc/CustomFields.html +93 -0
  23. data/doc/CustomFields/Controllers.html +93 -0
  24. data/doc/CustomFields/Controllers/CustomFieldGroups.html +902 -0
  25. data/doc/CustomFields/Controllers/CustomFields.html +974 -0
  26. data/doc/CustomFields/Models.html +97 -0
  27. data/doc/CustomFields/Models/CustomField.html +272 -0
  28. data/doc/CustomFields/Models/CustomFieldGroup.html +259 -0
  29. data/doc/CustomFields/Models/CustomFieldValue.html +154 -0
  30. data/doc/Ramaze.html +93 -0
  31. data/doc/Ramaze/Helper.html +93 -0
  32. data/doc/Ramaze/Helper/ACL.html +531 -0
  33. data/doc/Ramaze/Helper/Asset.html +617 -0
  34. data/doc/Ramaze/Helper/Breadcrumb.html +411 -0
  35. data/doc/Ramaze/Helper/Common.html +738 -0
  36. data/doc/Sections.html +93 -0
  37. data/doc/Sections/Controllers.html +93 -0
  38. data/doc/Sections/Controllers/SectionEntries.html +1100 -0
  39. data/doc/Sections/Controllers/Sections.html +953 -0
  40. data/doc/Sections/Liquid.html +93 -0
  41. data/doc/Sections/Liquid/SectionEntries.html +674 -0
  42. data/doc/Sections/Liquid/Sections.html +494 -0
  43. data/doc/Sections/Models.html +97 -0
  44. data/doc/Sections/Models/Section.html +272 -0
  45. data/doc/Sections/Models/SectionEntry.html +264 -0
  46. data/doc/Sequel.html +91 -0
  47. data/doc/Sequel/Model.html +243 -0
  48. data/doc/Settings.html +93 -0
  49. data/doc/Settings/Controllers.html +91 -0
  50. data/doc/Settings/Controllers/Settings.html +565 -0
  51. data/doc/Settings/Liquid.html +91 -0
  52. data/doc/Settings/Liquid/Setting.html +426 -0
  53. data/doc/Settings/Models.html +95 -0
  54. data/doc/Settings/Models/Setting.html +293 -0
  55. data/doc/Users.html +93 -0
  56. data/doc/Users/Controllers.html +93 -0
  57. data/doc/Users/Controllers/AccessRules.html +904 -0
  58. data/doc/Users/Controllers/UserGroups.html +879 -0
  59. data/doc/Users/Controllers/Users.html +1124 -0
  60. data/doc/Users/Liquid.html +93 -0
  61. data/doc/Users/Liquid/User.html +480 -0
  62. data/doc/Users/Liquid/Users.html +495 -0
  63. data/doc/Users/Models.html +97 -0
  64. data/doc/Users/Models/AccessRule.html +257 -0
  65. data/doc/Users/Models/User.html +649 -0
  66. data/doc/Users/Models/UserGroup.html +267 -0
  67. data/doc/Zen.html +391 -0
  68. data/doc/Zen/Bin.html +113 -0
  69. data/doc/Zen/Bin/Base.html +727 -0
  70. data/doc/Zen/Controllers.html +115 -0
  71. data/doc/Zen/Controllers/AdminController.html +298 -0
  72. data/doc/Zen/Controllers/BaseController.html +272 -0
  73. data/doc/Zen/Controllers/FrontendController.html +164 -0
  74. data/doc/Zen/Controllers/MainController.html +421 -0
  75. data/doc/Zen/Database.html +498 -0
  76. data/doc/Zen/Language.html +660 -0
  77. data/doc/Zen/Liquid.html +117 -0
  78. data/doc/Zen/Liquid/ControllerBehavior.html +448 -0
  79. data/doc/Zen/Liquid/General.html +444 -0
  80. data/doc/Zen/Liquid/Redirect.html +435 -0
  81. data/doc/Zen/Liquid/Strip.html +447 -0
  82. data/doc/Zen/Logger.html +393 -0
  83. data/doc/Zen/Package.html +909 -0
  84. data/doc/_index.html +724 -0
  85. data/doc/class_list.html +36 -0
  86. data/doc/css/common.css +1 -0
  87. data/doc/css/full_list.css +53 -0
  88. data/doc/css/style.css +310 -0
  89. data/doc/file.README.html +86 -0
  90. data/doc/file_list.html +38 -0
  91. data/doc/frames.html +13 -0
  92. data/doc/index.html +86 -0
  93. data/doc/js/app.js +203 -0
  94. data/doc/js/full_list.js +149 -0
  95. data/doc/js/jquery.js +154 -0
  96. data/doc/method_list.html +1139 -0
  97. data/doc/top-level-namespace.html +88 -0
  98. data/lib/zen.rb +77 -0
  99. data/lib/zen/base/database.rb +105 -0
  100. data/lib/zen/base/language.rb +132 -0
  101. data/lib/zen/base/logger.rb +54 -0
  102. data/lib/zen/base/package.rb +233 -0
  103. data/lib/zen/base/version.rb +11 -0
  104. data/lib/zen/bin/zen_binary.rb +173 -0
  105. data/lib/zen/controller/admin_controller.rb +60 -0
  106. data/lib/zen/controller/base_controller.rb +39 -0
  107. data/lib/zen/controller/frontend_controller.rb +16 -0
  108. data/lib/zen/controller/main_controller.rb +93 -0
  109. data/lib/zen/helper/acl.rb +124 -0
  110. data/lib/zen/helper/asset.rb +104 -0
  111. data/lib/zen/helper/breadcrumb.rb +71 -0
  112. data/lib/zen/helper/common.rb +157 -0
  113. data/lib/zen/language/en/zen_general.rb +21 -0
  114. data/lib/zen/language/en/zen_models.rb +39 -0
  115. data/lib/zen/layout/admin.xhtml +72 -0
  116. data/lib/zen/layout/login.xhtml +44 -0
  117. data/lib/zen/liquid/controller_behavior.rb +55 -0
  118. data/lib/zen/liquid/general.rb +69 -0
  119. data/lib/zen/liquid/redirect.rb +47 -0
  120. data/lib/zen/liquid/strip.rb +58 -0
  121. data/lib/zen/model/methods.rb +26 -0
  122. data/lib/zen/model/settings.rb +27 -0
  123. data/lib/zen/packages/categories/LICENSE +19 -0
  124. data/lib/zen/packages/categories/README.textile +0 -0
  125. data/lib/zen/packages/categories/lib/categories.rb +24 -0
  126. data/lib/zen/packages/categories/lib/categories/controller/categories.rb +202 -0
  127. data/lib/zen/packages/categories/lib/categories/controller/category_groups.rb +173 -0
  128. data/lib/zen/packages/categories/lib/categories/language/en/categories.rb +38 -0
  129. data/lib/zen/packages/categories/lib/categories/language/en/category_groups.rb +37 -0
  130. data/lib/zen/packages/categories/lib/categories/model/category.rb +42 -0
  131. data/lib/zen/packages/categories/lib/categories/model/category_group.rb +29 -0
  132. data/lib/zen/packages/categories/lib/categories/view/admin/categories/edit.xhtml +7 -0
  133. data/lib/zen/packages/categories/lib/categories/view/admin/categories/form.xhtml +36 -0
  134. data/lib/zen/packages/categories/lib/categories/view/admin/categories/index.xhtml +70 -0
  135. data/lib/zen/packages/categories/lib/categories/view/admin/categories/new.xhtml +7 -0
  136. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/edit.xhtml +7 -0
  137. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/form.xhtml +18 -0
  138. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/index.xhtml +72 -0
  139. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/new.xhtml +7 -0
  140. data/lib/zen/packages/categories/migrations/.gitkeep +0 -0
  141. data/lib/zen/packages/categories/migrations/1295282303_create_schema.rb +40 -0
  142. data/lib/zen/packages/comments/LICENSE +19 -0
  143. data/lib/zen/packages/comments/README.textile +0 -0
  144. data/lib/zen/packages/comments/lib/comments.rb +26 -0
  145. data/lib/zen/packages/comments/lib/comments/controller/comments.rb +157 -0
  146. data/lib/zen/packages/comments/lib/comments/controller/comments_form.rb +135 -0
  147. data/lib/zen/packages/comments/lib/comments/language/en/comments.rb +52 -0
  148. data/lib/zen/packages/comments/lib/comments/liquid/comment_form.rb +97 -0
  149. data/lib/zen/packages/comments/lib/comments/liquid/comments.rb +115 -0
  150. data/lib/zen/packages/comments/lib/comments/model/comment.rb +34 -0
  151. data/lib/zen/packages/comments/lib/comments/view/admin/comments/edit.xhtml +7 -0
  152. data/lib/zen/packages/comments/lib/comments/view/admin/comments/form.xhtml +31 -0
  153. data/lib/zen/packages/comments/lib/comments/view/admin/comments/index.xhtml +74 -0
  154. data/lib/zen/packages/comments/migrations/.gitkeep +0 -0
  155. data/lib/zen/packages/comments/migrations/1295282202_create_schema.rb +24 -0
  156. data/lib/zen/packages/comments/migrations/1296949631_add_defensio_signature.rb +11 -0
  157. data/lib/zen/packages/custom_fields/LICENSE +19 -0
  158. data/lib/zen/packages/custom_fields/README.textile +0 -0
  159. data/lib/zen/packages/custom_fields/lib/custom_fields.rb +24 -0
  160. data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +179 -0
  161. data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_fields.rb +194 -0
  162. data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +45 -0
  163. data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_fields.rb +64 -0
  164. data/lib/zen/packages/custom_fields/lib/custom_fields/model/custom_field.rb +41 -0
  165. data/lib/zen/packages/custom_fields/lib/custom_fields/model/custom_field_group.rb +32 -0
  166. data/lib/zen/packages/custom_fields/lib/custom_fields/model/custom_field_value.rb +20 -0
  167. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/edit.xhtml +7 -0
  168. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/form.xhtml +18 -0
  169. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/index.xhtml +88 -0
  170. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/new.xhtml +7 -0
  171. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/edit.xhtml +7 -0
  172. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/form.xhtml +50 -0
  173. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/index.xhtml +75 -0
  174. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/new.xhtml +7 -0
  175. data/lib/zen/packages/custom_fields/migrations/.gitkeep +0 -0
  176. data/lib/zen/packages/custom_fields/migrations/1295255665_create_schema.rb +53 -0
  177. data/lib/zen/packages/sections/LICENSE +19 -0
  178. data/lib/zen/packages/sections/README.textile +43 -0
  179. data/lib/zen/packages/sections/lib/sections.rb +33 -0
  180. data/lib/zen/packages/sections/lib/sections/controller/section_entries.rb +251 -0
  181. data/lib/zen/packages/sections/lib/sections/controller/sections.rb +205 -0
  182. data/lib/zen/packages/sections/lib/sections/language/en/section_entries.rb +58 -0
  183. data/lib/zen/packages/sections/lib/sections/language/en/sections.rb +63 -0
  184. data/lib/zen/packages/sections/lib/sections/liquid/section_entries.rb +209 -0
  185. data/lib/zen/packages/sections/lib/sections/liquid/sections.rb +76 -0
  186. data/lib/zen/packages/sections/lib/sections/model/section.rb +43 -0
  187. data/lib/zen/packages/sections/lib/sections/model/section_entry.rb +43 -0
  188. data/lib/zen/packages/sections/lib/sections/view/admin/edit.xhtml +7 -0
  189. data/lib/zen/packages/sections/lib/sections/view/admin/form.xhtml +54 -0
  190. data/lib/zen/packages/sections/lib/sections/view/admin/index.xhtml +77 -0
  191. data/lib/zen/packages/sections/lib/sections/view/admin/new.xhtml +7 -0
  192. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/edit.xhtml +7 -0
  193. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/form.xhtml +147 -0
  194. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/index.xhtml +74 -0
  195. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/new.xhtml +7 -0
  196. data/lib/zen/packages/sections/migrations/.gitkeep +0 -0
  197. data/lib/zen/packages/sections/migrations/1295251836_create_schema.rb +35 -0
  198. data/lib/zen/packages/sections/migrations/1296335671_userdata_section_entries.rb +18 -0
  199. data/lib/zen/packages/sections/migrations/1296936110_drop_comment_antispam.rb +11 -0
  200. data/lib/zen/packages/settings/LICENSE +0 -0
  201. data/lib/zen/packages/settings/README.textile +0 -0
  202. data/lib/zen/packages/settings/lib/settings.rb +22 -0
  203. data/lib/zen/packages/settings/lib/settings/controller/settings.rb +113 -0
  204. data/lib/zen/packages/settings/lib/settings/language/en/settings.rb +56 -0
  205. data/lib/zen/packages/settings/lib/settings/liquid/setting.rb +56 -0
  206. data/lib/zen/packages/settings/lib/settings/model/setting.rb +38 -0
  207. data/lib/zen/packages/settings/lib/settings/view/admin/settings/index.xhtml +79 -0
  208. data/lib/zen/packages/settings/migrations/.gitkeep +0 -0
  209. data/lib/zen/packages/settings/migrations/1295597111_create_schema.rb +31 -0
  210. data/lib/zen/packages/users/LICENSE +19 -0
  211. data/lib/zen/packages/users/README.textile +0 -0
  212. data/lib/zen/packages/users/lib/users.rb +35 -0
  213. data/lib/zen/packages/users/lib/users/controller/access_rules.rb +186 -0
  214. data/lib/zen/packages/users/lib/users/controller/user_groups.rb +171 -0
  215. data/lib/zen/packages/users/lib/users/controller/users.rb +240 -0
  216. data/lib/zen/packages/users/lib/users/language/en/access_rules.rb +49 -0
  217. data/lib/zen/packages/users/lib/users/language/en/user_groups.rb +42 -0
  218. data/lib/zen/packages/users/lib/users/language/en/users.rb +63 -0
  219. data/lib/zen/packages/users/lib/users/liquid/user.rb +75 -0
  220. data/lib/zen/packages/users/lib/users/liquid/users.rb +80 -0
  221. data/lib/zen/packages/users/lib/users/model/access_rule.rb +29 -0
  222. data/lib/zen/packages/users/lib/users/model/user.rb +96 -0
  223. data/lib/zen/packages/users/lib/users/model/user_group.rb +38 -0
  224. data/lib/zen/packages/users/lib/users/public/admin/js/users/access_rules.js +43 -0
  225. data/lib/zen/packages/users/lib/users/view/admin/access_rules/edit.xhtml +7 -0
  226. data/lib/zen/packages/users/lib/users/view/admin/access_rules/form.xhtml +68 -0
  227. data/lib/zen/packages/users/lib/users/view/admin/access_rules/index.xhtml +85 -0
  228. data/lib/zen/packages/users/lib/users/view/admin/access_rules/new.xhtml +7 -0
  229. data/lib/zen/packages/users/lib/users/view/admin/user_groups/edit.xhtml +7 -0
  230. data/lib/zen/packages/users/lib/users/view/admin/user_groups/form.xhtml +19 -0
  231. data/lib/zen/packages/users/lib/users/view/admin/user_groups/index.xhtml +69 -0
  232. data/lib/zen/packages/users/lib/users/view/admin/user_groups/new.xhtml +7 -0
  233. data/lib/zen/packages/users/lib/users/view/admin/users/edit.xhtml +7 -0
  234. data/lib/zen/packages/users/lib/users/view/admin/users/form.xhtml +25 -0
  235. data/lib/zen/packages/users/lib/users/view/admin/users/index.xhtml +73 -0
  236. data/lib/zen/packages/users/lib/users/view/admin/users/login.xhtml +22 -0
  237. data/lib/zen/packages/users/lib/users/view/admin/users/new.xhtml +7 -0
  238. data/lib/zen/packages/users/migrations/.gitkeep +0 -0
  239. data/lib/zen/packages/users/migrations/1295281013_create_schema.rb +54 -0
  240. data/lib/zen/public/admin/css/boilerplate.css +174 -0
  241. data/lib/zen/public/admin/css/general.css +485 -0
  242. data/lib/zen/public/admin/css/grid.css +119 -0
  243. data/lib/zen/public/admin/css/layout.css +111 -0
  244. data/lib/zen/public/admin/images/general/noise.jpg +0 -0
  245. data/lib/zen/public/admin/images/icons/accept.png +0 -0
  246. data/lib/zen/public/admin/images/icons/add.png +0 -0
  247. data/lib/zen/public/admin/images/icons/back.png +0 -0
  248. data/lib/zen/public/admin/images/icons/bold.png +0 -0
  249. data/lib/zen/public/admin/images/icons/close.png +0 -0
  250. data/lib/zen/public/admin/images/icons/delete.png +0 -0
  251. data/lib/zen/public/admin/images/icons/edit.png +0 -0
  252. data/lib/zen/public/admin/images/icons/error.png +0 -0
  253. data/lib/zen/public/admin/images/icons/help.png +0 -0
  254. data/lib/zen/public/admin/images/icons/info.png +0 -0
  255. data/lib/zen/public/admin/images/icons/italic.png +0 -0
  256. data/lib/zen/public/admin/images/icons/large/error.png +0 -0
  257. data/lib/zen/public/admin/images/icons/large/notice.png +0 -0
  258. data/lib/zen/public/admin/images/icons/large/success.png +0 -0
  259. data/lib/zen/public/admin/images/icons/link.png +0 -0
  260. data/lib/zen/public/admin/images/icons/logout.png +0 -0
  261. data/lib/zen/public/admin/images/icons/ol.png +0 -0
  262. data/lib/zen/public/admin/images/icons/pdf.png +0 -0
  263. data/lib/zen/public/admin/images/icons/ul.png +0 -0
  264. data/lib/zen/public/admin/images/icons/user.png +0 -0
  265. data/lib/zen/public/admin/images/icons/view.png +0 -0
  266. data/lib/zen/public/admin/js/mootools/core.js +436 -0
  267. data/lib/zen/public/admin/js/mootools/more.js +288 -0
  268. data/lib/zen/public/admin/js/zen/editor/base.js +265 -0
  269. data/lib/zen/public/admin/js/zen/editor/drivers/html.js +104 -0
  270. data/lib/zen/public/admin/js/zen/editor/drivers/markdown.js +102 -0
  271. data/lib/zen/public/admin/js/zen/editor/drivers/textile.js +102 -0
  272. data/lib/zen/public/admin/js/zen/init.js +57 -0
  273. data/lib/zen/public/admin/js/zen/modal.js +159 -0
  274. data/lib/zen/public/admin/js/zen/notification.js +213 -0
  275. data/lib/zen/public/admin/js/zen/tabs.js +263 -0
  276. data/lib/zen/tasks.rb +6 -0
  277. data/pkg/.gitkeep +0 -0
  278. data/proto/app/Rakefile +2 -0
  279. data/proto/app/app.rb +20 -0
  280. data/proto/app/config.ru +18 -0
  281. data/proto/app/config/config.rb +17 -0
  282. data/proto/app/config/database.rb +18 -0
  283. data/proto/app/config/middlewares.rb +23 -0
  284. data/proto/app/config/requires.rb +8 -0
  285. data/proto/app/logs/.gitkeep +0 -0
  286. data/proto/app/public/.gitkeep +0 -0
  287. data/proto/app/start.rb +22 -0
  288. data/proto/app/vendor/.gitkeep +0 -0
  289. data/proto/app/vendor/themes/.gitkeep +0 -0
  290. data/proto/migration.rb +11 -0
  291. data/proto/module/LICENSE +0 -0
  292. data/proto/module/README.textile +0 -0
  293. data/proto/module/lib/module.rb +15 -0
  294. data/proto/module/lib/module/controller/controllers.rb +86 -0
  295. data/proto/module/lib/module/language/en/languages.rb +3 -0
  296. data/proto/module/lib/module/model/model.rb +12 -0
  297. data/proto/module/lib/module/view/admin/edit.xhtml +0 -0
  298. data/proto/module/lib/module/view/admin/form.xhtml +0 -0
  299. data/proto/module/lib/module/view/admin/index.xhtml +0 -0
  300. data/proto/module/lib/module/view/admin/new.xhtml +0 -0
  301. data/proto/module/migrations/.gitkeep +0 -0
  302. data/spec/javascript/css/base.css +177 -0
  303. data/spec/javascript/css/style.css +204 -0
  304. data/spec/javascript/css/typography.css +70 -0
  305. data/spec/javascript/editor/index.html +65 -0
  306. data/spec/javascript/images/close.png +0 -0
  307. data/spec/javascript/images/info.png +0 -0
  308. data/spec/javascript/js/editor.js +16 -0
  309. data/spec/javascript/js/modal.js +12 -0
  310. data/spec/javascript/js/namespace.js +2 -0
  311. data/spec/javascript/js/notification.js +43 -0
  312. data/spec/javascript/js/tabs.js +8 -0
  313. data/spec/javascript/modal/index.html +45 -0
  314. data/spec/javascript/notification/index.html +48 -0
  315. data/spec/javascript/tabs/index.html +73 -0
  316. data/spec/javascript/tabs/tab_1.html +1 -0
  317. data/spec/javascript/tabs/tab_2.html +1 -0
  318. data/spec/zen/base/language.rb +31 -0
  319. data/spec/zen/base/logger.rb +34 -0
  320. data/spec/zen/base/package.rb +47 -0
  321. data/spec/zen/config/database.rb +8 -0
  322. data/spec/zen/helper/asset.rb +26 -0
  323. data/spec/zen/helper/breadcrumb.rb +24 -0
  324. data/spec/zen/language/en/general.rb +4 -0
  325. data/spec/zen/language/nl/general.rb +4 -0
  326. data/spec/zen/liquid/general.rb +42 -0
  327. data/spec/zen/logs/.gitkeep +0 -0
  328. data/spec/zen/spec.rb +9 -0
  329. data/spec/zen/spec_database.db +0 -0
  330. data/tasks/bacon.rake +99 -0
  331. data/tasks/build.rake +72 -0
  332. data/tasks/clean.rake +18 -0
  333. data/tasks/db.rake +81 -0
  334. data/tasks/doc.rake +5 -0
  335. data/tasks/extension.rake +65 -0
  336. data/tasks/proto.rake +37 -0
  337. data/tasks/theme.rake +63 -0
  338. metadata +512 -0
@@ -0,0 +1,157 @@
1
+ module Ramaze
2
+ module Helper
3
+ ##
4
+ # Helper that contains several common methods for which creating their
5
+ # own helper would be a bit of an overkill.
6
+ #
7
+ # @author Yorick Peterse
8
+ # @since 0.1
9
+ #
10
+ module Common
11
+ ##
12
+ # Generate the required data for showing a Javascript based notification.
13
+ # Basically all this method does is storing a hash in the flash data and
14
+ # making the required code to do so slightly shorter.
15
+ #
16
+ # @author Yorick Peterse
17
+ # @param [Symbol] type The type of notification to generate (error, notice, etc).
18
+ # @param [String] title The title of the notification.
19
+ # @param [String] message The message to display in the notification.
20
+ # @param [String] image An optional path to a custom image to use. If no image is specified
21
+ # the type of notification will be used for the image. For example, an error message would
22
+ # result in an image named "error.png" (.png is used for all default icons).
23
+ # @param [Boolean] sticky Boolean that indicates that the notification shouldn't
24
+ # be automatically removed after a certain period of time.
25
+ # @since 0.1
26
+ #
27
+ def notification type, title, message, image = nil, sticky = false
28
+ if image.nil?
29
+ image = "/admin/images/icons/large/#{type.to_s}.png"
30
+ end
31
+
32
+ sticky = true if type === :error
33
+
34
+ flash[:notification] = {
35
+ :title => title,
36
+ :content => message,
37
+ :image => image,
38
+ :sticky => sticky
39
+ }
40
+ end
41
+
42
+ ##
43
+ # Generate an anchor tag inspired by the way Rails does this.
44
+ # The first parameter is the text to display, the second parameter is the URL.
45
+ #
46
+ # The anchor_to tag supports both query string parameters just like the link helper
47
+ # that ships with Ramaze but it also supports the possibility of adding HTML
48
+ # attributes such as an ID or class.
49
+ #
50
+ # URLs can be formatted in two ways. The first one, which is the most common one,
51
+ # is using a path to a controller/method. Simply specify a string such as
52
+ # "controller/method". If you want to create an anchor that points to an external
53
+ # website, say Google, simply start the string with "http://" and you're good to go.
54
+ #
55
+ # @example
56
+ # # Rather verbose isn't it?
57
+ # anchor_to 'Google Search', {:href => 'http://google.com', :q => 'Search term' }, :class => 'anchor_class', :title => 'Google Search Results :D'
58
+ #
59
+ # # This is also perfectly fine
60
+ # anchor_to 'Dashboard', 'dashboard'
61
+ #
62
+ # @author Yorick Peterse
63
+ # @since 0.1
64
+ # @param [String] text The text to display in the anchor tag.
65
+ # @param [Hash/String] url Either a hash or a string that defines the URL.
66
+ # When using a hash the :href key will be used for the link location.
67
+ # Other keys will be used to create query string items. If the URL starts with
68
+ # http:// it will be an external URL.
69
+ # @param [Array] attributes Optional HTML attributes to add to the anchor tag.
70
+ # @return [String]
71
+ #
72
+ def anchor_to text, url, *attributes
73
+
74
+ # Sanitize the text and URL
75
+ text = Rack::Utils.escape_html text
76
+
77
+ # Get the URL from the second parameter (either a string or a hash).
78
+ if url.class.to_s === 'Hash'
79
+ # Get the URL from the hash and delete it
80
+ anchor_url = url[:href].strip
81
+ url.delete(anchor_url)
82
+
83
+ # Generate the query string based on the left over values in the URL hash
84
+ query_string = Rack::Utils.build_query url
85
+
86
+ # Create the full URL
87
+ anchor_url = anchor_url + query_string
88
+ else
89
+ anchor_url = url
90
+ end
91
+
92
+ # Got attributes?
93
+ if !attributes or attributes.empty?
94
+ attributes = Hash.new
95
+ else
96
+ attributes = attributes[0]
97
+ end
98
+
99
+ # Check to see if we're dealing with an internal or external URL
100
+ if !anchor_url.include? '://' or !anchor_url.include? 'www.'
101
+ anchor_url = request.domain("/#{anchor_url}")
102
+ end
103
+
104
+ # Add the href attribute so it gets processed
105
+ attributes['href'] = anchor_url
106
+
107
+ # Add all the extra arguments
108
+ html_attributes = String.new
109
+
110
+ attributes.each do |attribute, value|
111
+ attribute = Rack::Utils.escape_html attribute
112
+ html_attributes += "#{attribute}=\"#{value}\" "
113
+ end
114
+
115
+ # Remove the trailing space
116
+ html_attributes = html_attributes.strip
117
+
118
+ # Return the tag
119
+ return "<a #{html_attributes}>#{text}</a>"
120
+ end
121
+
122
+ ##
123
+ # The cycle method cycles through a specified list of words. This helper can be
124
+ # used to generate "zebra" tables, meaning that every odd row has a different color.
125
+ #
126
+ # The amount of words you want to cycle through is completely customizable,
127
+ # however you should atleast have two words otherwise this method will be
128
+ # completely useless.
129
+ #
130
+ # @author Yorick Peterse
131
+ # @since 0.1
132
+ # @param [Array] args All words to cycle through.
133
+ # @return [String]
134
+ #
135
+ def cycle *args
136
+ if @@cycle_counter.nil?
137
+ @@cycle_counter = 0
138
+ end
139
+
140
+ # Check the current counter and reset it if it matches the total amount of arguments
141
+ if @@cycle_counter >= args.count
142
+ # Reset the counter
143
+ @@cycle_counter = 0
144
+ end
145
+
146
+ # Get the element based on the current index
147
+ cycle_element = args[@@cycle_counter]
148
+
149
+ # Increment the counter
150
+ @@cycle_counter += 1
151
+
152
+ # Return the cycle element
153
+ return cycle_element
154
+ end
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,21 @@
1
+ Zen::Language.translation 'zen_general' do |item|
2
+
3
+ item.labels = {
4
+ :zen_version => "Powered by Zen version #{Zen::Version}",
5
+ :zen_website => "Website",
6
+ :zen_docs => "Documentation",
7
+ :zen_github => "GitHub Account",
8
+ :view_website => "View Website",
9
+ :logout => "Logout",
10
+ :profile => "Profile"
11
+ }
12
+
13
+ item.errors = {
14
+ :csrf => "The specified request can't be executed without a valid CSRF token.",
15
+ :not_authorized => "You are not authorized to access the current page.",
16
+ :website_offline => "This website is currently offline.",
17
+ :no_templates => "No templates were found for the given action.",
18
+ :no_theme => "Before using Zen you'll need to specify a theme to use."
19
+ }
20
+
21
+ end
@@ -0,0 +1,39 @@
1
+ ##
2
+ # Language pack that provides a translated set of messages used when validating models.
3
+ #
4
+ # @author Yorick Peterse
5
+ # @since 0.1
6
+ #
7
+ Zen::Language.translation 'zen_models' do |lang|
8
+ lang.exact_length = lambda do |length|
9
+ "This field is not exactly #{length} characters long."
10
+ end
11
+
12
+ lang.format = "This field's format is invalid."
13
+ lang.includes = lambda do |arg|
14
+ "This field's value is not in the range or set of #{arg.inspect}"
15
+ end
16
+
17
+ lang.integer = "This field's value is not a number."
18
+ lang.length_range = "This field's value is either too long or too short."
19
+
20
+ lang.max_length = lambda do |length|
21
+ "This field's value may not be longer than #{length} characters."
22
+ end
23
+
24
+ lang.min_length = lambda do |length|
25
+ "This field's value may not be shorter than #{length} characters."
26
+ end
27
+
28
+ lang.not_string = lambda do |type|
29
+ "This field's value is not a valid #{type}."
30
+ end
31
+
32
+ lang.numeric = "This field's value is not numeric."
33
+ lang.type = lambda do |type|
34
+ "This field's value is not a #{type}"
35
+ end
36
+
37
+ lang.presence = "This field's value is required."
38
+ lang.unique = "This field's value is already taken."
39
+ end
@@ -0,0 +1,72 @@
1
+ <!DOCTYPE html>
2
+ <html lang="#{session[:settings][:language]}">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+
6
+ <!-- Load all stylesheets -->
7
+ #{build_css}
8
+
9
+ <title>#{@page_title}</title>
10
+ </head>
11
+
12
+ <body id="admin">
13
+ <!--
14
+ Top part of the admin panel that contains the navigation menu along with a small
15
+ gravatar of the user.
16
+ -->
17
+ <div id="top">
18
+ <header class="container">
19
+ <!--
20
+ Main navigation of the backend. Navigation items may be excluded if the user
21
+ doesn't have the required permissions for the extension that created it.
22
+ -->
23
+ <nav id="main_nav" class="grid_12">
24
+ #{Zen::Package.build_menu("left")}
25
+
26
+ <ul class="right clearfix">
27
+ <li>
28
+ <a href="/admin/users/logout">#{@zen_general_lang.labels[:logout]}</a>
29
+ </li>
30
+ <li>
31
+ <a href="/admin/users/edit/#{session[:user].id}">#{@zen_general_lang.labels[:profile]}</a>
32
+ </li>
33
+ <li>
34
+ <a href="/">#{@zen_general_lang.labels[:view_website]}</a>
35
+ </li>
36
+ </ul>
37
+ </nav>
38
+ </header>
39
+ </div>
40
+
41
+ <!--
42
+ Main area of the admin panel. The content stretches across the entire screen and there
43
+ are no silly sidebars.
44
+ -->
45
+ <div id="container" class="container">
46
+ <div id="content" class="grid_12">
47
+ #{@content}
48
+ </div>
49
+ </div>
50
+
51
+ <footer id="main_footer" class="container">
52
+ <div class="grid_12">
53
+ <p>#{@zen_general_lang.labels[:zen_version]}</p>
54
+ <p>
55
+ <a href="http://zen-cms.com/">#{@zen_general_lang.labels[:zen_website]}</a> |
56
+ <a href="http://zen-cms.com/documentation">#{@zen_general_lang.labels[:zen_docs]}</a> |
57
+ <a href="https://github.com/zen-cms/">#{@zen_general_lang.labels[:zen_github]}</a>
58
+ </p>
59
+ </div>
60
+ </footer>
61
+
62
+ <script src="/admin/js/mootools/core.js"></script>
63
+ <script src="/admin/js/mootools/more.js"></script>
64
+
65
+ <script>
66
+ Zen = {};
67
+ Zen.Flash = #{flash.combined.to_json};
68
+ </script>
69
+
70
+ #{build_js}
71
+ </body>
72
+ </html>
@@ -0,0 +1,44 @@
1
+ <!DOCTYPE html>
2
+ <html lang="#{session[:settings][:language]}">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+
6
+ <!-- Load all stylesheets -->
7
+ #{build_css}
8
+
9
+ <title>#{@page_title}</title>
10
+ </head>
11
+
12
+ <body id="login">
13
+ <!--
14
+ Main area of the admin panel. The content stretches across the entire screen and there
15
+ are no silly sidebars.
16
+ -->
17
+ <div id="container" class="container">
18
+ <div id="content" class="grid_12">
19
+ #{@content}
20
+ </div>
21
+ </div>
22
+
23
+ <footer id="main_footer" class="container">
24
+ <div class="grid_12">
25
+ <p>#{@zen_general_lang.labels[:zen_version]}</p>
26
+ <p>
27
+ <a href="http://zen-cms.com/">#{@zen_general_lang.labels[:zen_website]}</a> |
28
+ <a href="http://zen-cms.com/documentation">#{@zen_general_lang.labels[:zen_docs]}</a> |
29
+ <a href="https://github.com/zen-cms/">#{@zen_general_lang.labels[:zen_github]}</a>
30
+ </p>
31
+ </div>
32
+ </footer>
33
+
34
+ <script src="/admin/js/mootools/core.js"></script>
35
+ <script src="/admin/js/mootools/more.js"></script>
36
+
37
+ <script>
38
+ Zen = {};
39
+ Zen.Flash = #{flash.combined.to_json};
40
+ </script>
41
+
42
+ #{build_js}
43
+ </body>
44
+ </html>
@@ -0,0 +1,55 @@
1
+ module Zen
2
+ module Liquid
3
+ ##
4
+ # Module that can be used to allow Liquid tags to use data that would otherwise
5
+ # only be available to controllers. Including this module gives your tags access to
6
+ # the following methods:
7
+ #
8
+ # * request
9
+ # * response
10
+ # * session
11
+ #
12
+ # @author Yorick Peterse
13
+ # @since 0.1
14
+ #
15
+ module ControllerBehavior
16
+ include ::Ramaze::Trinity
17
+
18
+ ##
19
+ # Returns the session data of the current node. This is a workaround for the
20
+ # session() method not being available outside controllers.
21
+ #
22
+ # @author Yorick Peterse
23
+ # @since 0.1
24
+ # @return [Object]
25
+ #
26
+ def session
27
+ return action.node.session
28
+ end
29
+
30
+ ##
31
+ # Returns the request data of the current node. This is a workaround for the
32
+ # request() method not being available outside controllers.
33
+ #
34
+ # @author Yorick Peterse
35
+ # @since 0.1
36
+ # @return [Object]
37
+ #
38
+ def request
39
+ return action.node.request
40
+ end
41
+
42
+ ##
43
+ # Returns the response data of the current node. This is a workaround for the
44
+ # response() method not being available outside controllers.
45
+ #
46
+ # @author Yorick Peterse
47
+ # @since 0.1
48
+ # @return [Object]
49
+ #
50
+ def response
51
+ return action.node.response
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,69 @@
1
+ require 'enumerator'
2
+
3
+ module Zen
4
+ module Liquid
5
+ ##
6
+ # Module that provides several methods that can be used to ease the process of
7
+ # creating Liquid tags.
8
+ #
9
+ # @author Yorick Peterse
10
+ # @since 0.1
11
+ #
12
+ module General
13
+ include ::Ramaze::Helper::CGI
14
+
15
+ ##
16
+ # Parses all additional data specified in the tag open block
17
+ # and turns it into a key/value hash. This makes it easier to
18
+ # use tags with key/value variables such as the following:
19
+ #
20
+ # bc. {% my_tag name="yorick" %}
21
+ #
22
+ # @author Yorick Peterse
23
+ # @since 0.1
24
+ # @param [String] string the raw string specified after the tag name.
25
+ # @return [Hash]
26
+ #
27
+ def parse_key_values string
28
+ key_values = {}
29
+
30
+ # Thanks to Michael Trommer (https://github.com/entropie) for coming up with
31
+ # this way of parsing the key/value string.
32
+ string.split(/["']([^"]*)["']|\s/).reject{ |s| s.empty? }.each_slice(2) do |key, val|
33
+ key_values[ key[0..-2].to_s ] = val
34
+ end
35
+
36
+ # Returns the data in the format of {'key' => 'value'}
37
+ return key_values
38
+ end
39
+
40
+ ##
41
+ # Converts the given input data to HTML using the specified markup engine.
42
+ #
43
+ # @example
44
+ #
45
+ # markup_to_html("h2. Hello world!", :textile)
46
+ #
47
+ # @author Yorick Peterse
48
+ # @since 0.1
49
+ # @param [String] markup The raw markup that has to be converted to HTML.
50
+ # @param [Symbol] engine The markup engine to use such as Textile.
51
+ # @return [String]
52
+ #
53
+ def markup_to_html markup, engine
54
+ engine = engine.to_sym
55
+
56
+ case engine
57
+ when :textile
58
+ markup = RedCloth.new(markup).to_html
59
+ when :markdown
60
+ markup = RDiscount.new(markup).to_html
61
+ when :plain
62
+ markup = h(markup)
63
+ end
64
+
65
+ return markup
66
+ end
67
+ end
68
+ end
69
+ end