zen 0.2.8 → 0.3b
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/.gems +20 -0
- data/.mailmap +3 -2
- data/.rvmrc +1 -1
- data/.travis.yml +13 -2
- data/.yardopts +13 -0
- data/AUTHORS +1 -1
- data/README.md +115 -77
- data/Rakefile +6 -7
- data/bin/zen +12 -5
- data/guide/_static/categories/categories.png +0 -0
- data/guide/_static/categories/category_groups.png +0 -0
- data/guide/_static/categories/new_category.png +0 -0
- data/guide/_static/categories/new_category_group.png +0 -0
- data/guide/_static/comments/comments.png +0 -0
- data/guide/_static/comments/edit_comment.png +0 -0
- data/guide/_static/custom_fields/custom_field_groups.png +0 -0
- data/guide/_static/custom_fields/custom_field_types.png +0 -0
- data/guide/_static/custom_fields/custom_fields.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_general.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_group.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_settings.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_type.png +0 -0
- data/guide/_static/menus/edit_menu.png +0 -0
- data/guide/_static/menus/edit_menu_item.png +0 -0
- data/guide/_static/menus/menu_items.png +0 -0
- data/guide/_static/menus/menus.png +0 -0
- data/guide/_static/sections/edit_entry.png +0 -0
- data/guide/_static/sections/edit_entry_categories.png +0 -0
- data/guide/_static/sections/edit_entry_general.png +0 -0
- data/guide/_static/sections/edit_entry_meta.png +0 -0
- data/guide/_static/sections/edit_section_comments.png +0 -0
- data/guide/_static/sections/edit_section_general.png +0 -0
- data/guide/_static/sections/edit_section_groups.png +0 -0
- data/guide/_static/sections/entries.png +0 -0
- data/guide/_static/sections/sections.png +0 -0
- data/guide/_static/settings/overview_general.png +0 -0
- data/guide/_static/settings/overview_security.png +0 -0
- data/guide/_static/settings/overview_user.png +0 -0
- data/guide/_static/users/edit_user.png +0 -0
- data/guide/_static/users/edit_user_group.png +0 -0
- data/guide/_static/users/edit_user_group_permissions.png +0 -0
- data/guide/_static/users/edit_user_permissions.png +0 -0
- data/guide/_static/users/overview.png +0 -0
- data/guide/_static/users/user_groups_overview.png +0 -0
- data/guide/asset_management.md +117 -0
- data/{CHANGELOG.md → guide/changelog.md} +42 -0
- data/guide/css/common.css +20 -0
- data/guide/getting_started.md +61 -0
- data/guide/hacking.md +52 -0
- data/guide/installation.md +44 -0
- data/guide/javascript.md +352 -0
- data/lib/vendor/sequel_sluggable.rb +137 -0
- data/lib/yard/tags.rb +13 -0
- data/lib/zen.rb +148 -78
- data/lib/zen/asset_groups.rb +85 -0
- data/lib/zen/bin/create.rb +267 -56
- data/lib/zen/bin/default.rb +84 -0
- data/lib/zen/controller/admin_controller.rb +1 -82
- data/lib/zen/controller/base_controller.rb +9 -5
- data/lib/zen/controller/frontend_controller.rb +0 -1
- data/lib/zen/controller/main_controller.rb +30 -42
- data/lib/zen/controller/preview.rb +9 -8
- data/lib/zen/controller/translations.rb +49 -0
- data/lib/zen/error.rb +17 -0
- data/lib/zen/event.rb +118 -0
- data/lib/zen/helper/asset.rb +63 -0
- data/lib/zen/helper/breadcrumb.rb +1 -4
- data/lib/zen/helper/controller.rb +73 -0
- data/lib/zen/helper/locale.rb +42 -0
- data/lib/zen/helper/message.rb +0 -3
- data/lib/zen/helper/search.rb +54 -0
- data/lib/zen/helper/stacked_aspect.rb +249 -0
- data/lib/zen/helper/theme.rb +3 -10
- data/lib/zen/language.rb +356 -181
- data/lib/zen/language/en/zen_general.rb +52 -0
- data/lib/zen/language/en/zen_models.rb +19 -0
- data/lib/zen/language/nl/zen_general.rb +57 -0
- data/lib/zen/language/nl/zen_models.rb +22 -0
- data/lib/zen/language/translation.rb +132 -0
- data/lib/zen/languages.rb +9 -0
- data/lib/zen/layout/admin.xhtml +3 -3
- data/lib/zen/layout/login.xhtml +1 -1
- data/lib/zen/markup.rb +189 -0
- data/lib/zen/model/helper.rb +65 -0
- data/lib/zen/model/init.rb +62 -0
- data/lib/zen/model/methods.rb +6 -7
- data/lib/zen/package.rb +312 -201
- data/lib/zen/package/all.rb +4 -3
- data/lib/zen/package/categories/lib/categories.rb +29 -41
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +185 -130
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +172 -102
- data/lib/zen/package/categories/lib/categories/helper/category.rb +4 -9
- data/lib/zen/package/categories/lib/categories/helper/category_frontend.rb +86 -0
- data/lib/zen/package/categories/lib/categories/language/en/categories.rb +40 -0
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.rb +39 -0
- data/lib/zen/package/categories/lib/categories/language/nl/categories.rb +42 -0
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.rb +42 -0
- data/lib/zen/package/categories/lib/categories/model/category.rb +21 -25
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +21 -15
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +25 -26
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +24 -24
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +18 -20
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +21 -18
- data/lib/zen/package/comments/lib/comments.rb +30 -50
- data/lib/zen/package/comments/lib/comments/anti_spam.rb +138 -0
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +159 -92
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +122 -34
- data/lib/zen/package/comments/lib/comments/helper/comment.rb +0 -3
- data/lib/zen/package/comments/lib/comments/helper/comment_frontend.rb +90 -0
- data/lib/zen/package/comments/lib/comments/language/en/comments.rb +57 -0
- data/lib/zen/package/comments/lib/comments/language/nl/comments.rb +61 -0
- data/lib/zen/package/comments/lib/comments/model/comment.rb +147 -49
- data/lib/zen/package/comments/lib/comments/model/comment_status.rb +0 -2
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +37 -40
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +23 -42
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +12 -4
- data/lib/zen/package/comments/migrations/1313851786_remove_defensio_signature.rb +11 -0
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +40 -43
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +72 -17
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +154 -118
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +147 -90
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +161 -131
- data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +4 -9
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +42 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.rb +51 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.rb +60 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.rb +41 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.rb +49 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.rb +61 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +18 -23
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +20 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +1 -3
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +19 -9
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +18 -15
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +18 -18
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +30 -24
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +15 -10
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +24 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +18 -13
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +30 -20
- data/lib/zen/package/extensions/lib/extensions.rb +20 -0
- data/lib/zen/package/extensions/lib/extensions/controller/extensions.rb +41 -0
- data/lib/zen/package/extensions/lib/extensions/language/en/extensions.rb +23 -0
- data/lib/zen/package/extensions/lib/extensions/language/nl/extensions.rb +25 -0
- data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +86 -0
- data/lib/zen/package/menu.rb +109 -0
- data/lib/zen/package/menus/lib/menus.rb +25 -34
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +143 -107
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +166 -115
- data/lib/zen/package/menus/lib/menus/helper/menu.rb +2 -8
- data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +114 -0
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/en/menus.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/nl/menus.rb +50 -0
- data/lib/zen/package/menus/lib/menus/model/menu.rb +24 -17
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +37 -13
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +32 -25
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +23 -17
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +31 -26
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +20 -22
- data/lib/zen/package/sections/lib/sections.rb +25 -68
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +178 -138
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +173 -140
- data/lib/zen/package/sections/lib/sections/helper/section.rb +3 -6
- data/lib/zen/package/sections/lib/sections/helper/section_frontend.rb +146 -0
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +50 -0
- data/lib/zen/package/sections/lib/sections/language/en/sections.rb +55 -0
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +50 -0
- data/lib/zen/package/sections/lib/sections/language/nl/sections.rb +55 -0
- data/lib/zen/package/sections/lib/sections/model/section.rb +36 -36
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +52 -59
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -2
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +24 -21
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +24 -26
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +33 -31
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +24 -25
- data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +14 -10
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +12 -6
- data/lib/zen/package/settings/lib/settings.rb +25 -120
- data/lib/zen/package/settings/lib/settings/blue_form_parameters.rb +157 -0
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +94 -69
- data/lib/zen/package/settings/lib/settings/language/en/settings.rb +41 -0
- data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +41 -0
- data/lib/zen/package/settings/lib/settings/model/setting.rb +0 -2
- data/lib/zen/package/settings/lib/settings/setting.rb +379 -0
- data/lib/zen/package/settings/lib/settings/setting_groups.rb +11 -0
- data/lib/zen/package/settings/lib/settings/settings.rb +83 -0
- data/lib/zen/package/settings/lib/settings/settings_group.rb +84 -0
- data/lib/zen/package/settings/lib/settings/singleton_methods.rb +35 -0
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +15 -57
- data/lib/zen/package/settings/migrations/1321197919_remove_unused_columns.rb +17 -0
- data/lib/zen/package/users/lib/users.rb +51 -36
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +133 -98
- data/lib/zen/package/users/lib/users/controller/users.rb +253 -136
- data/lib/zen/package/users/lib/users/helper/access.rb +102 -0
- data/lib/zen/package/users/lib/users/helper/acl.rb +113 -0
- data/lib/zen/package/users/lib/users/helper/users.rb +41 -24
- data/lib/zen/package/users/lib/users/language/en/permissions.rb +16 -0
- data/lib/zen/package/users/lib/users/language/en/user_groups.rb +39 -0
- data/lib/zen/package/users/lib/users/language/en/users.rb +73 -0
- data/lib/zen/package/users/lib/users/language/nl/permissions.rb +16 -0
- data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +41 -0
- data/lib/zen/package/users/lib/users/language/nl/users.rb +74 -0
- data/lib/zen/package/users/lib/users/model/permission.rb +28 -0
- data/lib/zen/package/users/lib/users/model/user.rb +104 -65
- data/lib/zen/package/users/lib/users/model/user_group.rb +28 -24
- data/lib/zen/package/users/lib/users/model/user_status.rb +27 -0
- data/lib/zen/package/users/lib/users/public/admin/css/users/permissions.css +22 -0
- data/lib/zen/package/users/lib/users/public/admin/js/users/permissions.js +33 -0
- data/lib/zen/package/users/lib/users/settings.rb +19 -0
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +58 -28
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +19 -15
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +93 -62
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +23 -36
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +13 -6
- data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +33 -0
- data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +52 -0
- data/lib/zen/package/users/migrations/1313786058_update_default_date.rb +41 -0
- data/lib/zen/package/users/migrations/1316432327_permissions.rb +36 -0
- data/lib/zen/package/users/migrations/1320272365_status_ids.rb +67 -0
- data/lib/zen/public/admin/css/zen/buttons.css +3 -11
- data/lib/zen/public/admin/css/zen/datepicker.css +23 -13
- data/lib/zen/public/admin/css/zen/editor.css +6 -14
- data/lib/zen/public/admin/css/zen/forms.css +19 -12
- data/lib/zen/public/admin/css/zen/general.css +22 -18
- data/lib/zen/public/admin/css/zen/grid.css +1 -20
- data/lib/zen/public/admin/css/zen/layout.css +26 -11
- data/lib/zen/public/admin/css/zen/messages.css +3 -10
- data/lib/zen/public/admin/css/zen/reset.css +13 -15
- data/lib/zen/public/admin/css/zen/tables.css +8 -10
- data/lib/zen/public/admin/css/zen/tabs.css +2 -10
- data/lib/zen/public/admin/css/zen/window.css +2 -8
- data/lib/zen/public/admin/js/vendor/datepicker.js +540 -240
- data/lib/zen/public/admin/js/vendor/mootools/core.js +273 -283
- data/lib/zen/public/admin/js/vendor/mootools/more.js +131 -136
- data/lib/zen/public/admin/js/zen/index.js +8 -14
- data/lib/zen/public/admin/js/zen/lib/editor.js +36 -33
- data/lib/zen/public/admin/js/zen/lib/editor/markdown.js +0 -6
- data/lib/zen/public/admin/js/zen/lib/editor/textile.js +0 -6
- data/lib/zen/public/admin/js/zen/lib/html_table.js +0 -5
- data/lib/zen/public/admin/js/zen/lib/tabs.js +22 -79
- data/lib/zen/public/admin/js/zen/lib/window.js +12 -22
- data/lib/zen/spec/bacon/color_output.rb +1 -1
- data/lib/zen/spec/helper.rb +6 -11
- data/lib/zen/spec/simplecov.rb +3 -3
- data/lib/zen/task.rb +0 -1
- data/lib/zen/task/build.rake +46 -26
- data/lib/zen/task/clean.rake +14 -7
- data/lib/zen/task/db.rake +31 -29
- data/lib/zen/task/package.rake +19 -23
- data/lib/zen/task/proto.rake +3 -5
- data/lib/zen/task/setup.rake +4 -0
- data/lib/zen/task/test.rake +31 -6
- data/lib/zen/task/theme.rake +13 -19
- data/lib/zen/theme.rb +377 -52
- data/lib/zen/validation.rb +22 -30
- data/lib/zen/version.rb +1 -2
- data/lib/zen/view/bottom.xhtml +9 -1
- data/lib/zen/view/head.xhtml +1 -1
- data/lib/zen/view/main.xhtml +1 -1
- data/lib/zen/view/search.xhtml +9 -0
- data/proto/app/Rakefile +0 -1
- data/proto/app/app.rb +21 -16
- data/proto/app/config/config.rb.erb +41 -0
- data/proto/app/config/{database.rb → database.rb.erb} +17 -14
- data/proto/app/config/middlewares.rb +1 -1
- data/proto/app/theme/default/index.xhtml +25 -0
- data/proto/app/theme/theme.rb +19 -0
- data/proto/app/{log/database/dev → tmp}/.gitkeep +0 -0
- data/proto/migration.rb +3 -5
- data/proto/rack/thin.yml +41 -0
- data/proto/rack/unicorn.rb +38 -0
- data/spec/Rakefile +15 -11
- data/spec/fixtures/zen/helper/controller.rb +13 -0
- data/spec/fixtures/zen/helper/locale.rb +7 -0
- data/spec/fixtures/zen/helper/message.rb +0 -4
- data/spec/fixtures/zen/language.rb +31 -0
- data/spec/fixtures/zen/language/en/spec.rb +11 -0
- data/spec/fixtures/zen/language/nl/spec.rb +11 -0
- data/spec/fixtures/zen/package.rb +0 -10
- data/spec/fixtures/zen/package/categories/helper/category_frontend.rb +16 -0
- data/spec/fixtures/zen/package/comments/helper/comment_frontend.rb +16 -0
- data/spec/fixtures/zen/package/sections/helper/section_frontend.rb +16 -0
- data/spec/fixtures/zen/package/settings/controller/settings.rb +17 -0
- data/spec/fixtures/zen/package/users/helper/access.rb +18 -0
- data/spec/fixtures/zen/package/users/helper/acl.rb +23 -0
- data/spec/fixtures/zen/theme/{default-section → default}/index.xhtml +0 -0
- data/spec/helper.rb +12 -27
- data/{proto/app/log/database/live → spec/public}/.gitkeep +0 -0
- data/spec/zen/controller/admin_controller.rb +5 -6
- data/spec/zen/controller/main_controller.rb +29 -35
- data/spec/zen/controller/preview.rb +9 -10
- data/spec/zen/event.rb +44 -0
- data/spec/zen/helper/breadcrumb.rb +4 -5
- data/spec/zen/helper/controller.rb +21 -0
- data/spec/zen/helper/locale.rb +25 -0
- data/spec/zen/helper/message.rb +4 -11
- data/spec/zen/helper/theme.rb +11 -14
- data/spec/zen/language.rb +48 -22
- data/spec/zen/markup.rb +39 -0
- data/spec/zen/package.rb +48 -11
- data/spec/zen/package/categories/controller/categories.rb +99 -45
- data/spec/zen/package/categories/controller/category_groups.rb +109 -33
- data/spec/zen/package/categories/helper/category.rb +19 -32
- data/spec/zen/package/categories/helper/category_frontend.rb +61 -0
- data/spec/zen/package/comments/anti_spam.rb +50 -0
- data/spec/zen/package/comments/controller/comments.rb +121 -61
- data/spec/zen/package/comments/controller/comments_form.rb +120 -94
- data/spec/zen/package/comments/helper/comment.rb +13 -13
- data/spec/zen/package/comments/helper/comment_frontend.rb +92 -0
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +50 -50
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +135 -43
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +153 -48
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +130 -51
- data/spec/zen/package/custom_fields/helper/custom_field.rb +8 -8
- data/spec/zen/package/extensions/controller/extensions.rb +38 -0
- data/spec/zen/package/menus/controller/menu_items.rb +121 -42
- data/spec/zen/package/menus/controller/menus.rb +125 -38
- data/spec/zen/package/menus/helper/menu.rb +26 -26
- data/spec/zen/package/menus/helper/menu_frontend.rb +104 -0
- data/spec/zen/package/sections/controller/section_entries.rb +145 -89
- data/spec/zen/package/sections/controller/sections.rb +130 -35
- data/spec/zen/package/sections/helper/section.rb +27 -38
- data/spec/zen/package/sections/helper/section_frontend.rb +160 -0
- data/spec/zen/package/settings/controller/settings.rb +73 -8
- data/spec/zen/package/settings/settings.rb +119 -0
- data/spec/zen/package/users/controller/user_groups.rb +134 -34
- data/spec/zen/package/users/controller/users.rb +189 -44
- data/spec/zen/package/users/helper/access.rb +29 -0
- data/spec/zen/package/users/helper/acl.rb +46 -0
- data/spec/zen/package/users/helper/users.rb +20 -64
- data/spec/zen/theme.rb +7 -9
- data/spec/zen/validation.rb +1 -2
- data/zen.gemspec +25 -22
- metadata +303 -222
- data/lib/zen/asset.rb +0 -292
- data/lib/zen/bin/runner.rb +0 -118
- data/lib/zen/error/language_error.rb +0 -10
- data/lib/zen/error/package_error.rb +0 -10
- data/lib/zen/error/plugin_error.rb +0 -10
- data/lib/zen/error/theme_error.rb +0 -10
- data/lib/zen/error/validation_error.rb +0 -10
- data/lib/zen/helper/acl.rb +0 -182
- data/lib/zen/helper/blue_form_vendor.rb +0 -689
- data/lib/zen/language/en/zen_general.yml +0 -25
- data/lib/zen/language/en/zen_models.yml +0 -13
- data/lib/zen/language/nl/zen_general.yml +0 -25
- data/lib/zen/language/nl/zen_models.yml +0 -13
- data/lib/zen/model/settings.rb +0 -78
- data/lib/zen/package/base.rb +0 -62
- data/lib/zen/package/categories/lib/categories/language/en/categories.yml +0 -36
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +0 -34
- data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +0 -40
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +0 -34
- data/lib/zen/package/categories/lib/categories/plugin/categories.rb +0 -141
- data/lib/zen/package/comments/lib/comments/language/en/comments.yml +0 -48
- data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +0 -50
- data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +0 -156
- data/lib/zen/package/comments/lib/comments/plugin/comments.rb +0 -115
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +0 -33
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +0 -40
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +0 -54
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +0 -33
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +0 -40
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +0 -54
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +0 -41
- data/lib/zen/package/menus/lib/menus/language/en/menus.yml +0 -40
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +0 -41
- data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +0 -40
- data/lib/zen/package/menus/lib/menus/plugin/menus.rb +0 -152
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +0 -44
- data/lib/zen/package/sections/lib/sections/language/en/sections.yml +0 -48
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +0 -44
- data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +0 -48
- data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +0 -244
- data/lib/zen/package/sections/lib/sections/plugin/sections.rb +0 -87
- data/lib/zen/package/settings/lib/settings/language/en/settings.yml +0 -36
- data/lib/zen/package/settings/lib/settings/language/nl/settings.yml +0 -37
- data/lib/zen/package/settings/lib/settings/plugin/group_base.rb +0 -39
- data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +0 -133
- data/lib/zen/package/settings/lib/settings/plugin/settings.rb +0 -251
- data/lib/zen/package/users/lib/users/controller/access_rules.rb +0 -284
- data/lib/zen/package/users/lib/users/language/en/access_rules.yml +0 -38
- data/lib/zen/package/users/lib/users/language/en/user_groups.yml +0 -32
- data/lib/zen/package/users/lib/users/language/en/users.yml +0 -57
- data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +0 -38
- data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +0 -32
- data/lib/zen/package/users/lib/users/language/nl/users.yml +0 -57
- data/lib/zen/package/users/lib/users/model/access_rule.rb +0 -42
- data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +0 -65
- data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +0 -49
- data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +0 -120
- data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +0 -102
- data/lib/zen/plugin.rb +0 -182
- data/lib/zen/plugin/base.rb +0 -46
- data/lib/zen/plugin/helper.rb +0 -47
- data/lib/zen/plugin/markup/lib/markup.rb +0 -14
- data/lib/zen/plugin/markup/lib/markup/language/en/markup.yml +0 -6
- data/lib/zen/plugin/markup/lib/markup/markup.rb +0 -165
- data/lib/zen/public/admin/js/zen/lib/asset.js +0 -111
- data/lib/zen/task/plugin.rake +0 -18
- data/lib/zen/theme/base.rb +0 -65
- data/proto/app/config/config.rb +0 -18
- data/spec/fixtures/zen/language/en/spec.yml +0 -10
- data/spec/fixtures/zen/language/nl/spec.yml +0 -7
- data/spec/fixtures/zen/package/settings/plugin/settings.rb +0 -20
- data/spec/zen/asset.rb +0 -97
- data/spec/zen/bin/create.rb +0 -89
- data/spec/zen/bin/runner.rb +0 -47
- data/spec/zen/helper/acl.rb +0 -149
- data/spec/zen/package/categories/plugin/categories.rb +0 -92
- data/spec/zen/package/comments/plugin/anti_spam.rb +0 -59
- data/spec/zen/package/comments/plugin/comments.rb +0 -107
- data/spec/zen/package/menus/plugin/menus.rb +0 -120
- data/spec/zen/package/sections/plugin/section_entries.rb +0 -161
- data/spec/zen/package/sections/plugin/sections.rb +0 -75
- data/spec/zen/package/settings/plugin/settings.rb +0 -33
- data/spec/zen/package/users/controller/access_rules.rb +0 -90
- data/spec/zen/plugin.rb +0 -64
- data/spec/zen/plugin/helper.rb +0 -11
- data/spec/zen/plugin/markup.rb +0 -44
data/lib/zen/plugin.rb
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
require __DIR__('error/plugin_error')
|
|
2
|
-
require __DIR__('plugin/base')
|
|
3
|
-
|
|
4
|
-
#:nodoc:
|
|
5
|
-
module Zen
|
|
6
|
-
##
|
|
7
|
-
# Plugins in Zen are quite similar to packages except for a few differences.
|
|
8
|
-
# The biggest difference is that plugins won't update any Ramaze root
|
|
9
|
-
# directories or language directories. This means that they can't have
|
|
10
|
-
# controllers, models and so on. Plugins are useful for supporting multiple
|
|
11
|
-
# markup formats (Markdown, Textile, etc) and other small tasks such as
|
|
12
|
-
# replacing Email addresses and so on.
|
|
13
|
-
#
|
|
14
|
-
# ## Creating Plugins
|
|
15
|
-
#
|
|
16
|
-
# Creating a plugin happens in two steps. First you'll create your class and
|
|
17
|
-
# then you'll register it so that it can be used by the system. A plugin has
|
|
18
|
-
# a very simple layout, it's just a class with two methods: initialize and
|
|
19
|
-
# call. The most basic skeleton of a plugin looks like the following:
|
|
20
|
-
#
|
|
21
|
-
# class MyPlugin
|
|
22
|
-
# def initialize
|
|
23
|
-
#
|
|
24
|
-
# end
|
|
25
|
-
#
|
|
26
|
-
# def call
|
|
27
|
-
#
|
|
28
|
-
# end
|
|
29
|
-
# end
|
|
30
|
-
#
|
|
31
|
-
# When a plugin is called all specified arguments are sent to the construct
|
|
32
|
-
# method so if your plugin requires a number of arguments be sure to store
|
|
33
|
-
# them. An example of this looks like the following:
|
|
34
|
-
#
|
|
35
|
-
# class MyPlugin
|
|
36
|
-
# def initialize(name)
|
|
37
|
-
# @name = name
|
|
38
|
-
# end
|
|
39
|
-
#
|
|
40
|
-
# def call
|
|
41
|
-
#
|
|
42
|
-
# end
|
|
43
|
-
# end
|
|
44
|
-
#
|
|
45
|
-
# The call method is supposed to return some data. Say we want to capitalize
|
|
46
|
-
# a given name we'd modify the skeleton so that it looks like the following:
|
|
47
|
-
#
|
|
48
|
-
# class MyPlugin
|
|
49
|
-
# def initialize(name)
|
|
50
|
-
# @name = name
|
|
51
|
-
# end
|
|
52
|
-
#
|
|
53
|
-
# def call
|
|
54
|
-
# return @name.upcase
|
|
55
|
-
# end
|
|
56
|
-
# end
|
|
57
|
-
#
|
|
58
|
-
# ## Registering Plugins
|
|
59
|
-
#
|
|
60
|
-
# Now that the plugin is created it's time to tell Zen it actually is a plugin
|
|
61
|
-
# and not some random class that doesn't belong somewhere. This can be done
|
|
62
|
-
# by calling Zen::Plugin.add and specifying a block with the details of the
|
|
63
|
-
# plugin. Example:
|
|
64
|
-
#
|
|
65
|
-
# Zen::Plugin.add do |plugin|
|
|
66
|
-
# plugin.name = :my_plugin
|
|
67
|
-
# plugin.author = 'Your name goes in here'
|
|
68
|
-
# plugin.about = 'A simple plugin that capitalizes a given string/name'
|
|
69
|
-
# plugin.plugin = MyPlugin
|
|
70
|
-
# end
|
|
71
|
-
#
|
|
72
|
-
# The name and plugin setter are the most important. Names should always match
|
|
73
|
-
# the regular expression /[a-z0-9_\-]+/. This is done to ensure names are
|
|
74
|
-
# consistent and easy to remember. It's also used for calling plugins and
|
|
75
|
-
# making sure there are no duplicates.
|
|
76
|
-
#
|
|
77
|
-
# The second important part is the plugin setting. This setter takes the class
|
|
78
|
-
# constant of the plugin that was created earlier on. There's no need to call
|
|
79
|
-
# new(), this will be done by Zen whenever the plugin is actually used.
|
|
80
|
-
#
|
|
81
|
-
# ## Executing Plugins
|
|
82
|
-
#
|
|
83
|
-
# Executing plugins is very easy and can be done by using the global method
|
|
84
|
-
# plugin():
|
|
85
|
-
#
|
|
86
|
-
# plugin(:my_plugin, 'yorick') # => "YORICK"
|
|
87
|
-
#
|
|
88
|
-
# The first argument is the name of the plugin to call, all following
|
|
89
|
-
# arguments will be sent to the plugin's construct method.
|
|
90
|
-
#
|
|
91
|
-
# @author Yorick Peterse
|
|
92
|
-
# @since 0.2.4
|
|
93
|
-
#
|
|
94
|
-
module Plugin
|
|
95
|
-
##
|
|
96
|
-
# Hash containing all registered plugins. The keys are the names of the
|
|
97
|
-
# plugins and the values are instances of Zen::Plugin::Base.
|
|
98
|
-
#
|
|
99
|
-
# @author Yorick Peterse
|
|
100
|
-
# @since 0.2.5
|
|
101
|
-
#
|
|
102
|
-
Registered = {}
|
|
103
|
-
|
|
104
|
-
##
|
|
105
|
-
# Adds a new plugin with the given details.
|
|
106
|
-
#
|
|
107
|
-
# @author Yorick Peterse
|
|
108
|
-
# @since 0.2.4
|
|
109
|
-
# @raise [Zen::PluginError] Error raised whenever the plugin already exists
|
|
110
|
-
# or is missing a certain setter.
|
|
111
|
-
#
|
|
112
|
-
def self.add
|
|
113
|
-
plugin = Zen::Plugin::Base.new
|
|
114
|
-
|
|
115
|
-
yield plugin
|
|
116
|
-
|
|
117
|
-
# Validate the plugin
|
|
118
|
-
plugin.validate
|
|
119
|
-
plugin.name = plugin.name.to_sym
|
|
120
|
-
|
|
121
|
-
Registered[plugin.name] = plugin
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
##
|
|
125
|
-
# Returns a plugin for the given name.
|
|
126
|
-
#
|
|
127
|
-
# @example
|
|
128
|
-
# Zen::Plugin[:markup]
|
|
129
|
-
#
|
|
130
|
-
# @author Yorick Peterse
|
|
131
|
-
# @since 0.2.4
|
|
132
|
-
# @param [String] name The name of the plugin to retrieve.
|
|
133
|
-
# @raise Zen::PluginError Error that's raised when no plugins have been
|
|
134
|
-
# added yet or the specified plugin doesn't exist.
|
|
135
|
-
# @return [Struct] Instance of the plugin.
|
|
136
|
-
#
|
|
137
|
-
def self.[](name)
|
|
138
|
-
name = name.to_sym if name.class != Symbol
|
|
139
|
-
|
|
140
|
-
if !Registered[name]
|
|
141
|
-
raise(Zen::PluginError, "The plugin #{name} doesn't exist.")
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
return Registered[name]
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
##
|
|
148
|
-
# @author Yorick Peterse
|
|
149
|
-
# @since 0.2.8
|
|
150
|
-
# @see Zen::Plugin::SingletonMethods#plugin
|
|
151
|
-
#
|
|
152
|
-
def self.plugin(name, *data, &block)
|
|
153
|
-
if name.class != Symbol
|
|
154
|
-
name = name.to_sym
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
return ::Zen::Plugin[name].plugin.new(*data, &block).call
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
#:nodoc:
|
|
161
|
-
module SingletonMethods
|
|
162
|
-
##
|
|
163
|
-
# Retrieves the given plugin and executes it. All specified parameters
|
|
164
|
-
# will be sent to the plugin as well.
|
|
165
|
-
#
|
|
166
|
-
# @example
|
|
167
|
-
# plugin(:settings, :get, :language)
|
|
168
|
-
#
|
|
169
|
-
# @author Yorick Peterse
|
|
170
|
-
# @since 0.2.5
|
|
171
|
-
# @param [String/Symbol] name The name of the plugin to call.
|
|
172
|
-
# @param [Array] data Any data to pass to the plugin's action (a lambda).
|
|
173
|
-
# @param [Proc] block A block that should be passed to the plugin instead
|
|
174
|
-
# of this method.
|
|
175
|
-
# @return [Mixed]
|
|
176
|
-
#
|
|
177
|
-
def plugin(name, *data, &block)
|
|
178
|
-
::Zen::Plugin.plugin(name, *data, &block)
|
|
179
|
-
end
|
|
180
|
-
end # SingletonMethods
|
|
181
|
-
end # Plugin
|
|
182
|
-
end # Zen
|
data/lib/zen/plugin/base.rb
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
#:nodoc:
|
|
2
|
-
module Zen
|
|
3
|
-
#:nodoc:
|
|
4
|
-
module Plugin
|
|
5
|
-
##
|
|
6
|
-
# Base class used to store the data about plugins such as the name, plugin class, etc.
|
|
7
|
-
#
|
|
8
|
-
# @author Yorick Peterse
|
|
9
|
-
# @since 0.2.5
|
|
10
|
-
#
|
|
11
|
-
class Base
|
|
12
|
-
include ::Zen::Validation
|
|
13
|
-
|
|
14
|
-
# The name of the plugin
|
|
15
|
-
attr_accessor :name
|
|
16
|
-
|
|
17
|
-
# The author of the plugin
|
|
18
|
-
attr_accessor :author
|
|
19
|
-
|
|
20
|
-
# A small description of the plugin
|
|
21
|
-
attr_accessor :about
|
|
22
|
-
|
|
23
|
-
# The URL to the plugin's website
|
|
24
|
-
attr_accessor :url
|
|
25
|
-
|
|
26
|
-
# The class of the plugin
|
|
27
|
-
attr_accessor :plugin
|
|
28
|
-
|
|
29
|
-
##
|
|
30
|
-
# Validates all the attributes.
|
|
31
|
-
#
|
|
32
|
-
# @author Yorick Peterse
|
|
33
|
-
# @since 0.2.5
|
|
34
|
-
#
|
|
35
|
-
def validate
|
|
36
|
-
validates_presence([:name, :author, :about, :plugin])
|
|
37
|
-
validates_format(:name, /[a-z0-9_\-]+/)
|
|
38
|
-
|
|
39
|
-
# Check if the theme doesn't exist
|
|
40
|
-
if ::Zen::Plugin::Registered.key?(name.to_sym)
|
|
41
|
-
raise(::Zen::ValidationError, "The plugin #{name} already exists.")
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
data/lib/zen/plugin/helper.rb
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
#:nodoc:
|
|
2
|
-
module Zen
|
|
3
|
-
#:nodoc:
|
|
4
|
-
module Plugin
|
|
5
|
-
##
|
|
6
|
-
# Module containing various methods that can be used for developing plugins.
|
|
7
|
-
#
|
|
8
|
-
# @author Yorick Peterse
|
|
9
|
-
# @since 0.2.5
|
|
10
|
-
#
|
|
11
|
-
module Helper
|
|
12
|
-
|
|
13
|
-
##
|
|
14
|
-
# Method that can be used to validate the class of a given variable. If the class
|
|
15
|
-
# isn't included in the whitelist an error will be triggered explaining the error.
|
|
16
|
-
#
|
|
17
|
-
# @example
|
|
18
|
-
# username = 10
|
|
19
|
-
# validate_type(username, :username, [String]) # => TypeError: "\"username\" can only
|
|
20
|
-
# be an instance of String but got Integer."
|
|
21
|
-
#
|
|
22
|
-
# @author Yorick Peterse
|
|
23
|
-
# @since 0.2.5
|
|
24
|
-
# @param [Mixed] variable The variable to validate.
|
|
25
|
-
# @param [Symbol/String] name The name of the variable to validate.
|
|
26
|
-
# @param [Array] whitelist Whitelist of the allowed classes.
|
|
27
|
-
# @raise TypeError Raised whenever the variable's class wasn't allowed.
|
|
28
|
-
#
|
|
29
|
-
def validate_type(variable, name, whitelist)
|
|
30
|
-
if whitelist.class != Array
|
|
31
|
-
whitelist = [whitelist]
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
name = name.to_s
|
|
35
|
-
classes = whitelist.join(' or ').to_s
|
|
36
|
-
|
|
37
|
-
if !whitelist.include?(variable.class)
|
|
38
|
-
raise(
|
|
39
|
-
TypeError,
|
|
40
|
-
"\"#{name}\" can only be an instance of #{classes} but got #{variable.class}"
|
|
41
|
-
)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Load our language packs
|
|
2
|
-
Zen::Language.options.paths.push(__DIR__('markup'))
|
|
3
|
-
Zen::Language.load('markup')
|
|
4
|
-
|
|
5
|
-
# Load the actual plugin
|
|
6
|
-
require __DIR__('markup/markup')
|
|
7
|
-
|
|
8
|
-
# Describe the plugin
|
|
9
|
-
Zen::Plugin.add do |plugin|
|
|
10
|
-
plugin.name = 'markup'
|
|
11
|
-
plugin.author = 'Yorick Peterse'
|
|
12
|
-
plugin.about = 'Plugin used for converting various markup formats to HTML.'
|
|
13
|
-
plugin.plugin = Zen::Plugin::Markup
|
|
14
|
-
end
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
#:nodoc
|
|
2
|
-
module Zen
|
|
3
|
-
#:nodoc
|
|
4
|
-
module Plugin
|
|
5
|
-
##
|
|
6
|
-
# The Markup plugin is used to convert the given markup using the specified
|
|
7
|
-
# engine. Out of the box this plugin is capable of doing the following:
|
|
8
|
-
#
|
|
9
|
-
# * Markdown -> HTML
|
|
10
|
-
# * Textile -> HTML
|
|
11
|
-
# * HTML -> Plain text (escapes HTML)
|
|
12
|
-
# * Regular HTML
|
|
13
|
-
#
|
|
14
|
-
# When using Markdown you'll have to make sure RDiscount is loaded, for
|
|
15
|
-
# Textile this should be RedCloth.
|
|
16
|
-
#
|
|
17
|
-
# ## Usage
|
|
18
|
-
#
|
|
19
|
-
# Using this plugin can be done as following::
|
|
20
|
-
#
|
|
21
|
-
# plugin(:markup, :markdown, "hello **world**")
|
|
22
|
-
#
|
|
23
|
-
# ## Adding Engines
|
|
24
|
-
#
|
|
25
|
-
# In order to add a custom markdown engine (e.g. RDoc) you'll have to update
|
|
26
|
-
# Zen::Plugin::Markup::Engines so that it includes the name and human
|
|
27
|
-
# readable name of the engine you wish to use. This can be done as
|
|
28
|
-
# following:
|
|
29
|
-
#
|
|
30
|
-
# Zen::Plugin::Markup::Engines[:rdoc] => 'RDoc'
|
|
31
|
-
#
|
|
32
|
-
# Once this is done you'll need to define a method that matches the key
|
|
33
|
-
# you've just added. In this case it will be named "rdoc":
|
|
34
|
-
#
|
|
35
|
-
# module Zen
|
|
36
|
-
# module Plugin
|
|
37
|
-
# class Markup
|
|
38
|
-
# def rdoc(markup)
|
|
39
|
-
# # Do something with the markup in the variable "markup"
|
|
40
|
-
# end
|
|
41
|
-
# end
|
|
42
|
-
# end
|
|
43
|
-
# end
|
|
44
|
-
#
|
|
45
|
-
# Once this has been done you're able to convert RDoc markup to HTML using
|
|
46
|
-
# this plugin.
|
|
47
|
-
#
|
|
48
|
-
# @author Yorick Peterse
|
|
49
|
-
# @since 0.2.5
|
|
50
|
-
#
|
|
51
|
-
class Markup
|
|
52
|
-
include Ramaze::Helper::CGI
|
|
53
|
-
|
|
54
|
-
# Load the language pack in the class method scope rather than the
|
|
55
|
-
# instance's scope
|
|
56
|
-
class << self
|
|
57
|
-
include Zen::Language
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
##
|
|
61
|
-
# Hash containing the keys of the engines to use and their human friendly
|
|
62
|
-
# names (used in the backend). Note that the keys of this hash should be
|
|
63
|
-
# strings.
|
|
64
|
-
#
|
|
65
|
-
# @author Yorick Peterse
|
|
66
|
-
# @since 0.2.5
|
|
67
|
-
#
|
|
68
|
-
Engines = {
|
|
69
|
-
'markdown' => lang('markup.engines.markdown'),
|
|
70
|
-
'textile' => lang('markup.engines.textile'),
|
|
71
|
-
'plain' => lang('markup.engines.plain'),
|
|
72
|
-
'html' => lang('markup.engines.html')
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
##
|
|
76
|
-
# Creates a new instance of the markup plugin and validates all the given
|
|
77
|
-
# parameters.
|
|
78
|
-
#
|
|
79
|
-
# @author Yorick Peterse
|
|
80
|
-
# @since 0.2.5
|
|
81
|
-
# @param [Symbol] engine The markup engine to use (e.g. :markdown).
|
|
82
|
-
# @param [String] markup The markup to convert to HTML or something else.
|
|
83
|
-
#
|
|
84
|
-
def initialize(engine = 'markdown', markup = '')
|
|
85
|
-
@engine, @markup = engine.to_s, markup
|
|
86
|
-
|
|
87
|
-
# Validate the given engine
|
|
88
|
-
if !Engines.keys.include?(@engine)
|
|
89
|
-
raise(
|
|
90
|
-
ArgumentError,
|
|
91
|
-
"The markup engine \"#{@engine}\" is invalid."
|
|
92
|
-
)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
# Does the engine have a matching method?
|
|
96
|
-
if !respond_to?(@engine)
|
|
97
|
-
raise(
|
|
98
|
-
NoMethodError,
|
|
99
|
-
"The engine \"#{@engine}\" has no matching method."
|
|
100
|
-
)
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
##
|
|
105
|
-
# Converts the markup into HTML or plain text.
|
|
106
|
-
#
|
|
107
|
-
# @author Yorick Peterse
|
|
108
|
-
# @since 0.2.5
|
|
109
|
-
# @return [String] The converted markup.
|
|
110
|
-
#
|
|
111
|
-
def call
|
|
112
|
-
return send(@engine, @markup)
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
##
|
|
116
|
-
# Converts the Markdown markup to HTML using RDiscount.
|
|
117
|
-
#
|
|
118
|
-
# @author Yorick Peterse
|
|
119
|
-
# @since 0.2.5
|
|
120
|
-
# @param [String] markup The Markdown string to convert to HTML.
|
|
121
|
-
# @return [String] The HTML returned by RDiscount.
|
|
122
|
-
#
|
|
123
|
-
def markdown(markup)
|
|
124
|
-
return RDiscount.new(markup).to_html
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
##
|
|
128
|
-
# Converts Textile to HTML using RedCloth.
|
|
129
|
-
#
|
|
130
|
-
# @author Yorick Peterse
|
|
131
|
-
# @since 0.2.5
|
|
132
|
-
# @param [String] markup The Textile markup to convert to HTML.
|
|
133
|
-
# @return [String] The HTML returned by RedCloth.
|
|
134
|
-
#
|
|
135
|
-
def textile(markup)
|
|
136
|
-
return RedCloth.new(markup).to_html
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
##
|
|
140
|
-
# Escapes all HTML using Ramaze::Helper::CGI.
|
|
141
|
-
#
|
|
142
|
-
# @author Yorick Peterse
|
|
143
|
-
# @since 0.2.5
|
|
144
|
-
# @param [String] markup The markup in which all HTML tags should be
|
|
145
|
-
# escaped.
|
|
146
|
-
# @return [String] String containing the escaped HTML.
|
|
147
|
-
#
|
|
148
|
-
def plain(markup)
|
|
149
|
-
return h(markup)
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
##
|
|
153
|
-
# Ignores the markup and just returns it.
|
|
154
|
-
#
|
|
155
|
-
# @author Yorick Peterse
|
|
156
|
-
# @since 0.2.5
|
|
157
|
-
# @param [String] markup The markup to return.
|
|
158
|
-
# @return [String] String containing our markup.
|
|
159
|
-
#
|
|
160
|
-
def html(markup)
|
|
161
|
-
return markup
|
|
162
|
-
end
|
|
163
|
-
end # Markup
|
|
164
|
-
end # Plugin
|
|
165
|
-
end # Zen
|