zen 0.2.7 → 0.2.8

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 (303) hide show
  1. data/.gitignore +15 -0
  2. data/.mailmap +2 -0
  3. data/.rvmrc +2 -0
  4. data/.travis.yml +8 -3
  5. data/AUTHORS +1 -2
  6. data/CHANGELOG.md +48 -17
  7. data/README.md +44 -39
  8. data/Rakefile +4 -0
  9. data/bin/zen +5 -30
  10. data/lib/zen.rb +13 -19
  11. data/lib/zen/asset.rb +99 -64
  12. data/lib/zen/bin/create.rb +94 -0
  13. data/lib/zen/bin/runner.rb +118 -0
  14. data/lib/zen/controller/admin_controller.rb +52 -36
  15. data/lib/zen/controller/base_controller.rb +5 -5
  16. data/lib/zen/controller/frontend_controller.rb +7 -7
  17. data/lib/zen/controller/main_controller.rb +12 -10
  18. data/lib/zen/controller/preview.rb +15 -11
  19. data/lib/zen/helper/acl.rb +73 -53
  20. data/lib/zen/helper/blue_form_vendor.rb +689 -0
  21. data/lib/zen/helper/breadcrumb.rb +23 -19
  22. data/lib/zen/helper/message.rb +3 -3
  23. data/lib/zen/helper/theme.rb +18 -13
  24. data/lib/zen/language.rb +62 -58
  25. data/lib/zen/language/en/zen_general.yml +2 -4
  26. data/lib/zen/language/nl/zen_general.yml +2 -4
  27. data/lib/zen/layout/admin.xhtml +3 -12
  28. data/lib/zen/layout/login.xhtml +1 -6
  29. data/lib/zen/model/methods.rb +6 -6
  30. data/lib/zen/model/settings.rb +5 -4
  31. data/lib/zen/package.rb +47 -38
  32. data/lib/zen/package/all.rb +3 -5
  33. data/lib/zen/package/base.rb +7 -7
  34. data/lib/zen/package/categories/lib/categories.rb +8 -3
  35. data/lib/zen/package/categories/lib/categories/controller/categories.rb +81 -55
  36. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +45 -44
  37. data/lib/zen/package/categories/lib/categories/helper/category.rb +88 -0
  38. data/lib/zen/package/categories/lib/categories/language/en/categories.yml +5 -4
  39. data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +5 -4
  40. data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +5 -4
  41. data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +5 -4
  42. data/lib/zen/package/categories/lib/categories/model/category.rb +15 -13
  43. data/lib/zen/package/categories/lib/categories/model/category_group.rb +3 -3
  44. data/lib/zen/package/categories/lib/categories/plugin/categories.rb +36 -25
  45. data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +49 -56
  46. data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +48 -35
  47. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +36 -29
  48. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +42 -37
  49. data/lib/zen/package/comments/lib/comments.rb +4 -1
  50. data/lib/zen/package/comments/lib/comments/controller/comments.rb +39 -32
  51. data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +45 -26
  52. data/lib/zen/package/comments/lib/comments/helper/comment.rb +35 -0
  53. data/lib/zen/package/comments/lib/comments/language/en/comments.yml +9 -7
  54. data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +10 -8
  55. data/lib/zen/package/comments/lib/comments/model/comment.rb +31 -17
  56. data/lib/zen/package/comments/lib/comments/model/comment_status.rb +15 -0
  57. data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +27 -18
  58. data/lib/zen/package/comments/lib/comments/plugin/comments.rb +25 -20
  59. data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +61 -54
  60. data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +38 -23
  61. data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +60 -0
  62. data/lib/zen/package/custom_fields/lib/custom_fields.rb +33 -7
  63. data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +209 -0
  64. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +50 -47
  65. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +215 -0
  66. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +111 -73
  67. data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +79 -0
  68. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +20 -19
  69. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +40 -0
  70. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +34 -32
  71. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +5 -4
  72. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +40 -0
  73. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +18 -16
  74. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +31 -11
  75. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +15 -0
  76. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +50 -0
  77. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +28 -7
  78. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +33 -28
  79. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +48 -46
  80. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +61 -0
  81. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +93 -0
  82. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +105 -99
  83. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +43 -39
  84. data/lib/zen/package/custom_fields/migrations/1295255665_create_schema.rb +47 -16
  85. data/lib/zen/package/custom_fields/migrations/1310659580_custom_field_types.rb +148 -0
  86. data/lib/zen/package/custom_fields/migrations/1311694920_rename_css_class.rb +11 -0
  87. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +40 -35
  88. data/lib/zen/package/menus/lib/menus/controller/menus.rb +47 -43
  89. data/lib/zen/package/menus/lib/menus/helper/{menu_item.rb → menu.rb} +42 -15
  90. data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +5 -5
  91. data/lib/zen/package/menus/lib/menus/language/en/menus.yml +9 -8
  92. data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +8 -8
  93. data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +11 -10
  94. data/lib/zen/package/menus/lib/menus/model/menu.rb +5 -5
  95. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +6 -5
  96. data/lib/zen/package/menus/lib/menus/plugin/menus.rb +41 -43
  97. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +59 -63
  98. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +35 -30
  99. data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +46 -37
  100. data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +37 -37
  101. data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +5 -5
  102. data/lib/zen/package/menus/migrations/1308671733_rename_order_column.rb +11 -0
  103. data/lib/zen/package/menus/migrations/1311695030_rename_css_class.rb +17 -0
  104. data/lib/zen/package/sections/lib/sections.rb +18 -11
  105. data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +115 -109
  106. data/lib/zen/package/sections/lib/sections/controller/sections.rb +72 -50
  107. data/lib/zen/package/sections/lib/sections/helper/section.rb +53 -0
  108. data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +5 -4
  109. data/lib/zen/package/sections/lib/sections/language/en/sections.yml +5 -4
  110. data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +5 -4
  111. data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +5 -4
  112. data/lib/zen/package/sections/lib/sections/model/section.rb +17 -9
  113. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +192 -13
  114. data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +13 -0
  115. data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +60 -39
  116. data/lib/zen/package/sections/lib/sections/plugin/sections.rb +14 -11
  117. data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +100 -97
  118. data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +41 -39
  119. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +95 -215
  120. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +48 -40
  121. data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +40 -0
  122. data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +58 -0
  123. data/lib/zen/package/settings/lib/settings/controller/settings.rb +5 -8
  124. data/lib/zen/package/settings/lib/settings/model/setting.rb +2 -37
  125. data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +18 -1
  126. data/lib/zen/package/settings/lib/settings/plugin/settings.rb +13 -7
  127. data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +2 -1
  128. data/lib/zen/package/users/lib/users.rb +3 -1
  129. data/lib/zen/package/users/lib/users/controller/access_rules.rb +77 -60
  130. data/lib/zen/package/users/lib/users/controller/user_groups.rb +41 -36
  131. data/lib/zen/package/users/lib/users/controller/users.rb +48 -42
  132. data/lib/zen/package/users/lib/users/helper/users.rb +72 -0
  133. data/lib/zen/package/users/lib/users/language/en/access_rules.yml +6 -5
  134. data/lib/zen/package/users/lib/users/language/en/user_groups.yml +5 -4
  135. data/lib/zen/package/users/lib/users/language/en/users.yml +1 -0
  136. data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +5 -4
  137. data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +5 -4
  138. data/lib/zen/package/users/lib/users/language/nl/users.yml +1 -0
  139. data/lib/zen/package/users/lib/users/model/access_rule.rb +5 -1
  140. data/lib/zen/package/users/lib/users/model/user.rb +17 -10
  141. data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +10 -37
  142. data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +49 -0
  143. data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +105 -96
  144. data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +48 -41
  145. data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +42 -32
  146. data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +43 -38
  147. data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +76 -67
  148. data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +43 -41
  149. data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +12 -9
  150. data/lib/zen/package/users/migrations/1295281013_create_schema.rb +2 -2
  151. data/lib/zen/plugin.rb +56 -50
  152. data/lib/zen/plugin/markup/lib/markup/markup.rb +33 -21
  153. data/lib/zen/public/admin/css/zen/buttons.css +11 -7
  154. data/lib/zen/public/admin/css/zen/datepicker.css +6 -6
  155. data/lib/zen/public/admin/css/zen/forms.css +2 -1
  156. data/lib/zen/public/admin/css/zen/general.css +15 -10
  157. data/lib/zen/public/admin/css/zen/layout.css +51 -20
  158. data/lib/zen/public/admin/css/zen/tables.css +39 -11
  159. data/lib/zen/public/admin/css/zen/tabs.css +6 -4
  160. data/lib/zen/public/admin/css/zen/window.css +11 -11
  161. data/lib/zen/public/{favicon.ico → admin/favicon.ico} +0 -0
  162. data/lib/zen/public/admin/images/zen/icons/asc.png +0 -0
  163. data/lib/zen/public/admin/images/zen/icons/desc.png +0 -0
  164. data/lib/zen/public/admin/js/vendor/datepicker.js +0 -11
  165. data/lib/zen/public/admin/js/{mootools → vendor/mootools}/core.js +0 -1
  166. data/lib/zen/public/admin/js/{mootools → vendor/mootools}/more.js +100 -29
  167. data/lib/zen/public/admin/js/zen/index.js +48 -0
  168. data/lib/zen/public/admin/js/zen/lib/asset.js +111 -0
  169. data/lib/zen/public/admin/js/zen/{editor.js → lib/editor.js} +107 -127
  170. data/lib/zen/public/admin/js/zen/{editor → lib/editor}/markdown.js +7 -9
  171. data/lib/zen/public/admin/js/zen/{editor → lib/editor}/textile.js +7 -9
  172. data/lib/zen/public/admin/js/zen/lib/html_table.js +143 -0
  173. data/lib/zen/public/admin/js/zen/{tabs.js → lib/tabs.js} +40 -37
  174. data/lib/zen/public/admin/js/zen/{window.js → lib/window.js} +24 -20
  175. data/lib/zen/spec/bacon/color_output.rb +39 -0
  176. data/lib/zen/spec/helper.rb +152 -0
  177. data/lib/zen/spec/simplecov.rb +22 -0
  178. data/lib/zen/task/build.rake +20 -43
  179. data/lib/zen/task/clean.rake +2 -6
  180. data/lib/zen/task/db.rake +8 -12
  181. data/lib/zen/task/package.rake +4 -10
  182. data/lib/zen/task/plugin.rake +3 -9
  183. data/lib/zen/task/proto.rake +0 -62
  184. data/lib/zen/task/test.rake +6 -3
  185. data/lib/zen/task/theme.rake +4 -11
  186. data/lib/zen/theme.rb +22 -24
  187. data/lib/zen/validation.rb +34 -27
  188. data/lib/zen/version.rb +2 -8
  189. data/lib/zen/view/head.xhtml +7 -0
  190. data/lib/zen/view/main.xhtml +7 -22
  191. data/{proto/package/migrations → pkg}/.gitkeep +0 -0
  192. data/proto/app/app.rb +1 -0
  193. data/proto/app/config/config.rb +5 -4
  194. data/proto/app/config/database.rb +19 -41
  195. data/proto/app/config/middlewares.rb +32 -29
  196. data/proto/{package/lib/package/view/admin/package/index.xhtml → app/log/database/dev/.gitkeep} +0 -0
  197. data/proto/app/log/database/live/.gitkeep +0 -0
  198. data/spec/Rakefile +26 -0
  199. data/spec/fixtures/zen/asset.rb +18 -0
  200. data/spec/fixtures/zen/helper/acl.rb +39 -0
  201. data/spec/fixtures/zen/helper/message.rb +19 -0
  202. data/spec/fixtures/zen/language/en/spec.yml +10 -0
  203. data/spec/fixtures/zen/language/nl/spec.yml +7 -0
  204. data/spec/fixtures/zen/package.rb +17 -0
  205. data/spec/fixtures/zen/package/comments/controller/comments_form.rb +27 -0
  206. data/spec/fixtures/zen/package/settings/plugin/settings.rb +20 -0
  207. data/spec/fixtures/zen/plugin.rb +7 -0
  208. data/spec/fixtures/zen/theme/404.xhtml +1 -0
  209. data/spec/fixtures/zen/theme/default-section/index.xhtml +1 -0
  210. data/spec/fixtures/zen/theme/helper/404.xhtml +1 -0
  211. data/spec/fixtures/zen/theme/helper/partial.xhtml +1 -0
  212. data/spec/fixtures/zen/theme/helper/wrong_partial.xhtml +1 -0
  213. data/spec/fixtures/zen/theme/partials/partial.xhtml +1 -0
  214. data/spec/fixtures/zen/theme/theme.rb +11 -0
  215. data/spec/fixtures/zen/validation.rb +22 -0
  216. data/spec/helper.rb +41 -0
  217. data/spec/zen/all.rb +5 -0
  218. data/spec/zen/asset.rb +97 -0
  219. data/spec/zen/bin/create.rb +89 -0
  220. data/spec/zen/bin/runner.rb +47 -0
  221. data/spec/zen/controller/admin_controller.rb +26 -0
  222. data/spec/zen/controller/main_controller.rb +81 -0
  223. data/spec/zen/controller/preview.rb +33 -0
  224. data/spec/zen/helper/acl.rb +149 -0
  225. data/spec/zen/helper/breadcrumb.rb +38 -0
  226. data/spec/zen/helper/message.rb +31 -0
  227. data/spec/zen/helper/theme.rb +58 -0
  228. data/spec/zen/language.rb +55 -0
  229. data/spec/zen/package.rb +23 -0
  230. data/spec/zen/package/categories/controller/categories.rb +123 -0
  231. data/spec/zen/package/categories/controller/category_groups.rb +108 -0
  232. data/spec/zen/package/categories/helper/category.rb +75 -0
  233. data/spec/zen/package/categories/plugin/categories.rb +92 -0
  234. data/spec/zen/package/comments/controller/comments.rb +134 -0
  235. data/spec/zen/package/comments/controller/comments_form.rb +343 -0
  236. data/spec/zen/package/comments/helper/comment.rb +47 -0
  237. data/spec/zen/package/comments/plugin/anti_spam.rb +59 -0
  238. data/spec/zen/package/comments/plugin/comments.rb +107 -0
  239. data/spec/zen/package/custom_fields/blue_form_parameters.rb +183 -0
  240. data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +120 -0
  241. data/spec/zen/package/custom_fields/controller/custom_field_types.rb +169 -0
  242. data/spec/zen/package/custom_fields/controller/custom_fields.rb +158 -0
  243. data/spec/zen/package/custom_fields/helper/custom_field.rb +86 -0
  244. data/spec/zen/package/menus/controller/menu_items.rb +110 -0
  245. data/spec/zen/package/menus/controller/menus.rb +110 -0
  246. data/spec/zen/package/menus/helper/menu.rb +75 -0
  247. data/spec/zen/package/menus/plugin/menus.rb +120 -0
  248. data/spec/zen/package/sections/controller/section_entries.rb +201 -0
  249. data/spec/zen/package/sections/controller/sections.rb +116 -0
  250. data/spec/zen/package/sections/helper/section.rb +74 -0
  251. data/spec/zen/package/sections/plugin/section_entries.rb +161 -0
  252. data/spec/zen/package/sections/plugin/sections.rb +75 -0
  253. data/spec/zen/package/settings/controller/settings.rb +36 -0
  254. data/spec/zen/package/settings/plugin/settings.rb +33 -0
  255. data/spec/zen/package/users/controller/access_rules.rb +90 -0
  256. data/spec/zen/package/users/controller/user_groups.rb +101 -0
  257. data/spec/zen/package/users/controller/users.rb +130 -0
  258. data/spec/zen/package/users/helper/users.rb +97 -0
  259. data/spec/zen/plugin.rb +64 -0
  260. data/spec/zen/plugin/helper.rb +11 -0
  261. data/spec/zen/plugin/markup.rb +44 -0
  262. data/spec/zen/theme.rb +41 -0
  263. data/spec/zen/validation.rb +63 -0
  264. data/zen.gemspec +36 -0
  265. metadata +159 -113
  266. data/MANIFEST +0 -266
  267. data/lib/zen/bin/app.rb +0 -40
  268. data/lib/zen/ext/string.rb +0 -185
  269. data/lib/zen/helper/common.rb +0 -106
  270. data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
  271. data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
  272. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +0 -7
  273. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +0 -7
  274. data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
  275. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +0 -7
  276. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +0 -7
  277. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +0 -7
  278. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +0 -7
  279. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +0 -7
  280. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +0 -7
  281. data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +0 -7
  282. data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +0 -7
  283. data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +0 -7
  284. data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +0 -7
  285. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +0 -7
  286. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +0 -7
  287. data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +0 -7
  288. data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +0 -7
  289. data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +0 -7
  290. data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +0 -7
  291. data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +0 -7
  292. data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +0 -7
  293. data/lib/zen/plugin/controller.rb +0 -59
  294. data/lib/zen/public/admin/css/zen/notifications.css +0 -84
  295. data/lib/zen/public/admin/images/zen/icons/large/error.png +0 -0
  296. data/lib/zen/public/admin/images/zen/icons/large/notice.png +0 -0
  297. data/lib/zen/public/admin/images/zen/icons/large/success.png +0 -0
  298. data/lib/zen/public/admin/js/zen/core.js +0 -73
  299. data/lib/zen/public/admin/js/zen/init.js +0 -80
  300. data/proto/package/lib/package.rb +0 -21
  301. data/proto/package/lib/package/controller/controllers.rb +0 -50
  302. data/proto/package/lib/package/language/en/languages.yml +0 -4
  303. data/proto/package/lib/package/model/model.rb +0 -12
File without changes
data/spec/Rakefile ADDED
@@ -0,0 +1,26 @@
1
+ module Zen
2
+ RakeTask = true
3
+ end
4
+
5
+ require File.expand_path('../helper', __FILE__)
6
+ import __DIR__('../lib/zen/task/db.rake')
7
+
8
+ namespace :db do
9
+
10
+ desc 'Creates the user for all the tests'
11
+ task :test_user do
12
+ # Create a default user and group
13
+ group = Users::Model::UserGroup.new(
14
+ :name => 'Administrators',
15
+ :slug => 'administrators', :super_group => true
16
+ ).save
17
+
18
+ user = Users::Model::User.new(
19
+ :email => 'spec@domain.tld', :name => 'Spec',
20
+ :password => 'spec' , :status => 'open'
21
+ ).save
22
+
23
+ user.user_group_pks = [group.id]
24
+ end
25
+
26
+ end
@@ -0,0 +1,18 @@
1
+ class AssetController < Zen::Controller::AdminController
2
+ map '/spec/asset'
3
+
4
+ javascript ['spec']
5
+ stylesheet ['reset']
6
+
7
+ javascript ['specific'], :method => :specific
8
+ javascript ['array'] , :method => [:array, :array_1]
9
+
10
+ def index; end
11
+
12
+ def javascripts; Zen::Asset.build(:javascript); end
13
+ def stylesheets; Zen::Asset.build(:stylesheet); end
14
+
15
+ def specific ; Zen::Asset.build(:javascript); end
16
+ def array ; Zen::Asset.build(:javascript); end
17
+ def array_1 ; Zen::Asset.build(:javascript); end
18
+ end
@@ -0,0 +1,39 @@
1
+ class SpecACLHelper < Zen::Controller::AdminController
2
+ map '/admin/spec-acl-helper'
3
+
4
+ # Hash used to store the data in for each spec rather than returning it and
5
+ # having to encode/decode it using Marshal.
6
+ SpecData = {
7
+ :permissions => nil
8
+ }
9
+
10
+ # Don't cache the access rules in the session.
11
+ after_all do
12
+ session.delete(:access_rules) if session[:access_rules]
13
+ end
14
+
15
+ # returns all permissions
16
+ def index
17
+ SpecData[:permissions] = extension_permissions
18
+ end
19
+
20
+ def require_all
21
+ if user_authorized?([:create, :read], true, 'Users::Controller::Users')
22
+ return 'authorized'
23
+ else
24
+ return 'not authorized'
25
+ end
26
+ end
27
+
28
+ def require_one
29
+ if user_authorized?([:create, :delete], false, 'Users::Controller::Users')
30
+ return 'authorized'
31
+ else
32
+ return 'not authorized'
33
+ end
34
+ end
35
+
36
+ def require_permissions_block
37
+ require_permissions(:delete, :update)
38
+ end
39
+ end
@@ -0,0 +1,19 @@
1
+ class SpecMessageHelper < Zen::Controller::AdminController
2
+ map '/admin/spec-message-helper'
3
+
4
+ def index
5
+ return display_messages
6
+ end
7
+
8
+ def success
9
+ message(:success, 'success message')
10
+ end
11
+
12
+ def info
13
+ message(:info, 'info message')
14
+ end
15
+
16
+ def error
17
+ message(:error, 'error message')
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: 'Name'
3
+ age: 'Age'
4
+
5
+ parent:
6
+ sub: 'Sub item'
7
+
8
+ array:
9
+ - 'first'
10
+ - 'second'
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: 'Naam'
3
+ age: 'Leeftijd'
4
+
5
+ parent:
6
+ sub: 'Sub element'
7
+
@@ -0,0 +1,17 @@
1
+ class SpecPackage < Zen::Controller::AdminController
2
+ map '/admin/spec'
3
+
4
+ def index
5
+ Zen::Package.build_menu('spec_menu', extension_permissions)
6
+ end
7
+ end
8
+
9
+ Zen::Package.add do |p|
10
+ p.name = 'spec'
11
+ p.author = 'Yorick Peterse'
12
+ p.about = 'A spec extension'
13
+ p.url = 'http://zen-cms.com/'
14
+ p.directory = __DIR__
15
+ p.menu = [{:title => 'Spec', :url => '/admin/spec'} ]
16
+ p.controllers = {'Spec' => SpecPackage}
17
+ end
@@ -0,0 +1,27 @@
1
+ class SpecCommentsForm < Zen::Controller::FrontendController
2
+ map '/spec-comments-form'
3
+ helper :message
4
+
5
+ def index
6
+ body = <<-HTML
7
+ #{display_messages}
8
+
9
+ <form action="#{Comments::Controller::CommentsForm.r(:save)}"
10
+ method="post" id="spec_comments_form">
11
+ <input name="csrf_token" value="#{get_csrf_token}" type="hidden" />
12
+
13
+ <input id="section_entry" name="section_entry" type="text" />
14
+ <input id="user_id" name="user_id" type="text" />
15
+ <input id="name" name="name" type="text" />
16
+ <input id="website" name="website" type="text" />
17
+ <input id="email" name="email" type="text" />
18
+
19
+ <textarea id="comment" name="comment"></textarea>
20
+
21
+ <input type="submit" value="Submit" />
22
+ </form>
23
+ HTML
24
+
25
+ return body
26
+ end
27
+ end
@@ -0,0 +1,20 @@
1
+ plugin(:settings, :register_group) do |group|
2
+ group.name = 'general_spec'
3
+ group.title = 'General Spec'
4
+ end
5
+
6
+ plugin(:settings, :register) do |setting|
7
+ setting.name = 'spec'
8
+ setting.title = 'Spec'
9
+ setting.group = 'general_spec'
10
+ setting.type = 'select'
11
+ setting.values = [1,2,3]
12
+ setting.description = 'An example of a setting with a select box.'
13
+ end
14
+
15
+ plugin(:settings, :register) do |setting|
16
+ setting.name = 'spec_textbox'
17
+ setting.title = 'Spec Textbox'
18
+ setting.group = 'general_spec'
19
+ setting.type = 'textbox'
20
+ end
@@ -0,0 +1,7 @@
1
+ class SpecPlugin
2
+ def initialize(transformation, text)
3
+ @transformation, @text = transformation, text
4
+ end
5
+
6
+ def call; return @text.send(@transformation); end
7
+ end
@@ -0,0 +1 @@
1
+ The requested page could not be found!
@@ -0,0 +1 @@
1
+ This is the homepage.
@@ -0,0 +1 @@
1
+ <?r show_404 ?>
@@ -0,0 +1 @@
1
+ #{partial(:partial)}
@@ -0,0 +1 @@
1
+ #{partial(:wrong_partial)}
@@ -0,0 +1 @@
1
+ This is a partial.
@@ -0,0 +1,11 @@
1
+ Zen::Theme.add do |theme|
2
+ theme.name = 'spec_theme'
3
+ theme.author = 'Yorick Peterse'
4
+ theme.url = 'http://zen-cms.com/'
5
+ theme.about = 'A theme for all the tests'
6
+
7
+ # Add all directories
8
+ theme.template_dir = __DIR__
9
+ theme.partial_dir = __DIR__('partials')
10
+ end
11
+
@@ -0,0 +1,22 @@
1
+ class ValidationObject
2
+ include ::Zen::Validation
3
+
4
+ attr_accessor :name
5
+ attr_accessor :file
6
+
7
+ def presence
8
+ validates_presence(:name)
9
+ end
10
+
11
+ def length
12
+ validates_length(:name, :min => 3, :max => 5)
13
+ end
14
+
15
+ def format
16
+ validates_format(:name, /[a-z]+/)
17
+ end
18
+
19
+ def exists
20
+ validates_filepath(:file)
21
+ end
22
+ end
data/spec/helper.rb ADDED
@@ -0,0 +1,41 @@
1
+ if ENV.key?('COVERAGE') and ENV['COVERAGE'] === 'true'
2
+ require File.expand_path('../../lib/zen/spec/simplecov', __FILE__)
3
+ end
4
+
5
+ require File.expand_path('../../lib/zen', __FILE__)
6
+
7
+ Ramaze.setup(:verbose => false) do
8
+ gem 'sqlite3' , ['~> 1.3.4']
9
+ gem 'rdiscount', ['~> 1.6.8']
10
+ gem 'defensio' , ['~> 0.9.1']
11
+ end
12
+
13
+ # Update all paths
14
+ Ramaze.options.roots = [__DIR__]
15
+ Ramaze.options.mode = :dev
16
+ Zen.root = __DIR__
17
+
18
+ Zen::Language.options.paths.push(__DIR__('fixtures/zen'))
19
+
20
+ # Configure the database
21
+ Zen.database = Sequel.connect(
22
+ :adapter => 'sqlite',
23
+ :database => __DIR__('database.db'),
24
+ :test => true,
25
+ :encoding => 'utf8'
26
+ )
27
+
28
+ # Start Zen
29
+ Zen.init
30
+
31
+ # Require all packages
32
+ require __DIR__('../lib/zen/package/all')
33
+
34
+ Zen.post_init
35
+
36
+ module Zen
37
+ Fixtures = __DIR__('fixtures/zen')
38
+ end
39
+
40
+ # Load Capybara?
41
+ require __DIR__('../lib/zen/spec/helper') if !Zen.const_defined?(:RakeTask)
data/spec/zen/all.rb ADDED
@@ -0,0 +1,5 @@
1
+ require File.expand_path('../../helper', __FILE__)
2
+
3
+ Dir.glob(__DIR__ + '/**/*.rb').each do |t|
4
+ require(t) if File.basename(t) != 'all.rb'
5
+ end
data/spec/zen/asset.rb ADDED
@@ -0,0 +1,97 @@
1
+ require File.expand_path('../../helper', __FILE__)
2
+ require File.join(Zen::Fixtures, 'asset')
3
+
4
+ describe('Zen::Asset') do
5
+ behaves_like :capybara
6
+
7
+ it('Load a single stylesheet') do
8
+ Zen::Asset.stylesheet(['reset'], :global => true)
9
+
10
+ path = File.join(
11
+ '/', Zen::Asset.options.prefix, Zen::Asset.options.stylesheet_prefix
12
+ ) + '/reset.css'
13
+
14
+ Zen::Asset::Stylesheets[:global].length.should > 1
15
+ Zen::Asset::Stylesheets[:global].include?(path).should === true
16
+ end
17
+
18
+ it('Load two stylesheets') do
19
+ Zen::Asset.stylesheet(['reset', 'text'], :global => true)
20
+
21
+ Zen::Asset::Stylesheets[:global].length.should > 2
22
+ Zen::Asset::Stylesheets[:global].last.include?('text').should === true
23
+ end
24
+
25
+ it('Load a set of action specific files') do
26
+ visit('/spec/asset/index')
27
+
28
+ Zen::Asset::Javascripts[:'AssetController'][:__all] \
29
+ .length.should === 1
30
+
31
+ Zen::Asset::Javascripts[:'AssetController'][:specific] \
32
+ .length.should === 1
33
+
34
+ Zen::Asset::Javascripts[:'AssetController'][:__all][0] \
35
+ .include?('spec').should === true
36
+
37
+ Zen::Asset::Stylesheets[:'AssetController'] \
38
+ .length.should === 1
39
+
40
+ Zen::Asset::Stylesheets[:'AssetController'][:__all][0] \
41
+ .include?('reset').should === true
42
+ end
43
+
44
+ it('Build all Javascript files') do
45
+ visit('/spec/asset/javascripts')
46
+
47
+ path = File.join(
48
+ '/',
49
+ Zen::Asset.options.prefix,
50
+ Zen::Asset.options.javascript_prefix
51
+ ) + '/spec.js'
52
+
53
+ page.body.strip.include?(path).should === true
54
+ page.body.strip.include?('specific.js').should === false
55
+ end
56
+
57
+ it('Build all Stylesheets') do
58
+ visit('/spec/asset/stylesheets')
59
+
60
+ path = File.join(
61
+ '/',
62
+ Zen::Asset.options.prefix,
63
+ Zen::Asset.options.stylesheet_prefix
64
+ ) + '/reset.css'
65
+
66
+ page.body.strip.include?(path).should === true
67
+ end
68
+
69
+ it('Build a set of method specific Javascript files') do
70
+ visit('/spec/asset/specific')
71
+
72
+ path = File.join(
73
+ '/',
74
+ Zen::Asset.options.prefix,
75
+ Zen::Asset.options.javascript_prefix
76
+ ) + '/specific.js'
77
+
78
+ page.body.strip.include?(path).should === true
79
+ page.body.strip.include?('spec.js').should === false
80
+ end
81
+
82
+ it('Build a set of Javascript files using an array of methods') do
83
+ path = File.join(
84
+ '/',
85
+ Zen::Asset.options.prefix,
86
+ Zen::Asset.options.javascript_prefix
87
+ ) + '/array.js'
88
+
89
+ [:array, :array_1].each do |method|
90
+ visit("/spec/asset/#{method}")
91
+
92
+ page.body.strip.include?(path).should === true
93
+ page.body.strip.include?('spec.js').should === false
94
+ end
95
+ end
96
+
97
+ end
@@ -0,0 +1,89 @@
1
+ require File.expand_path('../../../helper', __FILE__)
2
+ require __DIR__('../../../lib/zen/bin/runner')
3
+ require 'fileutils'
4
+
5
+ describe('Zen::Bin::Create') do
6
+ @bin_path = __DIR__('../../../bin/zen')
7
+
8
+ it('Show the help message') do
9
+ output = catch_output do
10
+ Zen::Bin::Create.new.run
11
+ end
12
+
13
+ output[:stdout].include?(Zen::Bin::Create::Banner).should === true
14
+ end
15
+
16
+ it('Show the help message using -h') do
17
+ output = catch_output do
18
+ Zen::Bin::Create.new.run(['-h'])
19
+ end
20
+
21
+ output[:stdout].include?(Zen::Bin::Create::Banner).should === true
22
+ end
23
+
24
+ it('Create a new application prototype') do
25
+ app_dir = '/tmp/zen'
26
+
27
+ if File.directory?(app_dir)
28
+ FileUtils.rm_rf(app_dir)
29
+ end
30
+
31
+ output = catch_output do
32
+ Zen::Bin::Create.new.run([app_dir])
33
+ end
34
+
35
+ output[:stdout].strip \
36
+ .should === "The application has been generated and saved in #{app_dir}"
37
+
38
+ File.directory?(app_dir).should === true
39
+
40
+ # Check various directories
41
+ File.directory?(File.join(app_dir, 'config')).should === true
42
+ File.directory?(File.join(app_dir, 'log')).should === true
43
+ File.directory?(File.join(app_dir, 'log', 'database', 'dev')).should === true
44
+ File.directory?(File.join(app_dir, 'public')).should === true
45
+
46
+ # Check if the config files are correct
47
+ config_generated = File.read(File.join(app_dir, 'config', 'config.rb'))
48
+ config_proto = File.read(__DIR__('../../../proto/app/config/config.rb'))
49
+
50
+ config_generated.should === config_proto
51
+
52
+ # Remove the application directory
53
+ FileUtils.rm_rf(app_dir)
54
+ end
55
+
56
+ it('Create a new application using -f') do
57
+ app_dir = '/tmp/zen'
58
+
59
+ if File.directory?(app_dir)
60
+ FileUtils.rm_rf(app_dir)
61
+ end
62
+
63
+ output = catch_output do
64
+ Zen::Bin::Create.new.run([app_dir])
65
+ end
66
+
67
+ output[:stdout].strip \
68
+ .should === "The application has been generated and saved in #{app_dir}"
69
+
70
+ # Warn that it exists
71
+ output = catch_output do
72
+ Zen::Bin::Create.new.run([app_dir])
73
+ end
74
+
75
+ output[:stderr].strip.should \
76
+ === "The application #{app_dir} already exists, use -f to overwrite it."
77
+
78
+ # Force it
79
+ output = catch_output do
80
+ Zen::Bin::Create.new.run([app_dir, '-f'])
81
+ end
82
+
83
+ output[:stdout].strip \
84
+ .should === "The application has been generated and saved in #{app_dir}"
85
+
86
+ FileUtils.rm_rf(app_dir)
87
+ end
88
+
89
+ end