zen 0.1a → 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (414) hide show
  1. data/CHANGELOG.md +17 -0
  2. data/MANIFEST +161 -264
  3. data/README.md +114 -0
  4. data/ROADMAP.md +31 -0
  5. data/Thorfile +8 -0
  6. data/lib/zen.rb +13 -10
  7. data/lib/zen/base/database.rb +34 -28
  8. data/lib/zen/base/language.rb +174 -92
  9. data/lib/zen/base/logger.rb +8 -6
  10. data/lib/zen/base/package.rb +36 -29
  11. data/lib/zen/base/version.rb +2 -1
  12. data/lib/zen/bin/zen_binary.rb +7 -71
  13. data/lib/zen/controller/admin_controller.rb +31 -11
  14. data/lib/zen/controller/base_controller.rb +13 -13
  15. data/lib/zen/controller/frontend_controller.rb +2 -0
  16. data/lib/zen/controller/main_controller.rb +9 -8
  17. data/lib/zen/helper/acl.rb +4 -1
  18. data/lib/zen/helper/asset.rb +5 -3
  19. data/lib/zen/helper/breadcrumb.rb +10 -8
  20. data/lib/zen/helper/common.rb +28 -13
  21. data/lib/zen/language/en/zen_general.yml +31 -0
  22. data/lib/zen/language/en/zen_models.yml +13 -0
  23. data/lib/zen/layout/admin.xhtml +76 -68
  24. data/lib/zen/layout/login.xhtml +48 -42
  25. data/lib/zen/liquid/controller_behavior.rb +2 -0
  26. data/lib/zen/liquid/general.rb +60 -9
  27. data/lib/zen/liquid/redirect.rb +29 -6
  28. data/lib/zen/liquid/strip.rb +3 -1
  29. data/lib/zen/model/methods.rb +7 -5
  30. data/lib/zen/model/settings.rb +69 -18
  31. data/lib/zen/package/all.rb +7 -0
  32. data/lib/zen/{packages → package}/categories/lib/categories.rb +3 -3
  33. data/lib/zen/package/categories/lib/categories/controller/categories.rb +250 -0
  34. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +216 -0
  35. data/lib/zen/package/categories/lib/categories/language/en/categories.yml +35 -0
  36. data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +32 -0
  37. data/lib/zen/package/categories/lib/categories/liquid/categories.rb +16 -0
  38. data/lib/zen/{packages → package}/categories/lib/categories/model/category.rb +9 -9
  39. data/lib/zen/{packages → package}/categories/lib/categories/model/category_group.rb +6 -4
  40. data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +7 -0
  41. data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +59 -0
  42. data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +78 -0
  43. data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +7 -0
  44. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +7 -0
  45. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +31 -0
  46. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +85 -0
  47. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +7 -0
  48. data/lib/zen/{packages → package}/categories/migrations/.gitkeep +0 -0
  49. data/lib/zen/{packages → package}/categories/migrations/1295282303_create_schema.rb +3 -2
  50. data/lib/zen/{packages → package}/comments/lib/comments.rb +1 -1
  51. data/lib/zen/{packages → package}/comments/lib/comments/controller/comments.rb +81 -41
  52. data/lib/zen/{packages → package}/comments/lib/comments/controller/comments_form.rb +15 -13
  53. data/lib/zen/package/comments/lib/comments/language/en/comments.yml +42 -0
  54. data/lib/zen/{packages → package}/comments/lib/comments/liquid/comment_form.rb +43 -13
  55. data/lib/zen/{packages → package}/comments/lib/comments/liquid/comments.rb +10 -12
  56. data/lib/zen/{packages → package}/comments/lib/comments/model/comment.rb +24 -0
  57. data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +7 -0
  58. data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +57 -0
  59. data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +79 -0
  60. data/lib/zen/{packages → package}/comments/migrations/.gitkeep +0 -0
  61. data/lib/zen/{packages → package}/comments/migrations/1295282202_create_schema.rb +6 -4
  62. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields.rb +2 -2
  63. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +224 -0
  64. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +259 -0
  65. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +32 -0
  66. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +52 -0
  67. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field.rb +12 -7
  68. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field_group.rb +14 -4
  69. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field_value.rb +4 -2
  70. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +7 -0
  71. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +30 -0
  72. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +100 -0
  73. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +7 -0
  74. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +7 -0
  75. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +107 -0
  76. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +84 -0
  77. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +7 -0
  78. data/lib/zen/{packages → package}/custom_fields/migrations/.gitkeep +0 -0
  79. data/lib/zen/{packages → package}/custom_fields/migrations/1295255665_create_schema.rb +8 -7
  80. data/lib/zen/package/menus/lib/menus.rb +59 -0
  81. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +244 -0
  82. data/lib/zen/package/menus/lib/menus/controller/menus.rb +231 -0
  83. data/lib/zen/package/menus/lib/menus/helper/menu_item.rb +93 -0
  84. data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +41 -0
  85. data/lib/zen/package/menus/lib/menus/language/en/menus.yml +39 -0
  86. data/lib/zen/package/menus/lib/menus/liquid/menus.rb +152 -0
  87. data/lib/zen/package/menus/lib/menus/model/menu.rb +38 -0
  88. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +33 -0
  89. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +7 -0
  90. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +64 -0
  91. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +84 -0
  92. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +7 -0
  93. data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +7 -0
  94. data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +42 -0
  95. data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +95 -0
  96. data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +7 -0
  97. data/lib/zen/{packages/sections → package/menus}/migrations/.gitkeep +0 -0
  98. data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +33 -0
  99. data/lib/zen/{packages → package}/sections/lib/sections.rb +0 -0
  100. data/lib/zen/{packages → package}/sections/lib/sections/controller/section_entries.rb +132 -68
  101. data/lib/zen/{packages → package}/sections/lib/sections/controller/sections.rb +96 -48
  102. data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +43 -0
  103. data/lib/zen/package/sections/lib/sections/language/en/sections.yml +48 -0
  104. data/lib/zen/{packages → package}/sections/lib/sections/liquid/section_entries.rb +55 -43
  105. data/lib/zen/{packages → package}/sections/lib/sections/liquid/sections.rb +9 -8
  106. data/lib/zen/package/sections/lib/sections/model/section.rb +62 -0
  107. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +53 -0
  108. data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +7 -0
  109. data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +107 -0
  110. data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +93 -0
  111. data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +7 -0
  112. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +7 -0
  113. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +233 -0
  114. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +82 -0
  115. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +7 -0
  116. data/lib/zen/{packages/settings → package/sections}/migrations/.gitkeep +0 -0
  117. data/lib/zen/{packages → package}/sections/migrations/1295251836_create_schema.rb +6 -6
  118. data/lib/zen/{packages → package}/settings/lib/settings.rb +0 -0
  119. data/lib/zen/{packages → package}/settings/lib/settings/controller/settings.rb +33 -24
  120. data/lib/zen/package/settings/lib/settings/language/en/settings.yml +26 -0
  121. data/lib/zen/{packages → package}/settings/lib/settings/liquid/setting.rb +5 -3
  122. data/lib/zen/package/settings/lib/settings/model/setting.rb +113 -0
  123. data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +111 -0
  124. data/lib/zen/{packages/users → package/settings}/migrations/.gitkeep +0 -0
  125. data/lib/zen/{packages → package}/settings/migrations/1295597111_create_schema.rb +2 -2
  126. data/lib/zen/package/settings/migrations/1299538742_add_language_key.rb +62 -0
  127. data/lib/zen/{packages → package}/users/lib/users.rb +6 -2
  128. data/lib/zen/package/users/lib/users/controller/access_rules.rb +238 -0
  129. data/lib/zen/package/users/lib/users/controller/user_groups.rb +217 -0
  130. data/lib/zen/{packages → package}/users/lib/users/controller/users.rb +115 -57
  131. data/lib/zen/package/users/lib/users/language/en/access_rules.yml +35 -0
  132. data/lib/zen/package/users/lib/users/language/en/user_groups.yml +31 -0
  133. data/lib/zen/package/users/lib/users/language/en/users.yml +50 -0
  134. data/lib/zen/{packages → package}/users/lib/users/liquid/user.rb +8 -6
  135. data/lib/zen/{packages → package}/users/lib/users/liquid/users.rb +5 -3
  136. data/lib/zen/{packages → package}/users/lib/users/model/access_rule.rb +11 -3
  137. data/lib/zen/{packages → package}/users/lib/users/model/user.rb +5 -1
  138. data/lib/zen/{packages → package}/users/lib/users/model/user_group.rb +6 -3
  139. data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +42 -0
  140. data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +7 -0
  141. data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +108 -0
  142. data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +93 -0
  143. data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +7 -0
  144. data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +7 -0
  145. data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +37 -0
  146. data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +76 -0
  147. data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +7 -0
  148. data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +7 -0
  149. data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +53 -0
  150. data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +81 -0
  151. data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +27 -0
  152. data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +7 -0
  153. data/{pkg → lib/zen/package/users/migrations}/.gitkeep +0 -0
  154. data/lib/zen/{packages → package}/users/migrations/1295281013_create_schema.rb +2 -2
  155. data/lib/zen/public/admin/css/boilerplate.css +62 -60
  156. data/lib/zen/public/admin/css/buttons.css +46 -0
  157. data/lib/zen/public/admin/css/datepicker.css +163 -0
  158. data/lib/zen/public/admin/css/editor.css +91 -0
  159. data/lib/zen/public/admin/css/forms.css +68 -0
  160. data/lib/zen/public/admin/css/general.css +34 -419
  161. data/lib/zen/public/admin/css/grid.css +26 -26
  162. data/lib/zen/public/admin/css/layout.css +73 -62
  163. data/lib/zen/public/admin/css/modals.css +63 -0
  164. data/lib/zen/public/admin/css/notifications.css +84 -0
  165. data/lib/zen/public/admin/css/tables.css +71 -0
  166. data/lib/zen/public/admin/css/tabs.css +53 -0
  167. data/lib/zen/public/admin/js/mootools/more.js +139 -51
  168. data/lib/zen/public/admin/js/vendor/datepicker/Picker.Attach.js +137 -0
  169. data/lib/zen/public/admin/js/vendor/datepicker/Picker.Date.js +576 -0
  170. data/lib/zen/public/admin/js/vendor/datepicker/Picker.js +291 -0
  171. data/lib/zen/public/admin/js/vendor/datepicker/README.md +325 -0
  172. data/lib/zen/public/admin/js/vendor/datepicker/locale.js +16 -0
  173. data/lib/zen/public/admin/js/zen/editor/base.js +173 -183
  174. data/lib/zen/public/admin/js/zen/editor/drivers/html.js +74 -89
  175. data/lib/zen/public/admin/js/zen/editor/drivers/markdown.js +72 -87
  176. data/lib/zen/public/admin/js/zen/editor/drivers/textile.js +72 -87
  177. data/lib/zen/public/admin/js/zen/init.js +65 -51
  178. data/lib/zen/public/admin/js/zen/modal.js +108 -121
  179. data/lib/zen/public/admin/js/zen/notification.js +163 -165
  180. data/lib/zen/public/admin/js/zen/tabs.js +203 -210
  181. data/lib/zen/task/build.rb +123 -0
  182. data/lib/zen/task/clean.rb +46 -0
  183. data/lib/zen/task/db.rb +120 -0
  184. data/lib/zen/task/package.rb +82 -0
  185. data/lib/zen/task/proto.rb +116 -0
  186. data/{LICENSE → license.txt} +2 -2
  187. data/proto/app/Thorfile +4 -0
  188. data/proto/app/config/middlewares.rb +3 -3
  189. data/proto/app/config/requires.rb +1 -6
  190. data/proto/app/start.rb +5 -10
  191. data/{lib/zen/packages/settings → proto/package}/LICENSE +0 -0
  192. data/{lib/zen/packages/categories → proto/package}/README.textile +0 -0
  193. data/proto/package/lib/package.rb +41 -0
  194. data/proto/{module/lib/module → package/lib/package}/controller/controllers.rb +3 -2
  195. data/proto/{module/lib/module → package/lib/package}/language/en/languages.rb +0 -0
  196. data/proto/{module/lib/module → package/lib/package}/model/model.rb +0 -0
  197. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/edit.xhtml +0 -0
  198. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/form.xhtml +0 -0
  199. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/index.xhtml +0 -0
  200. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/new.xhtml +0 -0
  201. data/proto/{module → package}/migrations/.gitkeep +0 -0
  202. metadata +199 -280
  203. data/README.textile +0 -42
  204. data/Rakefile +0 -6
  205. data/doc/Categories.html +0 -93
  206. data/doc/Categories/Controllers.html +0 -93
  207. data/doc/Categories/Controllers/Categories.html +0 -995
  208. data/doc/Categories/Controllers/CategoryGroups.html +0 -878
  209. data/doc/Categories/Models.html +0 -97
  210. data/doc/Categories/Models/Category.html +0 -269
  211. data/doc/Categories/Models/CategoryGroup.html +0 -231
  212. data/doc/Comments.html +0 -93
  213. data/doc/Comments/Controllers.html +0 -93
  214. data/doc/Comments/Controllers/Comments.html +0 -797
  215. data/doc/Comments/Controllers/CommentsForm.html +0 -487
  216. data/doc/Comments/Liquid.html +0 -93
  217. data/doc/Comments/Liquid/CommentForm.html +0 -522
  218. data/doc/Comments/Liquid/Comments.html +0 -543
  219. data/doc/Comments/Models.html +0 -95
  220. data/doc/Comments/Models/Comment.html +0 -260
  221. data/doc/CustomFields.html +0 -93
  222. data/doc/CustomFields/Controllers.html +0 -93
  223. data/doc/CustomFields/Controllers/CustomFieldGroups.html +0 -902
  224. data/doc/CustomFields/Controllers/CustomFields.html +0 -974
  225. data/doc/CustomFields/Models.html +0 -97
  226. data/doc/CustomFields/Models/CustomField.html +0 -272
  227. data/doc/CustomFields/Models/CustomFieldGroup.html +0 -259
  228. data/doc/CustomFields/Models/CustomFieldValue.html +0 -154
  229. data/doc/Ramaze.html +0 -93
  230. data/doc/Ramaze/Helper.html +0 -93
  231. data/doc/Ramaze/Helper/ACL.html +0 -531
  232. data/doc/Ramaze/Helper/Asset.html +0 -617
  233. data/doc/Ramaze/Helper/Breadcrumb.html +0 -411
  234. data/doc/Ramaze/Helper/Common.html +0 -738
  235. data/doc/Sections.html +0 -93
  236. data/doc/Sections/Controllers.html +0 -93
  237. data/doc/Sections/Controllers/SectionEntries.html +0 -1100
  238. data/doc/Sections/Controllers/Sections.html +0 -953
  239. data/doc/Sections/Liquid.html +0 -93
  240. data/doc/Sections/Liquid/SectionEntries.html +0 -674
  241. data/doc/Sections/Liquid/Sections.html +0 -494
  242. data/doc/Sections/Models.html +0 -97
  243. data/doc/Sections/Models/Section.html +0 -272
  244. data/doc/Sections/Models/SectionEntry.html +0 -264
  245. data/doc/Sequel.html +0 -91
  246. data/doc/Sequel/Model.html +0 -243
  247. data/doc/Settings.html +0 -93
  248. data/doc/Settings/Controllers.html +0 -91
  249. data/doc/Settings/Controllers/Settings.html +0 -565
  250. data/doc/Settings/Liquid.html +0 -91
  251. data/doc/Settings/Liquid/Setting.html +0 -426
  252. data/doc/Settings/Models.html +0 -95
  253. data/doc/Settings/Models/Setting.html +0 -293
  254. data/doc/Users.html +0 -93
  255. data/doc/Users/Controllers.html +0 -93
  256. data/doc/Users/Controllers/AccessRules.html +0 -904
  257. data/doc/Users/Controllers/UserGroups.html +0 -879
  258. data/doc/Users/Controllers/Users.html +0 -1124
  259. data/doc/Users/Liquid.html +0 -93
  260. data/doc/Users/Liquid/User.html +0 -480
  261. data/doc/Users/Liquid/Users.html +0 -495
  262. data/doc/Users/Models.html +0 -97
  263. data/doc/Users/Models/AccessRule.html +0 -257
  264. data/doc/Users/Models/User.html +0 -649
  265. data/doc/Users/Models/UserGroup.html +0 -267
  266. data/doc/Zen.html +0 -391
  267. data/doc/Zen/Bin.html +0 -113
  268. data/doc/Zen/Bin/Base.html +0 -727
  269. data/doc/Zen/Controllers.html +0 -115
  270. data/doc/Zen/Controllers/AdminController.html +0 -298
  271. data/doc/Zen/Controllers/BaseController.html +0 -272
  272. data/doc/Zen/Controllers/FrontendController.html +0 -164
  273. data/doc/Zen/Controllers/MainController.html +0 -421
  274. data/doc/Zen/Database.html +0 -498
  275. data/doc/Zen/Language.html +0 -660
  276. data/doc/Zen/Liquid.html +0 -117
  277. data/doc/Zen/Liquid/ControllerBehavior.html +0 -448
  278. data/doc/Zen/Liquid/General.html +0 -444
  279. data/doc/Zen/Liquid/Redirect.html +0 -435
  280. data/doc/Zen/Liquid/Strip.html +0 -447
  281. data/doc/Zen/Logger.html +0 -393
  282. data/doc/Zen/Package.html +0 -909
  283. data/doc/_index.html +0 -724
  284. data/doc/class_list.html +0 -36
  285. data/doc/css/common.css +0 -1
  286. data/doc/css/full_list.css +0 -53
  287. data/doc/css/style.css +0 -310
  288. data/doc/file.README.html +0 -86
  289. data/doc/file_list.html +0 -38
  290. data/doc/frames.html +0 -13
  291. data/doc/index.html +0 -86
  292. data/doc/js/app.js +0 -203
  293. data/doc/js/full_list.js +0 -149
  294. data/doc/js/jquery.js +0 -154
  295. data/doc/method_list.html +0 -1139
  296. data/doc/top-level-namespace.html +0 -88
  297. data/lib/zen/language/en/zen_general.rb +0 -21
  298. data/lib/zen/language/en/zen_models.rb +0 -39
  299. data/lib/zen/packages/categories/LICENSE +0 -19
  300. data/lib/zen/packages/categories/lib/categories/controller/categories.rb +0 -202
  301. data/lib/zen/packages/categories/lib/categories/controller/category_groups.rb +0 -173
  302. data/lib/zen/packages/categories/lib/categories/language/en/categories.rb +0 -38
  303. data/lib/zen/packages/categories/lib/categories/language/en/category_groups.rb +0 -37
  304. data/lib/zen/packages/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
  305. data/lib/zen/packages/categories/lib/categories/view/admin/categories/form.xhtml +0 -36
  306. data/lib/zen/packages/categories/lib/categories/view/admin/categories/index.xhtml +0 -70
  307. data/lib/zen/packages/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
  308. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/edit.xhtml +0 -7
  309. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/form.xhtml +0 -18
  310. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/index.xhtml +0 -72
  311. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/new.xhtml +0 -7
  312. data/lib/zen/packages/comments/LICENSE +0 -19
  313. data/lib/zen/packages/comments/README.textile +0 -0
  314. data/lib/zen/packages/comments/lib/comments/language/en/comments.rb +0 -52
  315. data/lib/zen/packages/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
  316. data/lib/zen/packages/comments/lib/comments/view/admin/comments/form.xhtml +0 -31
  317. data/lib/zen/packages/comments/lib/comments/view/admin/comments/index.xhtml +0 -74
  318. data/lib/zen/packages/comments/migrations/1296949631_add_defensio_signature.rb +0 -11
  319. data/lib/zen/packages/custom_fields/LICENSE +0 -19
  320. data/lib/zen/packages/custom_fields/README.textile +0 -0
  321. data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +0 -179
  322. data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_fields.rb +0 -194
  323. data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +0 -45
  324. data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_fields.rb +0 -64
  325. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/edit.xhtml +0 -7
  326. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/form.xhtml +0 -18
  327. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/index.xhtml +0 -88
  328. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/new.xhtml +0 -7
  329. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/edit.xhtml +0 -7
  330. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/form.xhtml +0 -50
  331. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/index.xhtml +0 -75
  332. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/new.xhtml +0 -7
  333. data/lib/zen/packages/sections/LICENSE +0 -19
  334. data/lib/zen/packages/sections/README.textile +0 -43
  335. data/lib/zen/packages/sections/lib/sections/language/en/section_entries.rb +0 -58
  336. data/lib/zen/packages/sections/lib/sections/language/en/sections.rb +0 -63
  337. data/lib/zen/packages/sections/lib/sections/model/section.rb +0 -43
  338. data/lib/zen/packages/sections/lib/sections/model/section_entry.rb +0 -43
  339. data/lib/zen/packages/sections/lib/sections/view/admin/edit.xhtml +0 -7
  340. data/lib/zen/packages/sections/lib/sections/view/admin/form.xhtml +0 -54
  341. data/lib/zen/packages/sections/lib/sections/view/admin/index.xhtml +0 -77
  342. data/lib/zen/packages/sections/lib/sections/view/admin/new.xhtml +0 -7
  343. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/edit.xhtml +0 -7
  344. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/form.xhtml +0 -147
  345. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/index.xhtml +0 -74
  346. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/new.xhtml +0 -7
  347. data/lib/zen/packages/sections/migrations/1296335671_userdata_section_entries.rb +0 -18
  348. data/lib/zen/packages/sections/migrations/1296936110_drop_comment_antispam.rb +0 -11
  349. data/lib/zen/packages/settings/README.textile +0 -0
  350. data/lib/zen/packages/settings/lib/settings/language/en/settings.rb +0 -56
  351. data/lib/zen/packages/settings/lib/settings/model/setting.rb +0 -38
  352. data/lib/zen/packages/settings/lib/settings/view/admin/settings/index.xhtml +0 -79
  353. data/lib/zen/packages/users/LICENSE +0 -19
  354. data/lib/zen/packages/users/README.textile +0 -0
  355. data/lib/zen/packages/users/lib/users/controller/access_rules.rb +0 -186
  356. data/lib/zen/packages/users/lib/users/controller/user_groups.rb +0 -171
  357. data/lib/zen/packages/users/lib/users/language/en/access_rules.rb +0 -49
  358. data/lib/zen/packages/users/lib/users/language/en/user_groups.rb +0 -42
  359. data/lib/zen/packages/users/lib/users/language/en/users.rb +0 -63
  360. data/lib/zen/packages/users/lib/users/public/admin/js/users/access_rules.js +0 -43
  361. data/lib/zen/packages/users/lib/users/view/admin/access_rules/edit.xhtml +0 -7
  362. data/lib/zen/packages/users/lib/users/view/admin/access_rules/form.xhtml +0 -68
  363. data/lib/zen/packages/users/lib/users/view/admin/access_rules/index.xhtml +0 -85
  364. data/lib/zen/packages/users/lib/users/view/admin/access_rules/new.xhtml +0 -7
  365. data/lib/zen/packages/users/lib/users/view/admin/user_groups/edit.xhtml +0 -7
  366. data/lib/zen/packages/users/lib/users/view/admin/user_groups/form.xhtml +0 -19
  367. data/lib/zen/packages/users/lib/users/view/admin/user_groups/index.xhtml +0 -69
  368. data/lib/zen/packages/users/lib/users/view/admin/user_groups/new.xhtml +0 -7
  369. data/lib/zen/packages/users/lib/users/view/admin/users/edit.xhtml +0 -7
  370. data/lib/zen/packages/users/lib/users/view/admin/users/form.xhtml +0 -25
  371. data/lib/zen/packages/users/lib/users/view/admin/users/index.xhtml +0 -73
  372. data/lib/zen/packages/users/lib/users/view/admin/users/login.xhtml +0 -22
  373. data/lib/zen/packages/users/lib/users/view/admin/users/new.xhtml +0 -7
  374. data/lib/zen/tasks.rb +0 -6
  375. data/proto/app/Rakefile +0 -2
  376. data/proto/module/LICENSE +0 -0
  377. data/proto/module/README.textile +0 -0
  378. data/proto/module/lib/module.rb +0 -15
  379. data/spec/javascript/css/base.css +0 -177
  380. data/spec/javascript/css/style.css +0 -204
  381. data/spec/javascript/css/typography.css +0 -70
  382. data/spec/javascript/editor/index.html +0 -65
  383. data/spec/javascript/images/close.png +0 -0
  384. data/spec/javascript/images/info.png +0 -0
  385. data/spec/javascript/js/editor.js +0 -16
  386. data/spec/javascript/js/modal.js +0 -12
  387. data/spec/javascript/js/namespace.js +0 -2
  388. data/spec/javascript/js/notification.js +0 -43
  389. data/spec/javascript/js/tabs.js +0 -8
  390. data/spec/javascript/modal/index.html +0 -45
  391. data/spec/javascript/notification/index.html +0 -48
  392. data/spec/javascript/tabs/index.html +0 -73
  393. data/spec/javascript/tabs/tab_1.html +0 -1
  394. data/spec/javascript/tabs/tab_2.html +0 -1
  395. data/spec/zen/base/language.rb +0 -31
  396. data/spec/zen/base/logger.rb +0 -34
  397. data/spec/zen/base/package.rb +0 -47
  398. data/spec/zen/config/database.rb +0 -8
  399. data/spec/zen/helper/asset.rb +0 -26
  400. data/spec/zen/helper/breadcrumb.rb +0 -24
  401. data/spec/zen/language/en/general.rb +0 -4
  402. data/spec/zen/language/nl/general.rb +0 -4
  403. data/spec/zen/liquid/general.rb +0 -42
  404. data/spec/zen/logs/.gitkeep +0 -0
  405. data/spec/zen/spec.rb +0 -9
  406. data/spec/zen/spec_database.db +0 -0
  407. data/tasks/bacon.rake +0 -99
  408. data/tasks/build.rake +0 -72
  409. data/tasks/clean.rake +0 -18
  410. data/tasks/db.rake +0 -81
  411. data/tasks/doc.rake +0 -5
  412. data/tasks/extension.rake +0 -65
  413. data/tasks/proto.rake +0 -37
  414. data/tasks/theme.rake +0 -63
@@ -0,0 +1,123 @@
1
+ require 'fileutils'
2
+ require 'find'
3
+
4
+ module Zen
5
+ module Task
6
+ ##
7
+ # The Build class/task can be used to create the documentation, manifest, etc.
8
+ #
9
+ # @author Yorick Peterse
10
+ # @since 0.2
11
+ #
12
+ class Build < Thor
13
+ include Thor::Actions
14
+
15
+ namespace :build
16
+
17
+ desc 'gem', 'Builds a new RubyGem'
18
+
19
+ ##
20
+ # Builds a new version of the RubyGem and places it in ./pkg
21
+ #
22
+ # @author Yorick Peterse
23
+ # @since 0.2
24
+ #
25
+ def gem
26
+ zen_path = File.expand_path('../../../../', __FILE__)
27
+
28
+ # Build and install the gem
29
+ run("gem build #{zen_path}/zen.gemspec")
30
+ run("mv #{zen_path}/zen-#{Zen::Version}.gem #{zen_path}/pkg")
31
+ run("gem install #{zen_path}/pkg/zen-#{Zen::Version}.gem")
32
+ end
33
+
34
+ desc 'gem_clean', 'Builds a new RubyGem and uninstalls any current versions of Zen'
35
+
36
+ ##
37
+ # Builds a new version of the RubyGem and uninstalls any current versions of Zen.
38
+ #
39
+ # @author Yorick Peterse
40
+ # @since 0.2
41
+ #
42
+ def gem_clean
43
+ zen_path = File.expand_path('../../../../', __FILE__)
44
+
45
+ begin
46
+ run('gem uninstall zen')
47
+ rescue
48
+ puts "Failed to uninstall the gem, most likely it wasn't installed in the first place."
49
+ end
50
+
51
+ # Remove all logs files
52
+ log_dirs = Dir.glob(zen_path + '/spec/zen/log/**/*')
53
+
54
+ if !log_dirs.empty?
55
+ log_dirs.each do |dir|
56
+ # Ignore non-directory files
57
+ if File.directory?(dir)
58
+ FileUtils.rm_rf(dir)
59
+ end
60
+ end
61
+ end
62
+
63
+ self.gem
64
+ end
65
+
66
+ desc 'manifest', 'Builds the MANIFEST file'
67
+
68
+ ##
69
+ # Builds the MANIFEST file and places it in ./
70
+ #
71
+ # @author Yorick Peterse
72
+ # @since 0.2
73
+ #
74
+ def manifest
75
+ zen_path = File.expand_path('../../../../', __FILE__)
76
+
77
+ ignore_exts = ['.gem', '.gemspec']
78
+ ignore_files = ['.DS_Store', '.gitignore']
79
+ ignore_dirs = ['.git', '.yardoc', 'spec', 'pkg', 'doc']
80
+ files = ''
81
+
82
+ Find.find(zen_path) do |f|
83
+ f[zen_path] = ''
84
+ f.gsub!(/^\//, '')
85
+
86
+ # Ignore directories
87
+ if !File.directory?(f) and !ignore_exts.include?(File.extname(f)) and !ignore_files.include?(File.basename(f))
88
+ files += "#{f}\n"
89
+ else
90
+ Find.prune if ignore_dirs.include?(f)
91
+ end
92
+ end
93
+
94
+ # Time to write the MANIFEST file
95
+ begin
96
+ handle = File.open 'MANIFEST', 'w'
97
+ handle.write files.strip
98
+ abort "The MANIFEST file has been updated."
99
+ rescue
100
+ abort "The MANIFEST file could not be written."
101
+ end
102
+ end
103
+
104
+ desc 'doc', 'Builds the documentation using YARD'
105
+
106
+ ##
107
+ # Builds the documentation using YARD.
108
+ #
109
+ # @author Yorick Peterse
110
+ # @since 0.2
111
+ #
112
+ def doc
113
+ zen_path = File.expand_path('../../../../', __FILE__)
114
+ command = "yard doc #{zen_path}/lib -m markdown -M rdiscount -o #{zen_path}/doc "
115
+ command += "-r #{zen_path}/README.md --private --protected "
116
+ command += "--files #{zen_path}/license.txt,#{zen_path}/CHANGELOG.md,"
117
+ command += "#{zen_path}/ROADMAP.md"
118
+
119
+ run(command)
120
+ end
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,46 @@
1
+ require 'fileutils'
2
+
3
+ module Zen
4
+ module Task
5
+ ##
6
+ # The Clean task can be used to remove various files from the repository.
7
+ #
8
+ # @author Yorick Peterse
9
+ # @since 0.2
10
+ #
11
+ class Clean < Thor
12
+ include Thor::Actions
13
+
14
+ namespace :clean
15
+
16
+ ##
17
+ # Removes all log files from the spec directory.
18
+ #
19
+ # @author Yorick Peterse
20
+ # @since 0.2
21
+ #
22
+ desc 'log', 'Removes all log files from the spec directory'
23
+ def log
24
+ zen_path = File.expand_path('../../../../', __FILE__)
25
+
26
+ log_files = Dir.glob("#{zen_path}/spec/log/**/*.log")
27
+ log_files.each { |file| File.unlink(file) }
28
+ end
29
+
30
+ ##
31
+ # Removes all files generated by YARD.
32
+ #
33
+ # @author Yorick Peterse
34
+ # @since 0.2
35
+ #
36
+ desc 'yard', 'Removes all files generated by YARD'
37
+ def yard
38
+ zen_path = File.expand_path('../../../../', __FILE__)
39
+
40
+ FileUtils.rm_rf("#{zen_path}/doc")
41
+ FileUtils.rm_rf("#{zen_path}/.yardoc")
42
+ end
43
+
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,120 @@
1
+ Sequel.extension(:migration)
2
+
3
+ module Zen
4
+ module Task
5
+ ##
6
+ # Task that can be used for various database related operations such as creating
7
+ # a default user and migrating the entire database.
8
+ #
9
+ # @author Yorick Peterse
10
+ # @since 0.2
11
+ #
12
+ class DB < Thor
13
+ namespace :db
14
+
15
+ desc('migrate', 'Migrates the entire database to the latest version')
16
+
17
+ ##
18
+ # Migrates the entire database to the latest version.
19
+ #
20
+ # @author Yorick Peterse
21
+ # @param [Boolean] show_output When set to false no output will be shown.
22
+ # @since 0.2
23
+ #
24
+ def migrate(show_output = true)
25
+ exts = Zen::Package.extensions
26
+
27
+ puts "Migrating..." if show_output === true
28
+
29
+ exts.each do |ident, ext|
30
+ dir = ext.directory + '/../../migrations'
31
+ table = ext.identifier.gsub('.', '_').to_sym
32
+
33
+ if File.directory?(dir)
34
+ Zen::Database.handle.transaction do
35
+ Sequel::Migrator.run(Zen::Database.handle, dir, :table => table)
36
+
37
+ puts "Successfully migrated \"#{ext.name}\"" if show_output === true
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ desc('delete', 'Deletes all database tables')
44
+
45
+ ##
46
+ # Deletes all database tables.
47
+ #
48
+ # @author Yorick Peterse
49
+ # @since 0.2
50
+ #
51
+ def delete
52
+ exts = Zen::Package.extensions.map { |ident, ext| [ident, ext] }
53
+
54
+ exts.reverse.each do |ident, ext|
55
+ dir = ext.directory + '/../../migrations'
56
+ table = ext.identifier.gsub('.', '_').to_sym
57
+
58
+ if File.directory?(dir)
59
+ Zen::Database.handle.transaction do
60
+ puts "Uninstalling \"#{ext.name}\""
61
+
62
+ Sequel::Migrator.run(Zen::Database.handle, dir, :table => table, :target => 0)
63
+
64
+ # Remove the migrations table
65
+ Zen::Database.handle.drop_table table
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ desc('user', 'Creates a default administrator account')
72
+
73
+ ##
74
+ # Creates a default administrator account.
75
+ #
76
+ # @author Yorick Peterse
77
+ # @since 0.2
78
+ #
79
+ def user
80
+ password = (0..12).map do
81
+ letter = ('a'..'z').to_a[rand(26)]
82
+ number = (0..9).to_a[rand(26)]
83
+
84
+ letter + number.to_s
85
+ end.join
86
+
87
+ # Only insert the user if it isn't there yet.
88
+ user = Users::Models::User[:email => 'admin@website.tld']
89
+ group = Users::Models::UserGroup[:slug => 'administrators']
90
+
91
+ if group.nil?
92
+ group = Users::Models::UserGroup.new(
93
+ :name => 'Administrators',
94
+ :slug => 'administrators', :super_group => true
95
+ ).save
96
+ end
97
+
98
+ if !user.nil?
99
+ abort "The default user has already been inserted."
100
+ end
101
+
102
+ user = Users::Models::User.new(
103
+ :email => 'admin@website.tld', :name => 'Administrator',
104
+ :password => password, :status => 'open'
105
+ ).save
106
+
107
+ user.user_group_pks = [group.id]
108
+
109
+ puts "Default administrator account has been created.
110
+
111
+ Email: admin@website.tld
112
+ Passowrd: #{password}
113
+
114
+ You can login by going to http://domain.tld/admin/users/login/
115
+ "
116
+
117
+ end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,82 @@
1
+ Sequel.extension(:migration)
2
+
3
+ module Zen
4
+ module Task
5
+ ##
6
+ # The Package task is used to install, delete and manage Zen packages.
7
+ #
8
+ # @author Yorick Peterse
9
+ # @since 0.2
10
+ #
11
+ class Package < Thor
12
+ namespace :package
13
+
14
+ desc('list', 'Lists all installed packages')
15
+
16
+ ##
17
+ # Lists all installed extensions.
18
+ #
19
+ # @author Yorick Peterse
20
+ # @since 0.2
21
+ #
22
+ def list
23
+ table = []
24
+ table.push(['Name', 'Author', 'Identifier', 'Version', 'Type', 'Directory'])
25
+ table.push(['------', '------', '------', '------', '------','------'])
26
+ packages = Zen::Package.extensions.merge(Zen::Package.themes)
27
+
28
+ packages.each do |ident, ext|
29
+ table.push([ext.name, ext.author, ext.identifier, ext.version.to_s, ext.type, ext.directory])
30
+ end
31
+
32
+ print_table(table)
33
+ end
34
+
35
+ desc('migrate', 'Migrates a package to the given version')
36
+
37
+ method_option(:version , :type => :numeric, :default => nil)
38
+ method_option(:identifier, :type => :string , :default => nil, :required => true)
39
+
40
+ ##
41
+ # Migrates a package to the given version.
42
+ #
43
+ # @author Yorick Peterse
44
+ # @since 0.2
45
+ #
46
+ def migrate
47
+ version = options[:version]
48
+ ident = options[:identifier]
49
+
50
+ if Zen::Package.extensions.nil? or Zen::Package.extensions.empty?
51
+ abort "No packages have been loaded. Be sure to add them to config/requires.rb."
52
+ end
53
+
54
+ if version.nil?
55
+ puts "No version specified with --version, choosing the most recent version..."
56
+ end
57
+
58
+ install_ext = Zen::Package[ident]
59
+
60
+ if ident.nil? or ident.empty?
61
+ abort "You specified an invalid identifier."
62
+ end
63
+
64
+ dir = install_ext.directory + '/../../migrations'
65
+ table = install_ext.identifier.gsub('.', '_').to_sym
66
+
67
+ puts "Migrating package..."
68
+ if File.directory?(dir)
69
+ Zen::Database.handle.transaction do
70
+ Sequel::Migrator.run(Zen::Database.handle, dir, :table => table, :target => version)
71
+
72
+ if version == 0
73
+ # Remove the migrations table
74
+ Zen::Database.handle.drop_table table
75
+ end
76
+ end
77
+ end
78
+ end
79
+
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,116 @@
1
+ require 'fileutils'
2
+ require 'ruby-extensions'
3
+
4
+ module Zen
5
+ module Task
6
+ ##
7
+ # The Proto task can be used to create migrations, packages and full blown applications.
8
+ #
9
+ # @author Yorick Peterse
10
+ # @since 0.2
11
+ #
12
+ class Proto < Thor
13
+ namespace :proto
14
+
15
+ desc 'migration', 'Creates a new migration'
16
+ method_option :directory, :type => :string, :required => true
17
+
18
+ ##
19
+ # Creates a new (blank) migration.
20
+ #
21
+ # @author Yorick Peterse
22
+ # @since 0.2
23
+ #
24
+ def migration
25
+ dir = options[:directory]
26
+ proto_path = File.expand_path('../../../../proto/migration.rb', __FILE__)
27
+
28
+ # Get the name
29
+ name = ask("Migration name:")
30
+
31
+ # If no directory is specified we'll store the migrations under ./migrations
32
+ if dir.nil? or dir == ''
33
+ if !File.directory?('./migrations')
34
+ abort "No directory specified and ./migrations doesn't exist"
35
+ else
36
+ dir = './migrations'
37
+ puts "Using ./migrations"
38
+ end
39
+ else
40
+ puts "Using #{dir}"
41
+ end
42
+
43
+ # Generate the prototype
44
+ puts "Generating..."
45
+
46
+ proto = File.open(proto_path, 'r').read
47
+ path = "#{dir}/#{Time.new.to_i}_#{name}.rb"
48
+
49
+ begin
50
+ File.open(path, 'w').write(proto)
51
+ puts "Done!"
52
+ rescue => e
53
+ puts "Failed to generate the migration: #{e}"
54
+ end
55
+ end
56
+
57
+ desc 'package', 'Creates a new package'
58
+ method_option :directory, :type => :string, :required => true
59
+
60
+ ##
61
+ # Creates a new package.
62
+ #
63
+ # @author Yorick Peterse
64
+ # @since 0.2
65
+ #
66
+ def package
67
+ name = ask("Package name:").strip.downcase.gsub(' ', '_')
68
+ proto = File.expand_path('../../../../proto/package', __FILE__)
69
+ klass = name.camel_case
70
+ extension_path = options[:directory] + '/' + name
71
+
72
+ FileUtils.rm_rf(extension_path)
73
+
74
+ # Rename all files and folders
75
+ begin
76
+ FileUtils.cp_r(proto, extension_path)
77
+
78
+ lib_path = "#{extension_path}/lib/#{name}"
79
+
80
+ # Rename the base file and directory
81
+ FileUtils.mv("#{extension_path}/lib/package" , lib_path)
82
+ FileUtils.mv("#{extension_path}/lib/package.rb", "#{extension_path}/lib/#{name}.rb")
83
+
84
+ # ------------------------------------------------
85
+
86
+ controller_filename = klass.snake_case.pluralize
87
+ model_filename = klass.snake_case.singularize
88
+
89
+ # Generate the controller
90
+ controller = File.open("#{lib_path}/controller/controllers.rb", 'r').read
91
+ controller.gsub!('CONTROLLER', klass.pluralize)
92
+ controller.gsub!('EXTENSION' , klass.pluralize)
93
+
94
+ FileUtils.mv("#{lib_path}/controller/controllers.rb", "#{lib_path}/controller/#{controller_filename}.rb")
95
+ File.open("#{lib_path}/controller/#{controller_filename}.rb", 'w').write(controller)
96
+
97
+ # Move the view directory
98
+ FileUtils.mv("#{lib_path}/view/admin/package", "#{lib_path}/view/admin/#{controller_filename}")
99
+
100
+ # Generate the model
101
+ model = File.open("#{lib_path}/model/model.rb", 'r').read
102
+ model.gsub!('MODEL' , klass.singularize)
103
+ model.gsub!('EXTENSION' , klass.pluralize)
104
+
105
+ FileUtils.mv("#{lib_path}/model/model.rb", "#{lib_path}/model/#{model_filename}.rb")
106
+ File.open("#{lib_path}/model/#{model_filename}.rb", 'w').write(model)
107
+
108
+ puts "Done! Don't forget to rename the controllers/models/etc"
109
+ rescue => e
110
+ abort "Failed to generate the extesion: #{e}"
111
+ end
112
+ end
113
+
114
+ end
115
+ end
116
+ end