zen 0.2.8 → 0.3b

Sign up to get free protection for your applications and to get access to all the features.
Files changed (422) hide show
  1. data/.gems +20 -0
  2. data/.mailmap +3 -2
  3. data/.rvmrc +1 -1
  4. data/.travis.yml +13 -2
  5. data/.yardopts +13 -0
  6. data/AUTHORS +1 -1
  7. data/README.md +115 -77
  8. data/Rakefile +6 -7
  9. data/bin/zen +12 -5
  10. data/guide/_static/categories/categories.png +0 -0
  11. data/guide/_static/categories/category_groups.png +0 -0
  12. data/guide/_static/categories/new_category.png +0 -0
  13. data/guide/_static/categories/new_category_group.png +0 -0
  14. data/guide/_static/comments/comments.png +0 -0
  15. data/guide/_static/comments/edit_comment.png +0 -0
  16. data/guide/_static/custom_fields/custom_field_groups.png +0 -0
  17. data/guide/_static/custom_fields/custom_field_types.png +0 -0
  18. data/guide/_static/custom_fields/custom_fields.png +0 -0
  19. data/guide/_static/custom_fields/edit_custom_field_general.png +0 -0
  20. data/guide/_static/custom_fields/edit_custom_field_group.png +0 -0
  21. data/guide/_static/custom_fields/edit_custom_field_settings.png +0 -0
  22. data/guide/_static/custom_fields/edit_custom_field_type.png +0 -0
  23. data/guide/_static/menus/edit_menu.png +0 -0
  24. data/guide/_static/menus/edit_menu_item.png +0 -0
  25. data/guide/_static/menus/menu_items.png +0 -0
  26. data/guide/_static/menus/menus.png +0 -0
  27. data/guide/_static/sections/edit_entry.png +0 -0
  28. data/guide/_static/sections/edit_entry_categories.png +0 -0
  29. data/guide/_static/sections/edit_entry_general.png +0 -0
  30. data/guide/_static/sections/edit_entry_meta.png +0 -0
  31. data/guide/_static/sections/edit_section_comments.png +0 -0
  32. data/guide/_static/sections/edit_section_general.png +0 -0
  33. data/guide/_static/sections/edit_section_groups.png +0 -0
  34. data/guide/_static/sections/entries.png +0 -0
  35. data/guide/_static/sections/sections.png +0 -0
  36. data/guide/_static/settings/overview_general.png +0 -0
  37. data/guide/_static/settings/overview_security.png +0 -0
  38. data/guide/_static/settings/overview_user.png +0 -0
  39. data/guide/_static/users/edit_user.png +0 -0
  40. data/guide/_static/users/edit_user_group.png +0 -0
  41. data/guide/_static/users/edit_user_group_permissions.png +0 -0
  42. data/guide/_static/users/edit_user_permissions.png +0 -0
  43. data/guide/_static/users/overview.png +0 -0
  44. data/guide/_static/users/user_groups_overview.png +0 -0
  45. data/guide/asset_management.md +117 -0
  46. data/{CHANGELOG.md → guide/changelog.md} +42 -0
  47. data/guide/css/common.css +20 -0
  48. data/guide/getting_started.md +61 -0
  49. data/guide/hacking.md +52 -0
  50. data/guide/installation.md +44 -0
  51. data/guide/javascript.md +352 -0
  52. data/lib/vendor/sequel_sluggable.rb +137 -0
  53. data/lib/yard/tags.rb +13 -0
  54. data/lib/zen.rb +148 -78
  55. data/lib/zen/asset_groups.rb +85 -0
  56. data/lib/zen/bin/create.rb +267 -56
  57. data/lib/zen/bin/default.rb +84 -0
  58. data/lib/zen/controller/admin_controller.rb +1 -82
  59. data/lib/zen/controller/base_controller.rb +9 -5
  60. data/lib/zen/controller/frontend_controller.rb +0 -1
  61. data/lib/zen/controller/main_controller.rb +30 -42
  62. data/lib/zen/controller/preview.rb +9 -8
  63. data/lib/zen/controller/translations.rb +49 -0
  64. data/lib/zen/error.rb +17 -0
  65. data/lib/zen/event.rb +118 -0
  66. data/lib/zen/helper/asset.rb +63 -0
  67. data/lib/zen/helper/breadcrumb.rb +1 -4
  68. data/lib/zen/helper/controller.rb +73 -0
  69. data/lib/zen/helper/locale.rb +42 -0
  70. data/lib/zen/helper/message.rb +0 -3
  71. data/lib/zen/helper/search.rb +54 -0
  72. data/lib/zen/helper/stacked_aspect.rb +249 -0
  73. data/lib/zen/helper/theme.rb +3 -10
  74. data/lib/zen/language.rb +356 -181
  75. data/lib/zen/language/en/zen_general.rb +52 -0
  76. data/lib/zen/language/en/zen_models.rb +19 -0
  77. data/lib/zen/language/nl/zen_general.rb +57 -0
  78. data/lib/zen/language/nl/zen_models.rb +22 -0
  79. data/lib/zen/language/translation.rb +132 -0
  80. data/lib/zen/languages.rb +9 -0
  81. data/lib/zen/layout/admin.xhtml +3 -3
  82. data/lib/zen/layout/login.xhtml +1 -1
  83. data/lib/zen/markup.rb +189 -0
  84. data/lib/zen/model/helper.rb +65 -0
  85. data/lib/zen/model/init.rb +62 -0
  86. data/lib/zen/model/methods.rb +6 -7
  87. data/lib/zen/package.rb +312 -201
  88. data/lib/zen/package/all.rb +4 -3
  89. data/lib/zen/package/categories/lib/categories.rb +29 -41
  90. data/lib/zen/package/categories/lib/categories/controller/categories.rb +185 -130
  91. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +172 -102
  92. data/lib/zen/package/categories/lib/categories/helper/category.rb +4 -9
  93. data/lib/zen/package/categories/lib/categories/helper/category_frontend.rb +86 -0
  94. data/lib/zen/package/categories/lib/categories/language/en/categories.rb +40 -0
  95. data/lib/zen/package/categories/lib/categories/language/en/category_groups.rb +39 -0
  96. data/lib/zen/package/categories/lib/categories/language/nl/categories.rb +42 -0
  97. data/lib/zen/package/categories/lib/categories/language/nl/category_groups.rb +42 -0
  98. data/lib/zen/package/categories/lib/categories/model/category.rb +21 -25
  99. data/lib/zen/package/categories/lib/categories/model/category_group.rb +21 -15
  100. data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +25 -26
  101. data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +24 -24
  102. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +18 -20
  103. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +21 -18
  104. data/lib/zen/package/comments/lib/comments.rb +30 -50
  105. data/lib/zen/package/comments/lib/comments/anti_spam.rb +138 -0
  106. data/lib/zen/package/comments/lib/comments/controller/comments.rb +159 -92
  107. data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +122 -34
  108. data/lib/zen/package/comments/lib/comments/helper/comment.rb +0 -3
  109. data/lib/zen/package/comments/lib/comments/helper/comment_frontend.rb +90 -0
  110. data/lib/zen/package/comments/lib/comments/language/en/comments.rb +57 -0
  111. data/lib/zen/package/comments/lib/comments/language/nl/comments.rb +61 -0
  112. data/lib/zen/package/comments/lib/comments/model/comment.rb +147 -49
  113. data/lib/zen/package/comments/lib/comments/model/comment_status.rb +0 -2
  114. data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +37 -40
  115. data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +23 -42
  116. data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +12 -4
  117. data/lib/zen/package/comments/migrations/1313851786_remove_defensio_signature.rb +11 -0
  118. data/lib/zen/package/custom_fields/lib/custom_fields.rb +40 -43
  119. data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +72 -17
  120. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +154 -118
  121. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +147 -90
  122. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +161 -131
  123. data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +4 -9
  124. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +42 -0
  125. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.rb +51 -0
  126. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.rb +60 -0
  127. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.rb +41 -0
  128. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.rb +49 -0
  129. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.rb +61 -0
  130. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +18 -23
  131. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +20 -19
  132. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +1 -3
  133. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +19 -9
  134. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +18 -15
  135. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +18 -18
  136. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +30 -24
  137. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +15 -10
  138. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +24 -19
  139. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +18 -13
  140. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +30 -20
  141. data/lib/zen/package/extensions/lib/extensions.rb +20 -0
  142. data/lib/zen/package/extensions/lib/extensions/controller/extensions.rb +41 -0
  143. data/lib/zen/package/extensions/lib/extensions/language/en/extensions.rb +23 -0
  144. data/lib/zen/package/extensions/lib/extensions/language/nl/extensions.rb +25 -0
  145. data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +86 -0
  146. data/lib/zen/package/menu.rb +109 -0
  147. data/lib/zen/package/menus/lib/menus.rb +25 -34
  148. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +143 -107
  149. data/lib/zen/package/menus/lib/menus/controller/menus.rb +166 -115
  150. data/lib/zen/package/menus/lib/menus/helper/menu.rb +2 -8
  151. data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +114 -0
  152. data/lib/zen/package/menus/lib/menus/language/en/menu_items.rb +48 -0
  153. data/lib/zen/package/menus/lib/menus/language/en/menus.rb +48 -0
  154. data/lib/zen/package/menus/lib/menus/language/nl/menu_items.rb +48 -0
  155. data/lib/zen/package/menus/lib/menus/language/nl/menus.rb +50 -0
  156. data/lib/zen/package/menus/lib/menus/model/menu.rb +24 -17
  157. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +37 -13
  158. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +32 -25
  159. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +23 -17
  160. data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +31 -26
  161. data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +20 -22
  162. data/lib/zen/package/sections/lib/sections.rb +25 -68
  163. data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +178 -138
  164. data/lib/zen/package/sections/lib/sections/controller/sections.rb +173 -140
  165. data/lib/zen/package/sections/lib/sections/helper/section.rb +3 -6
  166. data/lib/zen/package/sections/lib/sections/helper/section_frontend.rb +146 -0
  167. data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +50 -0
  168. data/lib/zen/package/sections/lib/sections/language/en/sections.rb +55 -0
  169. data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +50 -0
  170. data/lib/zen/package/sections/lib/sections/language/nl/sections.rb +55 -0
  171. data/lib/zen/package/sections/lib/sections/model/section.rb +36 -36
  172. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +52 -59
  173. data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -2
  174. data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +24 -21
  175. data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +24 -26
  176. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +33 -31
  177. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +24 -25
  178. data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +14 -10
  179. data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +12 -6
  180. data/lib/zen/package/settings/lib/settings.rb +25 -120
  181. data/lib/zen/package/settings/lib/settings/blue_form_parameters.rb +157 -0
  182. data/lib/zen/package/settings/lib/settings/controller/settings.rb +94 -69
  183. data/lib/zen/package/settings/lib/settings/language/en/settings.rb +41 -0
  184. data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +41 -0
  185. data/lib/zen/package/settings/lib/settings/model/setting.rb +0 -2
  186. data/lib/zen/package/settings/lib/settings/setting.rb +379 -0
  187. data/lib/zen/package/settings/lib/settings/setting_groups.rb +11 -0
  188. data/lib/zen/package/settings/lib/settings/settings.rb +83 -0
  189. data/lib/zen/package/settings/lib/settings/settings_group.rb +84 -0
  190. data/lib/zen/package/settings/lib/settings/singleton_methods.rb +35 -0
  191. data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +15 -57
  192. data/lib/zen/package/settings/migrations/1321197919_remove_unused_columns.rb +17 -0
  193. data/lib/zen/package/users/lib/users.rb +51 -36
  194. data/lib/zen/package/users/lib/users/controller/user_groups.rb +133 -98
  195. data/lib/zen/package/users/lib/users/controller/users.rb +253 -136
  196. data/lib/zen/package/users/lib/users/helper/access.rb +102 -0
  197. data/lib/zen/package/users/lib/users/helper/acl.rb +113 -0
  198. data/lib/zen/package/users/lib/users/helper/users.rb +41 -24
  199. data/lib/zen/package/users/lib/users/language/en/permissions.rb +16 -0
  200. data/lib/zen/package/users/lib/users/language/en/user_groups.rb +39 -0
  201. data/lib/zen/package/users/lib/users/language/en/users.rb +73 -0
  202. data/lib/zen/package/users/lib/users/language/nl/permissions.rb +16 -0
  203. data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +41 -0
  204. data/lib/zen/package/users/lib/users/language/nl/users.rb +74 -0
  205. data/lib/zen/package/users/lib/users/model/permission.rb +28 -0
  206. data/lib/zen/package/users/lib/users/model/user.rb +104 -65
  207. data/lib/zen/package/users/lib/users/model/user_group.rb +28 -24
  208. data/lib/zen/package/users/lib/users/model/user_status.rb +27 -0
  209. data/lib/zen/package/users/lib/users/public/admin/css/users/permissions.css +22 -0
  210. data/lib/zen/package/users/lib/users/public/admin/js/users/permissions.js +33 -0
  211. data/lib/zen/package/users/lib/users/settings.rb +19 -0
  212. data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +58 -28
  213. data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +19 -15
  214. data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +93 -62
  215. data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +23 -36
  216. data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +13 -6
  217. data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +33 -0
  218. data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +52 -0
  219. data/lib/zen/package/users/migrations/1313786058_update_default_date.rb +41 -0
  220. data/lib/zen/package/users/migrations/1316432327_permissions.rb +36 -0
  221. data/lib/zen/package/users/migrations/1320272365_status_ids.rb +67 -0
  222. data/lib/zen/public/admin/css/zen/buttons.css +3 -11
  223. data/lib/zen/public/admin/css/zen/datepicker.css +23 -13
  224. data/lib/zen/public/admin/css/zen/editor.css +6 -14
  225. data/lib/zen/public/admin/css/zen/forms.css +19 -12
  226. data/lib/zen/public/admin/css/zen/general.css +22 -18
  227. data/lib/zen/public/admin/css/zen/grid.css +1 -20
  228. data/lib/zen/public/admin/css/zen/layout.css +26 -11
  229. data/lib/zen/public/admin/css/zen/messages.css +3 -10
  230. data/lib/zen/public/admin/css/zen/reset.css +13 -15
  231. data/lib/zen/public/admin/css/zen/tables.css +8 -10
  232. data/lib/zen/public/admin/css/zen/tabs.css +2 -10
  233. data/lib/zen/public/admin/css/zen/window.css +2 -8
  234. data/lib/zen/public/admin/js/vendor/datepicker.js +540 -240
  235. data/lib/zen/public/admin/js/vendor/mootools/core.js +273 -283
  236. data/lib/zen/public/admin/js/vendor/mootools/more.js +131 -136
  237. data/lib/zen/public/admin/js/zen/index.js +8 -14
  238. data/lib/zen/public/admin/js/zen/lib/editor.js +36 -33
  239. data/lib/zen/public/admin/js/zen/lib/editor/markdown.js +0 -6
  240. data/lib/zen/public/admin/js/zen/lib/editor/textile.js +0 -6
  241. data/lib/zen/public/admin/js/zen/lib/html_table.js +0 -5
  242. data/lib/zen/public/admin/js/zen/lib/tabs.js +22 -79
  243. data/lib/zen/public/admin/js/zen/lib/window.js +12 -22
  244. data/lib/zen/spec/bacon/color_output.rb +1 -1
  245. data/lib/zen/spec/helper.rb +6 -11
  246. data/lib/zen/spec/simplecov.rb +3 -3
  247. data/lib/zen/task.rb +0 -1
  248. data/lib/zen/task/build.rake +46 -26
  249. data/lib/zen/task/clean.rake +14 -7
  250. data/lib/zen/task/db.rake +31 -29
  251. data/lib/zen/task/package.rake +19 -23
  252. data/lib/zen/task/proto.rake +3 -5
  253. data/lib/zen/task/setup.rake +4 -0
  254. data/lib/zen/task/test.rake +31 -6
  255. data/lib/zen/task/theme.rake +13 -19
  256. data/lib/zen/theme.rb +377 -52
  257. data/lib/zen/validation.rb +22 -30
  258. data/lib/zen/version.rb +1 -2
  259. data/lib/zen/view/bottom.xhtml +9 -1
  260. data/lib/zen/view/head.xhtml +1 -1
  261. data/lib/zen/view/main.xhtml +1 -1
  262. data/lib/zen/view/search.xhtml +9 -0
  263. data/proto/app/Rakefile +0 -1
  264. data/proto/app/app.rb +21 -16
  265. data/proto/app/config/config.rb.erb +41 -0
  266. data/proto/app/config/{database.rb → database.rb.erb} +17 -14
  267. data/proto/app/config/middlewares.rb +1 -1
  268. data/proto/app/theme/default/index.xhtml +25 -0
  269. data/proto/app/theme/theme.rb +19 -0
  270. data/proto/app/{log/database/dev → tmp}/.gitkeep +0 -0
  271. data/proto/migration.rb +3 -5
  272. data/proto/rack/thin.yml +41 -0
  273. data/proto/rack/unicorn.rb +38 -0
  274. data/spec/Rakefile +15 -11
  275. data/spec/fixtures/zen/helper/controller.rb +13 -0
  276. data/spec/fixtures/zen/helper/locale.rb +7 -0
  277. data/spec/fixtures/zen/helper/message.rb +0 -4
  278. data/spec/fixtures/zen/language.rb +31 -0
  279. data/spec/fixtures/zen/language/en/spec.rb +11 -0
  280. data/spec/fixtures/zen/language/nl/spec.rb +11 -0
  281. data/spec/fixtures/zen/package.rb +0 -10
  282. data/spec/fixtures/zen/package/categories/helper/category_frontend.rb +16 -0
  283. data/spec/fixtures/zen/package/comments/helper/comment_frontend.rb +16 -0
  284. data/spec/fixtures/zen/package/sections/helper/section_frontend.rb +16 -0
  285. data/spec/fixtures/zen/package/settings/controller/settings.rb +17 -0
  286. data/spec/fixtures/zen/package/users/helper/access.rb +18 -0
  287. data/spec/fixtures/zen/package/users/helper/acl.rb +23 -0
  288. data/spec/fixtures/zen/theme/{default-section → default}/index.xhtml +0 -0
  289. data/spec/helper.rb +12 -27
  290. data/{proto/app/log/database/live → spec/public}/.gitkeep +0 -0
  291. data/spec/zen/controller/admin_controller.rb +5 -6
  292. data/spec/zen/controller/main_controller.rb +29 -35
  293. data/spec/zen/controller/preview.rb +9 -10
  294. data/spec/zen/event.rb +44 -0
  295. data/spec/zen/helper/breadcrumb.rb +4 -5
  296. data/spec/zen/helper/controller.rb +21 -0
  297. data/spec/zen/helper/locale.rb +25 -0
  298. data/spec/zen/helper/message.rb +4 -11
  299. data/spec/zen/helper/theme.rb +11 -14
  300. data/spec/zen/language.rb +48 -22
  301. data/spec/zen/markup.rb +39 -0
  302. data/spec/zen/package.rb +48 -11
  303. data/spec/zen/package/categories/controller/categories.rb +99 -45
  304. data/spec/zen/package/categories/controller/category_groups.rb +109 -33
  305. data/spec/zen/package/categories/helper/category.rb +19 -32
  306. data/spec/zen/package/categories/helper/category_frontend.rb +61 -0
  307. data/spec/zen/package/comments/anti_spam.rb +50 -0
  308. data/spec/zen/package/comments/controller/comments.rb +121 -61
  309. data/spec/zen/package/comments/controller/comments_form.rb +120 -94
  310. data/spec/zen/package/comments/helper/comment.rb +13 -13
  311. data/spec/zen/package/comments/helper/comment_frontend.rb +92 -0
  312. data/spec/zen/package/custom_fields/blue_form_parameters.rb +50 -50
  313. data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +135 -43
  314. data/spec/zen/package/custom_fields/controller/custom_field_types.rb +153 -48
  315. data/spec/zen/package/custom_fields/controller/custom_fields.rb +130 -51
  316. data/spec/zen/package/custom_fields/helper/custom_field.rb +8 -8
  317. data/spec/zen/package/extensions/controller/extensions.rb +38 -0
  318. data/spec/zen/package/menus/controller/menu_items.rb +121 -42
  319. data/spec/zen/package/menus/controller/menus.rb +125 -38
  320. data/spec/zen/package/menus/helper/menu.rb +26 -26
  321. data/spec/zen/package/menus/helper/menu_frontend.rb +104 -0
  322. data/spec/zen/package/sections/controller/section_entries.rb +145 -89
  323. data/spec/zen/package/sections/controller/sections.rb +130 -35
  324. data/spec/zen/package/sections/helper/section.rb +27 -38
  325. data/spec/zen/package/sections/helper/section_frontend.rb +160 -0
  326. data/spec/zen/package/settings/controller/settings.rb +73 -8
  327. data/spec/zen/package/settings/settings.rb +119 -0
  328. data/spec/zen/package/users/controller/user_groups.rb +134 -34
  329. data/spec/zen/package/users/controller/users.rb +189 -44
  330. data/spec/zen/package/users/helper/access.rb +29 -0
  331. data/spec/zen/package/users/helper/acl.rb +46 -0
  332. data/spec/zen/package/users/helper/users.rb +20 -64
  333. data/spec/zen/theme.rb +7 -9
  334. data/spec/zen/validation.rb +1 -2
  335. data/zen.gemspec +25 -22
  336. metadata +303 -222
  337. data/lib/zen/asset.rb +0 -292
  338. data/lib/zen/bin/runner.rb +0 -118
  339. data/lib/zen/error/language_error.rb +0 -10
  340. data/lib/zen/error/package_error.rb +0 -10
  341. data/lib/zen/error/plugin_error.rb +0 -10
  342. data/lib/zen/error/theme_error.rb +0 -10
  343. data/lib/zen/error/validation_error.rb +0 -10
  344. data/lib/zen/helper/acl.rb +0 -182
  345. data/lib/zen/helper/blue_form_vendor.rb +0 -689
  346. data/lib/zen/language/en/zen_general.yml +0 -25
  347. data/lib/zen/language/en/zen_models.yml +0 -13
  348. data/lib/zen/language/nl/zen_general.yml +0 -25
  349. data/lib/zen/language/nl/zen_models.yml +0 -13
  350. data/lib/zen/model/settings.rb +0 -78
  351. data/lib/zen/package/base.rb +0 -62
  352. data/lib/zen/package/categories/lib/categories/language/en/categories.yml +0 -36
  353. data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +0 -34
  354. data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +0 -40
  355. data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +0 -34
  356. data/lib/zen/package/categories/lib/categories/plugin/categories.rb +0 -141
  357. data/lib/zen/package/comments/lib/comments/language/en/comments.yml +0 -48
  358. data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +0 -50
  359. data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +0 -156
  360. data/lib/zen/package/comments/lib/comments/plugin/comments.rb +0 -115
  361. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +0 -33
  362. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +0 -40
  363. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +0 -54
  364. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +0 -33
  365. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +0 -40
  366. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +0 -54
  367. data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +0 -41
  368. data/lib/zen/package/menus/lib/menus/language/en/menus.yml +0 -40
  369. data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +0 -41
  370. data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +0 -40
  371. data/lib/zen/package/menus/lib/menus/plugin/menus.rb +0 -152
  372. data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +0 -44
  373. data/lib/zen/package/sections/lib/sections/language/en/sections.yml +0 -48
  374. data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +0 -44
  375. data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +0 -48
  376. data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +0 -244
  377. data/lib/zen/package/sections/lib/sections/plugin/sections.rb +0 -87
  378. data/lib/zen/package/settings/lib/settings/language/en/settings.yml +0 -36
  379. data/lib/zen/package/settings/lib/settings/language/nl/settings.yml +0 -37
  380. data/lib/zen/package/settings/lib/settings/plugin/group_base.rb +0 -39
  381. data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +0 -133
  382. data/lib/zen/package/settings/lib/settings/plugin/settings.rb +0 -251
  383. data/lib/zen/package/users/lib/users/controller/access_rules.rb +0 -284
  384. data/lib/zen/package/users/lib/users/language/en/access_rules.yml +0 -38
  385. data/lib/zen/package/users/lib/users/language/en/user_groups.yml +0 -32
  386. data/lib/zen/package/users/lib/users/language/en/users.yml +0 -57
  387. data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +0 -38
  388. data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +0 -32
  389. data/lib/zen/package/users/lib/users/language/nl/users.yml +0 -57
  390. data/lib/zen/package/users/lib/users/model/access_rule.rb +0 -42
  391. data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +0 -65
  392. data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +0 -49
  393. data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +0 -120
  394. data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +0 -102
  395. data/lib/zen/plugin.rb +0 -182
  396. data/lib/zen/plugin/base.rb +0 -46
  397. data/lib/zen/plugin/helper.rb +0 -47
  398. data/lib/zen/plugin/markup/lib/markup.rb +0 -14
  399. data/lib/zen/plugin/markup/lib/markup/language/en/markup.yml +0 -6
  400. data/lib/zen/plugin/markup/lib/markup/markup.rb +0 -165
  401. data/lib/zen/public/admin/js/zen/lib/asset.js +0 -111
  402. data/lib/zen/task/plugin.rake +0 -18
  403. data/lib/zen/theme/base.rb +0 -65
  404. data/proto/app/config/config.rb +0 -18
  405. data/spec/fixtures/zen/language/en/spec.yml +0 -10
  406. data/spec/fixtures/zen/language/nl/spec.yml +0 -7
  407. data/spec/fixtures/zen/package/settings/plugin/settings.rb +0 -20
  408. data/spec/zen/asset.rb +0 -97
  409. data/spec/zen/bin/create.rb +0 -89
  410. data/spec/zen/bin/runner.rb +0 -47
  411. data/spec/zen/helper/acl.rb +0 -149
  412. data/spec/zen/package/categories/plugin/categories.rb +0 -92
  413. data/spec/zen/package/comments/plugin/anti_spam.rb +0 -59
  414. data/spec/zen/package/comments/plugin/comments.rb +0 -107
  415. data/spec/zen/package/menus/plugin/menus.rb +0 -120
  416. data/spec/zen/package/sections/plugin/section_entries.rb +0 -161
  417. data/spec/zen/package/sections/plugin/sections.rb +0 -75
  418. data/spec/zen/package/settings/plugin/settings.rb +0 -33
  419. data/spec/zen/package/users/controller/access_rules.rb +0 -90
  420. data/spec/zen/plugin.rb +0 -64
  421. data/spec/zen/plugin/helper.rb +0 -11
  422. data/spec/zen/plugin/markup.rb +0 -44
@@ -1,16 +1,13 @@
1
- require __DIR__('error/validation_error')
2
-
3
- #:nodoc:
4
1
  module Zen
5
2
  ##
6
- # The Validation module is a very basic validation framework that's used by
3
+ # The Validation module is a very basic validation framework that's used by
7
4
  # various internal modules/classes such as Zen::Plugin and Zen::Package.
8
5
  #
9
6
  # ## Usage
10
7
  #
11
- # Using the module is pretty simple. Include it, specify the validation rules
12
- # in a method and call it. All official modules and classes use a method
13
- # called "validate" but you're free to name it whatever you want. A basic
8
+ # Using the module is pretty simple. Include it, specify the validation rules
9
+ # in a method and call it. All official modules and classes use a method
10
+ # called "validate" but you're free to name it whatever you want. A basic
14
11
  # example looks like the following:
15
12
  #
16
13
  # class Something
@@ -23,7 +20,6 @@ module Zen
23
20
  # end
24
21
  # end
25
22
  #
26
- # @author Yorick Peterse
27
23
  # @since 0.2.5
28
24
  #
29
25
  module Validation
@@ -33,12 +29,11 @@ module Zen
33
29
  # @example
34
30
  # validates_presence(:name)
35
31
  #
36
- # @author Yorick Peterse
37
32
  # @since 0.2.5
38
- # @param [Array/Symbol/String] attributes Either a single or multiple
39
- # attributes to validate.
40
- # @raise [ValidationError] Raised whenever a attribute is missing or is
41
- # set to nil.
33
+ # @param [Array/Symbol/String] attributes Either a single or multiple
34
+ # attributes to validate.
35
+ # @raise [ValidationError] Raised whenever a attribute is missing or is
36
+ # set to nil.
42
37
  #
43
38
  def validates_presence(attributes)
44
39
  if attributes.class != Array
@@ -53,21 +48,20 @@ module Zen
53
48
  end
54
49
 
55
50
  ##
56
- # Checks if the length of a string matches the given length. You can specify
51
+ # Checks if the length of a string matches the given length. You can specify
57
52
  # a minimum length, a maximum one as well as both.
58
53
  #
59
54
  # @example
60
55
  # validates_length(:foobar, :min => 5, :max => 10)
61
56
  #
62
- # @author Yorick Peterse
63
57
  # @since 0.2.5
64
58
  # @param [String/Symbol] attribute The attribute to validate.
65
- # @param [Hash] options Hash containing the options to use for determining
66
- # how long the attribute's value should be.
59
+ # @param [Hash] options Hash containing the options to use for determining
60
+ # how long the attribute's value should be.
67
61
  # @option options [Fixnum] :min The minimum length of the attribute's value.
68
62
  # @option options [Fixnum] :max The maximum length of the value.
69
- # @raise [ValidationError] Raised then the value of the attribute isn't
70
- # long or short enough.
63
+ # @raise [ValidationError] Raised then the value of the attribute isn't
64
+ # long or short enough.
71
65
  #
72
66
  def validates_length(attribute, options)
73
67
  value = send(attribute)
@@ -94,21 +88,20 @@ module Zen
94
88
 
95
89
  ##
96
90
  # Checks if the given attributes match the specified regular expressions.
97
- # When a hash is specified the keys should be the names of the attributes to
91
+ # When a hash is specified the keys should be the names of the attributes to
98
92
  # validate and the values the regular expressions to use.
99
93
  #
100
94
  # @example
101
95
  # validates_format(:name, /[\w\-]+/)
102
96
  # validates_format(:name => /[\w\-]+/, :age => /[0-9]+/)
103
97
  #
104
- # @author Yorick Peterse
105
98
  # @since 0.2.5
106
- # @param [Hash/Symbol] attribute The name of the attribute to validate or
107
- # a hash containing all the attributes and their regular expressions.
108
- # @param [Regexp] regexp The regular expression to use when validating a
109
- # single attribute.
110
- # @raise [ValidationError] Raised when one of the attributes doesn't matches
111
- # the regular expression.
99
+ # @param [Hash/Symbol] attribute The name of the attribute to validate or
100
+ # a hash containing all the attributes and their regular expressions.
101
+ # @param [Regexp] regexp The regular expression to use when validating a
102
+ # single attribute.
103
+ # @raise [ValidationError] Raised when one of the attributes doesn't matches
104
+ # the regular expression.
112
105
  #
113
106
  def validates_format(attribute, regexp = nil)
114
107
  if attribute.class != Hash
@@ -122,7 +115,7 @@ module Zen
122
115
 
123
116
  if !match
124
117
  raise(
125
- ValidationError,
118
+ ValidationError,
126
119
  "The attribute \"#{attr}\" doesn't match #{regexp}"
127
120
  )
128
121
  end
@@ -135,7 +128,6 @@ module Zen
135
128
  # @example
136
129
  # validates_filepath(:directory)
137
130
  #
138
- # @author Yorick Peterse
139
131
  # @since 0.2.5
140
132
  # @param [String/Symbol] attribute The attribute to validate.
141
133
  # @raise [ValidationError] Raised when one of the paths didn't exist.
@@ -145,7 +137,7 @@ module Zen
145
137
 
146
138
  if !File.exist?(path)
147
139
  raise(
148
- ValidationError,
140
+ ValidationError,
149
141
  "The path #{path} in \"#{attribute}\" doesn't exist."
150
142
  )
151
143
  end
data/lib/zen/version.rb CHANGED
@@ -1,5 +1,4 @@
1
- #:nodoc:
2
1
  module Zen
3
2
  # :nodoc:
4
- Version = '0.2.8'
3
+ VERSION = '0.3b'
5
4
  end
@@ -1 +1,9 @@
1
- #{Zen::Asset.build(:javascript)}
1
+ <script>
2
+ var Zen = {
3
+ date_format: "#{date_format}",
4
+ };
5
+ </script>
6
+
7
+ <script src="/admin/js/zen/lib/translations.js"></script>
8
+
9
+ #{Zen.asset.build_html(:javascript)}
@@ -2,6 +2,6 @@
2
2
 
3
3
  <link rel="shortcut icon" href="/admin/favicon.ico" />
4
4
 
5
- #{Zen::Asset.build(:stylesheet)}
5
+ #{Zen.asset.build_html(:css)}
6
6
 
7
7
  <title>#{@page_title}</title>
@@ -12,7 +12,7 @@
12
12
  #{lang('zen_general.labels.powered_by')}
13
13
 
14
14
  <a href="http://zen-cms.com/">
15
- Zen #{Zen::Version}
15
+ Zen #{Zen::VERSION}
16
16
  </a>
17
17
  </p>
18
18
  </div>
@@ -0,0 +1,9 @@
1
+ <form action="#{@url}"
2
+ method="get" id="search_form">
3
+ <input name="query" type="text" value="#{request.params['query']}"
4
+ placeholder="#{lang('zen_general.descriptions.search')}" />
5
+
6
+ <div class="button">
7
+ <input type="submit" value="#{lang('zen_general.buttons.search')}" />
8
+ </div>
9
+ </form>
data/proto/app/Rakefile CHANGED
@@ -9,4 +9,3 @@ if File.directory?(task_dir)
9
9
  import task
10
10
  end
11
11
  end
12
-
data/proto/app/app.rb CHANGED
@@ -1,23 +1,28 @@
1
+ # This is the main file of your application. It loads various configuration
2
+ # files, your themes and starts your application.
1
3
  require 'zen'
2
- require 'ramaze/log/rotatinginformer'
3
4
 
4
- # Load the configuration files
5
- require __DIR__('config/config')
5
+ # Depending on your database adapter you might need to install extra Gems.
6
+ # Ramaze makes it easy to automatically install and require these using
7
+ # Ramaze.setup(). For example, if you want to automatically load the mysql2 gem
8
+ # you'd do this as following:
9
+ #
10
+ # Ramaze.setup(:verbose => false) do
11
+ # gem 'mysql2'
12
+ # end
13
+ #
6
14
 
7
- # Load all our custom Rack middlewares
15
+ # Load all the configuration files.
16
+ require __DIR__('config/config')
8
17
  require __DIR__('config/middlewares')
9
-
10
- # Load the database configuration file
11
18
  require __DIR__('config/database')
12
19
 
13
- # Make sure that Ramaze knows where you are
14
- Ramaze.options.roots.push(Zen.root)
15
-
16
- # Load the database
17
- Zen.init
18
-
19
- # Load all the packages
20
- require 'zen/package/all'
20
+ # Load the default theme. You're free to change this or remove it.
21
+ require __DIR__('theme/theme')
21
22
 
22
- # Almost done!
23
- Zen.post_init
23
+ # Starts Zen. While you can still load custom files after calling this method it
24
+ # is not recommended as it may lead to unexpected behavior. Zen itself tries not
25
+ # to cache anything in memory unless required, however it could be that a
26
+ # third-party extension does do this. Because of this it is recommended to just
27
+ # put your require() calls before calling this method.
28
+ Zen.start
@@ -0,0 +1,41 @@
1
+ # Main configuration file for your project. This file should contain settings
2
+ # such as the path to the root directory, the mode to use for Ramaze (dev, live,
3
+ # etc) and various cache related settings.
4
+ #
5
+ # Because this file is loaded using require() like any other file you're free to
6
+ # add statements and custom code in this configuration file.
7
+
8
+ # The root directory of your application. This directory will be used for
9
+ # various settings by Zen and is therefor required.
10
+ Zen.root = __DIR__('../')
11
+
12
+ # The application mode to use. Based on different modes your application might
13
+ # behave differently. For example, when set to :dev assets will not be minified.
14
+ Ramaze.options.mode = :dev
15
+
16
+ # The name of your application. Its very important that this name is unique,
17
+ # especially when a cache is shared among different Ramaze applications. If
18
+ # these applications were to use the same name they might end up retrieving the
19
+ # wrong data.
20
+ Ramaze.options.app.name = :<%= PROJECT_SETTINGS[:name] %>
21
+
22
+ # The session identifier to use for cookies.
23
+ Ramaze.options.session.key = '<%= PROJECT_SETTINGS[:name] %>.sid'
24
+
25
+ # Whether or not views should be cached after they've been read or pre-compiled.
26
+ # It is recommended to turn this off when developing your application. By
27
+ # default these settings are automatically set based on the mode specified in
28
+ # Ramaze.options.mode.
29
+ Ramaze::View.options.cache = Ramaze.options.mode == :live
30
+ Ramaze::View.options.read_cache = Ramaze.options.mode == :live
31
+
32
+ # The cache driver to use for sessions. If you're running your application using
33
+ # multiple processes (e.g. 3 Unicorn workers) you should use an external cache
34
+ # such as Ramaze::Cache::MemCache. Not doing this will result in synchronization
35
+ # problems between these processes.
36
+ Ramaze::Cache.options.session = Ramaze::Cache::LRU
37
+
38
+ # The cache driver to use for storing settings. Similar to
39
+ # Ramaze::Cache.options.session you should use an external cache in case you're
40
+ # running a multi-process based setup.
41
+ Ramaze::Cache.options.settings = Ramaze::Cache::LRU
@@ -1,6 +1,12 @@
1
- # It's recommended to create a separate database user for your Zen application
2
- # and prevent it from being able to access other databases. Zen is new and may
3
- # allow hackers to exploit the system.
1
+ # Database configuration file for Zen.
2
+ #
3
+ # This configuration file should contain all the required details to make it
4
+ # possible for Zen to connect to a SQL database.
5
+ #
6
+ # Keep in mind that it is recommended to add this file to your VCS' ignore list
7
+ # and instead only keep track of a default configuration file (e.g.
8
+ # database.default.rb). Doing this means your passwords and usernames don't end
9
+ # up being tracked by your VCS.
4
10
  #
5
11
  # The following items can be set:
6
12
  #
@@ -16,21 +22,18 @@
16
22
  #
17
23
  # Fore more information see the Sequel documentation:
18
24
  # http://sequel.rubyforge.org/rdoc/files/doc/opening_databases_rdoc.html
25
+ #
19
26
  Zen.database = Sequel.connect(
20
- :adapter => '',
21
- :host => 'localhost',
22
- :username => '',
23
- :password => '',
24
- :database => '',
27
+ :adapter => '<%= PROJECT_SETTINGS[:database][:adapter] %>',
28
+ :username => '<%= PROJECT_SETTINGS[:database][:username] %>',
29
+ :password => '<%= PROJECT_SETTINGS[:database][:password] %>',
30
+ :database => '<%= PROJECT_SETTINGS[:database][:database] %>',
25
31
  :test => true,
26
- :encoding => 'utf8',
27
- :logger => Ramaze::Logger::RotatingInformer.new(
28
- __DIR__("../log/database/dev"), '%d-%m-%Y.log'
29
- )
32
+ :encoding => 'utf8'
30
33
  )
31
34
 
32
- # IMPORTANT, when running MySQL the engine should be set to InnoDB in order for
33
- # foreign keys to work properly.
35
+ # When running MySQL the engine should be set to InnoDB in order for foreign
36
+ # keys to work properly.
34
37
  if Zen.database.adapter_scheme.to_s.include?('mysql')
35
38
  Sequel::MySQL.default_engine = 'InnoDB'
36
39
  end
@@ -6,7 +6,7 @@
6
6
  # For development purposes we'll be loading various middlewares to make it
7
7
  # easier to detect errors, reloading the code and so on.
8
8
  #
9
- Ramaze.middleware! :dev do |m|
9
+ Ramaze.middleware!(:dev) do |m|
10
10
  # Rack::Lint is used to validate all code according to the Rack specification.
11
11
  # It's not recommended to use this middleware in a production environment as
12
12
  # it will slow your application down a bit.
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE HTML>
2
+ <html lang="#{get_setting(:frontend_language).value}">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+
6
+ <title>#{get_setting(:website_name).value}</title>
7
+ </head>
8
+ <body>
9
+ <h1>#{get_setting(:website_name).value}</h1>
10
+
11
+ <p>
12
+ Congratulations, you have successfully set up your Zen application.
13
+ For more information on how to create a website using Zen you should
14
+ take a look at the
15
+ <a href="http://zen-cms.com/documentation/index.html">
16
+ documentation
17
+ </a>.
18
+ </p>
19
+
20
+ <p>
21
+ If you want to log in instead you can do so by going to the
22
+ <a href="/admin/users/login">admin panel</a>.
23
+ </p>
24
+ </body>
25
+ </html>
@@ -0,0 +1,19 @@
1
+ # Registers a new theme to use for this project. See
2
+ # http://zen-cms.com/documentation/Zen/Theme.html for more information on all
3
+ # the available options and working with themes in general.
4
+ Zen::Theme.add do |theme|
5
+ # The unique name of the theme specified as a symbol (required).
6
+ theme.name = :default
7
+
8
+ # The name of the author of the theme (required).
9
+ theme.author = 'Zen'
10
+
11
+ # A URL that points to a website/web page related to the theme.
12
+ theme.url = 'http://zen-cms.com/'
13
+
14
+ # A short description of the theme (required).
15
+ theme.about = 'The default theme for Zen.'
16
+
17
+ # The directory containing all the templates (required).
18
+ theme.templates = __DIR__
19
+ end
File without changes
data/proto/migration.rb CHANGED
@@ -1,11 +1,9 @@
1
1
  Sequel.migration do
2
- # Updates the database with the changes specified in the block.
3
2
  up do
4
-
3
+
5
4
  end
6
-
7
- # Reverts the changes made in the up() block.
5
+
8
6
  down do
9
-
7
+
10
8
  end
11
9
  end
@@ -0,0 +1,41 @@
1
+ ---
2
+ # Configuration file for Thin. Thin can be installed by running the following
3
+ # shell command:
4
+ #
5
+ # $ gem install thin
6
+ #
7
+ # Once installed you can use the thin shell command to start/stop your
8
+ # application.
9
+
10
+ # Listen to 0.0.0.0:7000 by default.
11
+ port: 7000
12
+
13
+ # If you want to use a Unix socket instead uncomment the line below and make
14
+ # sure that the path points to a valid Unix socket.
15
+ #
16
+ # socket: 'path/to/socket'
17
+
18
+ # When set to true Thin will detach itself from the terminal and run as a
19
+ # daemon.
20
+ daemonize: false
21
+
22
+ # Path to the PID file to use for each Thin worker.
23
+ pid: tmp/thin.pid
24
+
25
+ # The user and group to use for each Thin process. It is recommended that you
26
+ # run your application using its own user and group.
27
+ #
28
+ # user: 'username'
29
+ # group: 'groupname'
30
+
31
+ # The amount of worker processes to start. It's very important to remember that
32
+ # setting this option above 1 requires you to use a Ramaze cache that stores
33
+ # it's data outside of each process' memory. An example of such a cache is
34
+ # Ramaze::Cache::MemCache. When doing so you should set the following caches:
35
+ #
36
+ # * Ramaze::Cache.options.session
37
+ # * Ramaze::Cache.options.settings
38
+ #
39
+ # Without this data will not be synced between Unicorn workers causing all kind
40
+ # of weird things to happen.
41
+ servers: 1
@@ -0,0 +1,38 @@
1
+ # Configuration file for Unicorn. Unicorn can be installed by running the
2
+ # following shell command:
3
+ #
4
+ # $ gem install unicorn
5
+ #
6
+ # After it's installed you can use it by invoking the unicorn shell command.
7
+ #
8
+ # For more information on all the available options see the following page:
9
+ # http://unicorn.bogomips.org/Unicorn/Configurator.html
10
+
11
+ # The working_directory option contains the path to the directory of your
12
+ # application.
13
+ working_directory File.expand_path('../../', __FILE__)
14
+
15
+ # The amount of worker processes to start. It's very important to remember that
16
+ # setting this option above 1 requires you to use a Ramaze cache that stores
17
+ # it's data outside of each process' memory. An example of such a cache is
18
+ # Ramaze::Cache::MemCache. When doing so you should set the following caches:
19
+ #
20
+ # * Ramaze::Cache.options.session
21
+ # * Ramaze::Cache.options.settings
22
+ #
23
+ # Without this data will not be synced between Unicorn workers causing all kind
24
+ # of weird things to happen.
25
+ worker_processes 1
26
+
27
+ # Listen to localhost:7000 by default. You can specify either a port or a path
28
+ # to a Unix socket.
29
+ listen 7000
30
+
31
+ # The user and user group to use for the application. It is recommended that you
32
+ # run the application using a dedicated user.
33
+ # user 'USER', 'GROUP'
34
+
35
+ # Path to the file that will contain the PID of each unicorn worker. If you're
36
+ # running multiple workers Unicorn will create multiple PIDs using the specified
37
+ # name and suffix them with a number.
38
+ pid File.expand_path('../../tmp/unicorn.pid', __FILE__)