zen 0.1a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +19 -0
- data/MANIFEST +337 -0
- data/README.textile +42 -0
- data/Rakefile +6 -0
- data/bin/zen +9 -0
- data/doc/Categories.html +93 -0
- data/doc/Categories/Controllers.html +93 -0
- data/doc/Categories/Controllers/Categories.html +995 -0
- data/doc/Categories/Controllers/CategoryGroups.html +878 -0
- data/doc/Categories/Models.html +97 -0
- data/doc/Categories/Models/Category.html +269 -0
- data/doc/Categories/Models/CategoryGroup.html +231 -0
- data/doc/Comments.html +93 -0
- data/doc/Comments/Controllers.html +93 -0
- data/doc/Comments/Controllers/Comments.html +797 -0
- data/doc/Comments/Controllers/CommentsForm.html +487 -0
- data/doc/Comments/Liquid.html +93 -0
- data/doc/Comments/Liquid/CommentForm.html +522 -0
- data/doc/Comments/Liquid/Comments.html +543 -0
- data/doc/Comments/Models.html +95 -0
- data/doc/Comments/Models/Comment.html +260 -0
- data/doc/CustomFields.html +93 -0
- data/doc/CustomFields/Controllers.html +93 -0
- data/doc/CustomFields/Controllers/CustomFieldGroups.html +902 -0
- data/doc/CustomFields/Controllers/CustomFields.html +974 -0
- data/doc/CustomFields/Models.html +97 -0
- data/doc/CustomFields/Models/CustomField.html +272 -0
- data/doc/CustomFields/Models/CustomFieldGroup.html +259 -0
- data/doc/CustomFields/Models/CustomFieldValue.html +154 -0
- data/doc/Ramaze.html +93 -0
- data/doc/Ramaze/Helper.html +93 -0
- data/doc/Ramaze/Helper/ACL.html +531 -0
- data/doc/Ramaze/Helper/Asset.html +617 -0
- data/doc/Ramaze/Helper/Breadcrumb.html +411 -0
- data/doc/Ramaze/Helper/Common.html +738 -0
- data/doc/Sections.html +93 -0
- data/doc/Sections/Controllers.html +93 -0
- data/doc/Sections/Controllers/SectionEntries.html +1100 -0
- data/doc/Sections/Controllers/Sections.html +953 -0
- data/doc/Sections/Liquid.html +93 -0
- data/doc/Sections/Liquid/SectionEntries.html +674 -0
- data/doc/Sections/Liquid/Sections.html +494 -0
- data/doc/Sections/Models.html +97 -0
- data/doc/Sections/Models/Section.html +272 -0
- data/doc/Sections/Models/SectionEntry.html +264 -0
- data/doc/Sequel.html +91 -0
- data/doc/Sequel/Model.html +243 -0
- data/doc/Settings.html +93 -0
- data/doc/Settings/Controllers.html +91 -0
- data/doc/Settings/Controllers/Settings.html +565 -0
- data/doc/Settings/Liquid.html +91 -0
- data/doc/Settings/Liquid/Setting.html +426 -0
- data/doc/Settings/Models.html +95 -0
- data/doc/Settings/Models/Setting.html +293 -0
- data/doc/Users.html +93 -0
- data/doc/Users/Controllers.html +93 -0
- data/doc/Users/Controllers/AccessRules.html +904 -0
- data/doc/Users/Controllers/UserGroups.html +879 -0
- data/doc/Users/Controllers/Users.html +1124 -0
- data/doc/Users/Liquid.html +93 -0
- data/doc/Users/Liquid/User.html +480 -0
- data/doc/Users/Liquid/Users.html +495 -0
- data/doc/Users/Models.html +97 -0
- data/doc/Users/Models/AccessRule.html +257 -0
- data/doc/Users/Models/User.html +649 -0
- data/doc/Users/Models/UserGroup.html +267 -0
- data/doc/Zen.html +391 -0
- data/doc/Zen/Bin.html +113 -0
- data/doc/Zen/Bin/Base.html +727 -0
- data/doc/Zen/Controllers.html +115 -0
- data/doc/Zen/Controllers/AdminController.html +298 -0
- data/doc/Zen/Controllers/BaseController.html +272 -0
- data/doc/Zen/Controllers/FrontendController.html +164 -0
- data/doc/Zen/Controllers/MainController.html +421 -0
- data/doc/Zen/Database.html +498 -0
- data/doc/Zen/Language.html +660 -0
- data/doc/Zen/Liquid.html +117 -0
- data/doc/Zen/Liquid/ControllerBehavior.html +448 -0
- data/doc/Zen/Liquid/General.html +444 -0
- data/doc/Zen/Liquid/Redirect.html +435 -0
- data/doc/Zen/Liquid/Strip.html +447 -0
- data/doc/Zen/Logger.html +393 -0
- data/doc/Zen/Package.html +909 -0
- data/doc/_index.html +724 -0
- data/doc/class_list.html +36 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +53 -0
- data/doc/css/style.css +310 -0
- data/doc/file.README.html +86 -0
- data/doc/file_list.html +38 -0
- data/doc/frames.html +13 -0
- data/doc/index.html +86 -0
- data/doc/js/app.js +203 -0
- data/doc/js/full_list.js +149 -0
- data/doc/js/jquery.js +154 -0
- data/doc/method_list.html +1139 -0
- data/doc/top-level-namespace.html +88 -0
- data/lib/zen.rb +77 -0
- data/lib/zen/base/database.rb +105 -0
- data/lib/zen/base/language.rb +132 -0
- data/lib/zen/base/logger.rb +54 -0
- data/lib/zen/base/package.rb +233 -0
- data/lib/zen/base/version.rb +11 -0
- data/lib/zen/bin/zen_binary.rb +173 -0
- data/lib/zen/controller/admin_controller.rb +60 -0
- data/lib/zen/controller/base_controller.rb +39 -0
- data/lib/zen/controller/frontend_controller.rb +16 -0
- data/lib/zen/controller/main_controller.rb +93 -0
- data/lib/zen/helper/acl.rb +124 -0
- data/lib/zen/helper/asset.rb +104 -0
- data/lib/zen/helper/breadcrumb.rb +71 -0
- data/lib/zen/helper/common.rb +157 -0
- data/lib/zen/language/en/zen_general.rb +21 -0
- data/lib/zen/language/en/zen_models.rb +39 -0
- data/lib/zen/layout/admin.xhtml +72 -0
- data/lib/zen/layout/login.xhtml +44 -0
- data/lib/zen/liquid/controller_behavior.rb +55 -0
- data/lib/zen/liquid/general.rb +69 -0
- data/lib/zen/liquid/redirect.rb +47 -0
- data/lib/zen/liquid/strip.rb +58 -0
- data/lib/zen/model/methods.rb +26 -0
- data/lib/zen/model/settings.rb +27 -0
- data/lib/zen/packages/categories/LICENSE +19 -0
- data/lib/zen/packages/categories/README.textile +0 -0
- data/lib/zen/packages/categories/lib/categories.rb +24 -0
- data/lib/zen/packages/categories/lib/categories/controller/categories.rb +202 -0
- data/lib/zen/packages/categories/lib/categories/controller/category_groups.rb +173 -0
- data/lib/zen/packages/categories/lib/categories/language/en/categories.rb +38 -0
- data/lib/zen/packages/categories/lib/categories/language/en/category_groups.rb +37 -0
- data/lib/zen/packages/categories/lib/categories/model/category.rb +42 -0
- data/lib/zen/packages/categories/lib/categories/model/category_group.rb +29 -0
- data/lib/zen/packages/categories/lib/categories/view/admin/categories/edit.xhtml +7 -0
- data/lib/zen/packages/categories/lib/categories/view/admin/categories/form.xhtml +36 -0
- data/lib/zen/packages/categories/lib/categories/view/admin/categories/index.xhtml +70 -0
- data/lib/zen/packages/categories/lib/categories/view/admin/categories/new.xhtml +7 -0
- data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/edit.xhtml +7 -0
- data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/form.xhtml +18 -0
- data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/index.xhtml +72 -0
- data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/new.xhtml +7 -0
- data/lib/zen/packages/categories/migrations/.gitkeep +0 -0
- data/lib/zen/packages/categories/migrations/1295282303_create_schema.rb +40 -0
- data/lib/zen/packages/comments/LICENSE +19 -0
- data/lib/zen/packages/comments/README.textile +0 -0
- data/lib/zen/packages/comments/lib/comments.rb +26 -0
- data/lib/zen/packages/comments/lib/comments/controller/comments.rb +157 -0
- data/lib/zen/packages/comments/lib/comments/controller/comments_form.rb +135 -0
- data/lib/zen/packages/comments/lib/comments/language/en/comments.rb +52 -0
- data/lib/zen/packages/comments/lib/comments/liquid/comment_form.rb +97 -0
- data/lib/zen/packages/comments/lib/comments/liquid/comments.rb +115 -0
- data/lib/zen/packages/comments/lib/comments/model/comment.rb +34 -0
- data/lib/zen/packages/comments/lib/comments/view/admin/comments/edit.xhtml +7 -0
- data/lib/zen/packages/comments/lib/comments/view/admin/comments/form.xhtml +31 -0
- data/lib/zen/packages/comments/lib/comments/view/admin/comments/index.xhtml +74 -0
- data/lib/zen/packages/comments/migrations/.gitkeep +0 -0
- data/lib/zen/packages/comments/migrations/1295282202_create_schema.rb +24 -0
- data/lib/zen/packages/comments/migrations/1296949631_add_defensio_signature.rb +11 -0
- data/lib/zen/packages/custom_fields/LICENSE +19 -0
- data/lib/zen/packages/custom_fields/README.textile +0 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields.rb +24 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +179 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_fields.rb +194 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +45 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_fields.rb +64 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/model/custom_field.rb +41 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/model/custom_field_group.rb +32 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/model/custom_field_value.rb +20 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/edit.xhtml +7 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/form.xhtml +18 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/index.xhtml +88 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/new.xhtml +7 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/edit.xhtml +7 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/form.xhtml +50 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/index.xhtml +75 -0
- data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/new.xhtml +7 -0
- data/lib/zen/packages/custom_fields/migrations/.gitkeep +0 -0
- data/lib/zen/packages/custom_fields/migrations/1295255665_create_schema.rb +53 -0
- data/lib/zen/packages/sections/LICENSE +19 -0
- data/lib/zen/packages/sections/README.textile +43 -0
- data/lib/zen/packages/sections/lib/sections.rb +33 -0
- data/lib/zen/packages/sections/lib/sections/controller/section_entries.rb +251 -0
- data/lib/zen/packages/sections/lib/sections/controller/sections.rb +205 -0
- data/lib/zen/packages/sections/lib/sections/language/en/section_entries.rb +58 -0
- data/lib/zen/packages/sections/lib/sections/language/en/sections.rb +63 -0
- data/lib/zen/packages/sections/lib/sections/liquid/section_entries.rb +209 -0
- data/lib/zen/packages/sections/lib/sections/liquid/sections.rb +76 -0
- data/lib/zen/packages/sections/lib/sections/model/section.rb +43 -0
- data/lib/zen/packages/sections/lib/sections/model/section_entry.rb +43 -0
- data/lib/zen/packages/sections/lib/sections/view/admin/edit.xhtml +7 -0
- data/lib/zen/packages/sections/lib/sections/view/admin/form.xhtml +54 -0
- data/lib/zen/packages/sections/lib/sections/view/admin/index.xhtml +77 -0
- data/lib/zen/packages/sections/lib/sections/view/admin/new.xhtml +7 -0
- data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/edit.xhtml +7 -0
- data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/form.xhtml +147 -0
- data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/index.xhtml +74 -0
- data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/new.xhtml +7 -0
- data/lib/zen/packages/sections/migrations/.gitkeep +0 -0
- data/lib/zen/packages/sections/migrations/1295251836_create_schema.rb +35 -0
- data/lib/zen/packages/sections/migrations/1296335671_userdata_section_entries.rb +18 -0
- data/lib/zen/packages/sections/migrations/1296936110_drop_comment_antispam.rb +11 -0
- data/lib/zen/packages/settings/LICENSE +0 -0
- data/lib/zen/packages/settings/README.textile +0 -0
- data/lib/zen/packages/settings/lib/settings.rb +22 -0
- data/lib/zen/packages/settings/lib/settings/controller/settings.rb +113 -0
- data/lib/zen/packages/settings/lib/settings/language/en/settings.rb +56 -0
- data/lib/zen/packages/settings/lib/settings/liquid/setting.rb +56 -0
- data/lib/zen/packages/settings/lib/settings/model/setting.rb +38 -0
- data/lib/zen/packages/settings/lib/settings/view/admin/settings/index.xhtml +79 -0
- data/lib/zen/packages/settings/migrations/.gitkeep +0 -0
- data/lib/zen/packages/settings/migrations/1295597111_create_schema.rb +31 -0
- data/lib/zen/packages/users/LICENSE +19 -0
- data/lib/zen/packages/users/README.textile +0 -0
- data/lib/zen/packages/users/lib/users.rb +35 -0
- data/lib/zen/packages/users/lib/users/controller/access_rules.rb +186 -0
- data/lib/zen/packages/users/lib/users/controller/user_groups.rb +171 -0
- data/lib/zen/packages/users/lib/users/controller/users.rb +240 -0
- data/lib/zen/packages/users/lib/users/language/en/access_rules.rb +49 -0
- data/lib/zen/packages/users/lib/users/language/en/user_groups.rb +42 -0
- data/lib/zen/packages/users/lib/users/language/en/users.rb +63 -0
- data/lib/zen/packages/users/lib/users/liquid/user.rb +75 -0
- data/lib/zen/packages/users/lib/users/liquid/users.rb +80 -0
- data/lib/zen/packages/users/lib/users/model/access_rule.rb +29 -0
- data/lib/zen/packages/users/lib/users/model/user.rb +96 -0
- data/lib/zen/packages/users/lib/users/model/user_group.rb +38 -0
- data/lib/zen/packages/users/lib/users/public/admin/js/users/access_rules.js +43 -0
- data/lib/zen/packages/users/lib/users/view/admin/access_rules/edit.xhtml +7 -0
- data/lib/zen/packages/users/lib/users/view/admin/access_rules/form.xhtml +68 -0
- data/lib/zen/packages/users/lib/users/view/admin/access_rules/index.xhtml +85 -0
- data/lib/zen/packages/users/lib/users/view/admin/access_rules/new.xhtml +7 -0
- data/lib/zen/packages/users/lib/users/view/admin/user_groups/edit.xhtml +7 -0
- data/lib/zen/packages/users/lib/users/view/admin/user_groups/form.xhtml +19 -0
- data/lib/zen/packages/users/lib/users/view/admin/user_groups/index.xhtml +69 -0
- data/lib/zen/packages/users/lib/users/view/admin/user_groups/new.xhtml +7 -0
- data/lib/zen/packages/users/lib/users/view/admin/users/edit.xhtml +7 -0
- data/lib/zen/packages/users/lib/users/view/admin/users/form.xhtml +25 -0
- data/lib/zen/packages/users/lib/users/view/admin/users/index.xhtml +73 -0
- data/lib/zen/packages/users/lib/users/view/admin/users/login.xhtml +22 -0
- data/lib/zen/packages/users/lib/users/view/admin/users/new.xhtml +7 -0
- data/lib/zen/packages/users/migrations/.gitkeep +0 -0
- data/lib/zen/packages/users/migrations/1295281013_create_schema.rb +54 -0
- data/lib/zen/public/admin/css/boilerplate.css +174 -0
- data/lib/zen/public/admin/css/general.css +485 -0
- data/lib/zen/public/admin/css/grid.css +119 -0
- data/lib/zen/public/admin/css/layout.css +111 -0
- data/lib/zen/public/admin/images/general/noise.jpg +0 -0
- data/lib/zen/public/admin/images/icons/accept.png +0 -0
- data/lib/zen/public/admin/images/icons/add.png +0 -0
- data/lib/zen/public/admin/images/icons/back.png +0 -0
- data/lib/zen/public/admin/images/icons/bold.png +0 -0
- data/lib/zen/public/admin/images/icons/close.png +0 -0
- data/lib/zen/public/admin/images/icons/delete.png +0 -0
- data/lib/zen/public/admin/images/icons/edit.png +0 -0
- data/lib/zen/public/admin/images/icons/error.png +0 -0
- data/lib/zen/public/admin/images/icons/help.png +0 -0
- data/lib/zen/public/admin/images/icons/info.png +0 -0
- data/lib/zen/public/admin/images/icons/italic.png +0 -0
- data/lib/zen/public/admin/images/icons/large/error.png +0 -0
- data/lib/zen/public/admin/images/icons/large/notice.png +0 -0
- data/lib/zen/public/admin/images/icons/large/success.png +0 -0
- data/lib/zen/public/admin/images/icons/link.png +0 -0
- data/lib/zen/public/admin/images/icons/logout.png +0 -0
- data/lib/zen/public/admin/images/icons/ol.png +0 -0
- data/lib/zen/public/admin/images/icons/pdf.png +0 -0
- data/lib/zen/public/admin/images/icons/ul.png +0 -0
- data/lib/zen/public/admin/images/icons/user.png +0 -0
- data/lib/zen/public/admin/images/icons/view.png +0 -0
- data/lib/zen/public/admin/js/mootools/core.js +436 -0
- data/lib/zen/public/admin/js/mootools/more.js +288 -0
- data/lib/zen/public/admin/js/zen/editor/base.js +265 -0
- data/lib/zen/public/admin/js/zen/editor/drivers/html.js +104 -0
- data/lib/zen/public/admin/js/zen/editor/drivers/markdown.js +102 -0
- data/lib/zen/public/admin/js/zen/editor/drivers/textile.js +102 -0
- data/lib/zen/public/admin/js/zen/init.js +57 -0
- data/lib/zen/public/admin/js/zen/modal.js +159 -0
- data/lib/zen/public/admin/js/zen/notification.js +213 -0
- data/lib/zen/public/admin/js/zen/tabs.js +263 -0
- data/lib/zen/tasks.rb +6 -0
- data/pkg/.gitkeep +0 -0
- data/proto/app/Rakefile +2 -0
- data/proto/app/app.rb +20 -0
- data/proto/app/config.ru +18 -0
- data/proto/app/config/config.rb +17 -0
- data/proto/app/config/database.rb +18 -0
- data/proto/app/config/middlewares.rb +23 -0
- data/proto/app/config/requires.rb +8 -0
- data/proto/app/logs/.gitkeep +0 -0
- data/proto/app/public/.gitkeep +0 -0
- data/proto/app/start.rb +22 -0
- data/proto/app/vendor/.gitkeep +0 -0
- data/proto/app/vendor/themes/.gitkeep +0 -0
- data/proto/migration.rb +11 -0
- data/proto/module/LICENSE +0 -0
- data/proto/module/README.textile +0 -0
- data/proto/module/lib/module.rb +15 -0
- data/proto/module/lib/module/controller/controllers.rb +86 -0
- data/proto/module/lib/module/language/en/languages.rb +3 -0
- data/proto/module/lib/module/model/model.rb +12 -0
- data/proto/module/lib/module/view/admin/edit.xhtml +0 -0
- data/proto/module/lib/module/view/admin/form.xhtml +0 -0
- data/proto/module/lib/module/view/admin/index.xhtml +0 -0
- data/proto/module/lib/module/view/admin/new.xhtml +0 -0
- data/proto/module/migrations/.gitkeep +0 -0
- data/spec/javascript/css/base.css +177 -0
- data/spec/javascript/css/style.css +204 -0
- data/spec/javascript/css/typography.css +70 -0
- data/spec/javascript/editor/index.html +65 -0
- data/spec/javascript/images/close.png +0 -0
- data/spec/javascript/images/info.png +0 -0
- data/spec/javascript/js/editor.js +16 -0
- data/spec/javascript/js/modal.js +12 -0
- data/spec/javascript/js/namespace.js +2 -0
- data/spec/javascript/js/notification.js +43 -0
- data/spec/javascript/js/tabs.js +8 -0
- data/spec/javascript/modal/index.html +45 -0
- data/spec/javascript/notification/index.html +48 -0
- data/spec/javascript/tabs/index.html +73 -0
- data/spec/javascript/tabs/tab_1.html +1 -0
- data/spec/javascript/tabs/tab_2.html +1 -0
- data/spec/zen/base/language.rb +31 -0
- data/spec/zen/base/logger.rb +34 -0
- data/spec/zen/base/package.rb +47 -0
- data/spec/zen/config/database.rb +8 -0
- data/spec/zen/helper/asset.rb +26 -0
- data/spec/zen/helper/breadcrumb.rb +24 -0
- data/spec/zen/language/en/general.rb +4 -0
- data/spec/zen/language/nl/general.rb +4 -0
- data/spec/zen/liquid/general.rb +42 -0
- data/spec/zen/logs/.gitkeep +0 -0
- data/spec/zen/spec.rb +9 -0
- data/spec/zen/spec_database.db +0 -0
- data/tasks/bacon.rake +99 -0
- data/tasks/build.rake +72 -0
- data/tasks/clean.rake +18 -0
- data/tasks/db.rake +81 -0
- data/tasks/doc.rake +5 -0
- data/tasks/extension.rake +65 -0
- data/tasks/proto.rake +37 -0
- data/tasks/theme.rake +63 -0
- metadata +512 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta name="Content-Type" content="text/html; charset=utf-8" />
|
|
6
|
+
<title>Top Level Namespace</title>
|
|
7
|
+
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
|
|
9
|
+
|
|
10
|
+
<script type="text/javascript" charset="utf-8">
|
|
11
|
+
relpath = '';
|
|
12
|
+
if (relpath != '') relpath += '/';
|
|
13
|
+
</script>
|
|
14
|
+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
|
|
15
|
+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
|
|
16
|
+
|
|
17
|
+
</head>
|
|
18
|
+
<body>
|
|
19
|
+
<script type="text/javascript" charset="utf-8">
|
|
20
|
+
if (window.top.frames.main) document.body.className = 'frames';
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<div id="header">
|
|
24
|
+
<div id="menu">
|
|
25
|
+
|
|
26
|
+
<a href="_index.html">Index</a> »
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
<span class="title">Top Level Namespace</span>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
<div id="search">
|
|
36
|
+
<a id="class_list_link" href="#">Class List</a>
|
|
37
|
+
<a id="method_list_link" href="#">Method List</a>
|
|
38
|
+
<a id ="file_list_link" href="#">File List</a>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<div class="clear"></div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<iframe id="search_frame"></iframe>
|
|
45
|
+
|
|
46
|
+
<div id="content"><h1>Top Level Namespace
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
</h1>
|
|
51
|
+
|
|
52
|
+
<dl class="box">
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
</dl>
|
|
62
|
+
<div class="clear"></div>
|
|
63
|
+
|
|
64
|
+
<h2>Defined Under Namespace</h2>
|
|
65
|
+
<p class="children">
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Categories.html" title="Categories (module)">Categories</a></span>, <span class='object_link'><a href="Comments.html" title="Comments (module)">Comments</a></span>, <span class='object_link'><a href="CustomFields.html" title="CustomFields (module)">CustomFields</a></span>, <span class='object_link'><a href="Ramaze.html" title="Ramaze (module)">Ramaze</a></span>, <span class='object_link'><a href="Sections.html" title="Sections (module)">Sections</a></span>, <span class='object_link'><a href="Sequel.html" title="Sequel (module)">Sequel</a></span>, <span class='object_link'><a href="Settings.html" title="Settings (module)">Settings</a></span>, <span class='object_link'><a href="Users.html" title="Users (module)">Users</a></span>, <span class='object_link'><a href="Zen.html" title="Zen (module)">Zen</a></span>
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
</p>
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<div id="footer">
|
|
82
|
+
Generated on Sun Feb 6 21:24:02 2011 by
|
|
83
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
84
|
+
0.6.4 (ruby-1.9.2).
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
</body>
|
|
88
|
+
</html>
|
data/lib/zen.rb
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
##
|
|
2
|
+
# Main module for Zen, all other modules and classes will be placed inside this module.
|
|
3
|
+
# This module loads all required classes and is used for starting the application.
|
|
4
|
+
#
|
|
5
|
+
# @author Yorick Peterse
|
|
6
|
+
# @since 0.1
|
|
7
|
+
#
|
|
8
|
+
module Zen
|
|
9
|
+
require 'sequel'
|
|
10
|
+
require 'ramaze'
|
|
11
|
+
require 'bcrypt'
|
|
12
|
+
require 'liquid'
|
|
13
|
+
require 'json'
|
|
14
|
+
require 'redcloth'
|
|
15
|
+
require 'rdiscount'
|
|
16
|
+
require 'defensio'
|
|
17
|
+
require __DIR__('zen/base/version')
|
|
18
|
+
|
|
19
|
+
include Innate::Optioned
|
|
20
|
+
|
|
21
|
+
# Update several paths so we can load helpers/layouts from the Zen gem
|
|
22
|
+
Innate::HelpersHelper.options.paths << __DIR__('zen')
|
|
23
|
+
Ramaze.options.roots << __DIR__('zen')
|
|
24
|
+
|
|
25
|
+
options.dsl do
|
|
26
|
+
# General configuration options
|
|
27
|
+
o 'The character encoding to use when dealing with data', :encoding, 'utf8'
|
|
28
|
+
o 'The system language', :language, 'en'
|
|
29
|
+
o 'The date format to use for log files and such.', :date_format, '%d-%m-%Y'
|
|
30
|
+
o 'The base directory of Zen.', :root, ''
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Load all classes/modules provided by Zen itself.
|
|
34
|
+
require __DIR__ 'zen/base/logger'
|
|
35
|
+
require __DIR__ 'zen/base/database'
|
|
36
|
+
require __DIR__ 'zen/base/package'
|
|
37
|
+
require __DIR__ 'zen/base/language'
|
|
38
|
+
|
|
39
|
+
# Load all the base controllers
|
|
40
|
+
require __DIR__ 'zen/controller/base_controller'
|
|
41
|
+
require __DIR__ 'zen/controller/frontend_controller'
|
|
42
|
+
require __DIR__ 'zen/controller/admin_controller'
|
|
43
|
+
require __DIR__ 'zen/controller/main_controller'
|
|
44
|
+
|
|
45
|
+
# Load all default Liquid tags
|
|
46
|
+
require __DIR__ 'zen/liquid/general'
|
|
47
|
+
require __DIR__ 'zen/liquid/controller_behavior'
|
|
48
|
+
require __DIR__ 'zen/liquid/redirect'
|
|
49
|
+
require __DIR__ 'zen/liquid/strip'
|
|
50
|
+
|
|
51
|
+
class << self
|
|
52
|
+
attr_accessor :logger
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Update the language paths
|
|
56
|
+
Zen::Language.language_paths << __DIR__('zen')
|
|
57
|
+
|
|
58
|
+
# Register our Liquid tags
|
|
59
|
+
::Liquid::Template.register_tag('strip' , Liquid::Strip)
|
|
60
|
+
::Liquid::Template.register_tag('redirect', Liquid::Redirect)
|
|
61
|
+
|
|
62
|
+
##
|
|
63
|
+
# Intitializes Zen by connecting the database and setting up various other things.
|
|
64
|
+
#
|
|
65
|
+
# @author Yorick Peterse
|
|
66
|
+
#
|
|
67
|
+
def self.init
|
|
68
|
+
# Initialize the database
|
|
69
|
+
Zen::Database.init
|
|
70
|
+
|
|
71
|
+
require __DIR__ 'zen/model/settings'
|
|
72
|
+
require __DIR__ 'zen/model/methods'
|
|
73
|
+
|
|
74
|
+
# Initialize the logger
|
|
75
|
+
@logger = Zen::Logger.new("#{Zen.options.root}/logs/common")
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
module Zen
|
|
2
|
+
##
|
|
3
|
+
# The database module is one of the most important classes in Zen (which is quite obvious).
|
|
4
|
+
# Without this module the application wouldn't exist. The database module is basically a small
|
|
5
|
+
# wrapper around the Sequel.connect method and allows developers to specify database
|
|
6
|
+
# settings for various environments (live, test, production, etc) using a simple block.
|
|
7
|
+
#
|
|
8
|
+
# h2. Database Configuration
|
|
9
|
+
#
|
|
10
|
+
# Connecting to a database is fairly easy and only requires a single configuration file.
|
|
11
|
+
# In this file, called "database.rb" you'll define all your database environments (live, dev, test, etc).
|
|
12
|
+
#
|
|
13
|
+
# bc.. Zen::Database.mode :dev do |db|
|
|
14
|
+
# db.adapter = 'mysql'
|
|
15
|
+
# db.host = 'localhost'
|
|
16
|
+
#
|
|
17
|
+
# db.username = 'root'
|
|
18
|
+
# db.password = 'root'
|
|
19
|
+
# db.database = 'database'
|
|
20
|
+
# end
|
|
21
|
+
#
|
|
22
|
+
# p. In this example we're connecting to "localhost" using the mysql adapter and selecting the database
|
|
23
|
+
# called "database". When placing multiple environments in the same file you don't have to worry about
|
|
24
|
+
# them overriding eachother, Zen will only load the environment settings of the block that matches
|
|
25
|
+
# the current environment set in Ramaze.options.mode.
|
|
26
|
+
#
|
|
27
|
+
# h2. Database Interaction
|
|
28
|
+
#
|
|
29
|
+
# Once your database configuration file has been loaded you can communicate with the database using
|
|
30
|
+
# models. Each model should extend the base model provided by Sequel:
|
|
31
|
+
#
|
|
32
|
+
# bc. class Comment < Sequel::Model
|
|
33
|
+
# end
|
|
34
|
+
#
|
|
35
|
+
# Models can be called like any other class and don't need to be initialized. For more information
|
|
36
|
+
# on how to use models using Sequel you should read Sequel's documentation: http://sequel.rubyforge.com/
|
|
37
|
+
#
|
|
38
|
+
# @author Yorick Peterse
|
|
39
|
+
# @since 0.1
|
|
40
|
+
#
|
|
41
|
+
module Database
|
|
42
|
+
include Innate::Optioned
|
|
43
|
+
|
|
44
|
+
class << self
|
|
45
|
+
attr_reader :handle
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Database related configuration options
|
|
49
|
+
options.dsl do
|
|
50
|
+
o 'The database adapter to use.', :adapter, ''
|
|
51
|
+
o 'The address of the SQL server.', :host, ''
|
|
52
|
+
o 'The database username', :username, ''
|
|
53
|
+
o 'The database password', :password, ''
|
|
54
|
+
o 'The database name', :database, ''
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
##
|
|
58
|
+
# Initializes a new database connection based on the configuration options specified in
|
|
59
|
+
# Zen::Database.options. Sequel will trigger an error in case any of these settings
|
|
60
|
+
# are incorrect. For logging a custom logger will be used, this logger can be found in
|
|
61
|
+
# Zen::Logger().
|
|
62
|
+
#
|
|
63
|
+
# An extra notice for MySQL users, Zen uses InnoDB in order to use true foreign keys.
|
|
64
|
+
# Make sure that your MySQL installation comes with the InnoDB plugin.
|
|
65
|
+
#
|
|
66
|
+
# @author Yorick Peterse
|
|
67
|
+
# @since 0.1
|
|
68
|
+
#
|
|
69
|
+
def self.init
|
|
70
|
+
@handle = Sequel.connect(
|
|
71
|
+
:adapter => self.options.adapter,
|
|
72
|
+
:host => self.options.host,
|
|
73
|
+
:database => self.options.database,
|
|
74
|
+
:username => self.options.username,
|
|
75
|
+
:password => self.options.password,
|
|
76
|
+
:logger => Zen::Logger.new("#{Zen.options.root}/logs/database"),
|
|
77
|
+
:test => true,
|
|
78
|
+
:encoding => Zen.options.encoding)
|
|
79
|
+
|
|
80
|
+
# We'll need to use InnoDB for MySQL tables in order to provide proper foreign key support
|
|
81
|
+
if self.options.adapter === 'mysql' or self.options.adapter === 'mysql2'
|
|
82
|
+
Sequel::MySQL.default_engine = 'InnoDB'
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
##
|
|
87
|
+
# Method that's used to provide the ability to use different database configurations for each
|
|
88
|
+
# mode. This method basically just sets the Zen.options.db parameters based on the provided variables
|
|
89
|
+
# in the block. If you don't want to use different database configurations you can just set the variables
|
|
90
|
+
# directly using Zen.options.db.
|
|
91
|
+
#
|
|
92
|
+
# @author Yorick Peterse
|
|
93
|
+
# @since 0.1
|
|
94
|
+
# @param [Symbol] mode The development mode for which the database settings should be used.
|
|
95
|
+
# @param [Block] &block Block containing all database settings.
|
|
96
|
+
#
|
|
97
|
+
def self.mode mode, &block
|
|
98
|
+
mode = mode.to_sym
|
|
99
|
+
|
|
100
|
+
if mode == Ramaze.options.mode
|
|
101
|
+
yield self.options
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
require 'ostruct'
|
|
2
|
+
|
|
3
|
+
module Zen
|
|
4
|
+
##
|
|
5
|
+
# The Language module enables developers to create multi-lingual applications/extensions using
|
|
6
|
+
# nothing more than Ruby. While Ramaze already ships with multi-language support it relies on YAML
|
|
7
|
+
# for it's language files. While YAML is nice for config/language files my aim is to keep everything in Ruby
|
|
8
|
+
# as much as possible. Another problem with the language class provided by Ramaze is that at the time of writing
|
|
9
|
+
# (October 2011) it was completely undocumented and didn't make much sense.
|
|
10
|
+
#
|
|
11
|
+
# h2. Usage
|
|
12
|
+
#
|
|
13
|
+
# Using the language system provided by Zen is fairly straight forward. Create a directory named "language"
|
|
14
|
+
# and create a sub directory for each language. For example, if you're adding an English language pack this directory would be named "en".
|
|
15
|
+
# Language files can be named whatever you like as long as they contain the following block:
|
|
16
|
+
#
|
|
17
|
+
# bc. Zen::Language.translation 'translation_name' do |item|
|
|
18
|
+
# # ...
|
|
19
|
+
# end
|
|
20
|
+
#
|
|
21
|
+
# Inside this block you'll define your language items. For example, if we want a localized username and password we could
|
|
22
|
+
# do something like the following:
|
|
23
|
+
#
|
|
24
|
+
# bc. Zen::Language.translation 'example' do |item|
|
|
25
|
+
# item.username = 'Username'
|
|
26
|
+
# item.passowrd = 'Password'
|
|
27
|
+
# end
|
|
28
|
+
#
|
|
29
|
+
# This language file can then be loaded as following (assuming it's named "example.rb"):
|
|
30
|
+
#
|
|
31
|
+
# bc. lang = Zen::Language.load 'example'
|
|
32
|
+
# # We can now access our translation items from the lang variable
|
|
33
|
+
# lang.username
|
|
34
|
+
# lang.password
|
|
35
|
+
#
|
|
36
|
+
# Zen will use the setting Zen.options.language to determine what language should be loaded.
|
|
37
|
+
#
|
|
38
|
+
# h2. Sub Items
|
|
39
|
+
#
|
|
40
|
+
# Since language files are nothing more than Ruby blocks you can do everything you normally can. This makes
|
|
41
|
+
# it extremely easy to retrieve dynamic data for your language files (a list of installed extensions for example).
|
|
42
|
+
# Sub items are generally specified as a hash:
|
|
43
|
+
#
|
|
44
|
+
# bc. item.sub_items = {:name => 'Name'}
|
|
45
|
+
#
|
|
46
|
+
# Note that Zen won't convert the keys from format A to B, if you specify a symbol it will stay a symbol.
|
|
47
|
+
#
|
|
48
|
+
# @author Yorick Peterse
|
|
49
|
+
# @since 0.1
|
|
50
|
+
#
|
|
51
|
+
module Language
|
|
52
|
+
@language_keys = {}
|
|
53
|
+
@language_paths = []
|
|
54
|
+
|
|
55
|
+
class << self
|
|
56
|
+
attr_accessor :language_keys
|
|
57
|
+
attr_accessor :language_paths
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
##
|
|
61
|
+
# Tries to load the specified language file from each directory specified in Ramaze.options.roots.
|
|
62
|
+
# After a language file has been loaded the OpenStruct object will be stored in a hash and returned
|
|
63
|
+
# in case the same language file is loaded multiple times.
|
|
64
|
+
#
|
|
65
|
+
# @example
|
|
66
|
+
# @user_lang = Zen::Language.load 'user'
|
|
67
|
+
# @user_lang.username
|
|
68
|
+
#
|
|
69
|
+
# @author Yorick Peterse
|
|
70
|
+
# @param [String] lang_name The name of the language file to load. This name should match both
|
|
71
|
+
# the filename and the name defined in Zen::Language.translation().
|
|
72
|
+
# @return [Object] An OpenStruct object containing all the language keys and their values.
|
|
73
|
+
#
|
|
74
|
+
def self.load lang_name
|
|
75
|
+
# Each language file is stored in the hash using a key with the following format:
|
|
76
|
+
# language-name_language-file
|
|
77
|
+
hash_key = Zen.options.language + '_' + lang_name
|
|
78
|
+
hash_key = hash_key.to_sym
|
|
79
|
+
|
|
80
|
+
# Let's see if the language file is already loaded
|
|
81
|
+
if @language_keys.key?(hash_key)
|
|
82
|
+
return @language_keys[hash_key]
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Time to load the file
|
|
86
|
+
paths = @language_paths + Ramaze.options.roots
|
|
87
|
+
|
|
88
|
+
paths.each do |dir|
|
|
89
|
+
lang_path = "#{dir}/language/#{Zen.options.language}/#{lang_name}.rb"
|
|
90
|
+
|
|
91
|
+
# Load the file if it exists
|
|
92
|
+
if File.exist?(lang_path)
|
|
93
|
+
require lang_path
|
|
94
|
+
return @language_keys[hash_key]
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# No language file found
|
|
99
|
+
return false
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
##
|
|
103
|
+
# Given a block this method will store all the keys in the language_keys instance variable.
|
|
104
|
+
# Using Zen::Language.load these variables will be returned as an OpenStruct object.
|
|
105
|
+
#
|
|
106
|
+
# @example
|
|
107
|
+
# Zen::Language.translation 'example' do |lang|
|
|
108
|
+
# lang.username = 'Username'
|
|
109
|
+
# lang.password = 'Password'
|
|
110
|
+
# end
|
|
111
|
+
#
|
|
112
|
+
# @author Yorick Peterse
|
|
113
|
+
# @param [Block] Block containing all the language items.
|
|
114
|
+
#
|
|
115
|
+
def self.translation lang_name, &block
|
|
116
|
+
# Each language file is stored in the hash using a key with the following format:
|
|
117
|
+
# language-name_language-file
|
|
118
|
+
hash_key = Zen.options.language + '_' + lang_name
|
|
119
|
+
hash_key = hash_key.to_sym
|
|
120
|
+
|
|
121
|
+
# Does the language key already exist?
|
|
122
|
+
if @language_keys.key?(hash_key)
|
|
123
|
+
raise "There already is a language file named \"#{lang_name}\" for the language \"#{Zen.options.language}\"."
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Process the language file
|
|
127
|
+
@language_keys[hash_key] = OpenStruct.new
|
|
128
|
+
|
|
129
|
+
yield @language_keys[hash_key]
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require 'ramaze/log/rotatinginformer'
|
|
2
|
+
|
|
3
|
+
module Zen
|
|
4
|
+
##
|
|
5
|
+
# The Logger class acts as a small wrapper around the RotatingInformer class provided
|
|
6
|
+
# by Ramaze. Before returning a new instance this logger will make sure the specified
|
|
7
|
+
# directory actually exists and create it if this isn't the case.
|
|
8
|
+
#
|
|
9
|
+
# @author Yorick Peterse
|
|
10
|
+
# @since 0.1
|
|
11
|
+
#
|
|
12
|
+
class Logger < Ramaze::Logger::RotatingInformer
|
|
13
|
+
|
|
14
|
+
trait :timestamp => Zen.options.date_format
|
|
15
|
+
trait :format => "[%time] %prefix %text"
|
|
16
|
+
|
|
17
|
+
##
|
|
18
|
+
# Create a new instance of the logging class. The first parameter is the directory in which the log files
|
|
19
|
+
# should be stored. Based on this paramater and the current mode (specified in Ramaze.options.mode) the
|
|
20
|
+
# required directories will be created. When specifying a directory you should NOT add trailing slash.
|
|
21
|
+
#
|
|
22
|
+
# @example
|
|
23
|
+
# # When running in :dev mode this will result in the log files being stored in logs/database/dev
|
|
24
|
+
# Zen::Logger.new 'logs/database'
|
|
25
|
+
#
|
|
26
|
+
# @author Yorick Peterse
|
|
27
|
+
# @since 0.1
|
|
28
|
+
# @param [String] log_dir The relative path to the log directory.
|
|
29
|
+
# @return [Object]
|
|
30
|
+
#
|
|
31
|
+
def initialize log_dir
|
|
32
|
+
# Create the log directory if it doesn't exist
|
|
33
|
+
Dir.mkdir log_dir unless Dir.exist? log_dir
|
|
34
|
+
|
|
35
|
+
log_dir += "/#{Ramaze.options.mode}"
|
|
36
|
+
Dir.mkdir log_dir unless Dir.exist? log_dir
|
|
37
|
+
|
|
38
|
+
# Initialize the RotatingInformer class
|
|
39
|
+
super(log_dir, "#{Zen.options.date_format}.log")
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
##
|
|
43
|
+
# The write method is called whenever a log message has to be written to a file.
|
|
44
|
+
# Note that this method will only be used by webservers such as WEBRick. Sequel ignores this method.
|
|
45
|
+
#
|
|
46
|
+
# @author Yorick Peterse
|
|
47
|
+
# @since 0.1
|
|
48
|
+
# @param [String] message The data that has to be logged.
|
|
49
|
+
#
|
|
50
|
+
def write message
|
|
51
|
+
self.log(:info, message)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|