trusty-cms 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -1
- data/CHANGELOG.md +1 -1
- data/Gemfile +12 -8
- data/Gemfile.lock +141 -82
- data/LICENSE.md +1 -1
- data/README.md +48 -5
- data/Vagrantfile +122 -0
- data/{public → app/assets}/images/admin/add_tab.png +0 -0
- data/app/assets/images/admin/animated-overlay.gif +0 -0
- data/{public → app/assets}/images/admin/avatar_32x32.png +0 -0
- data/{public → app/assets}/images/admin/avatar_64x64.png +0 -0
- data/{public → app/assets}/images/admin/avatar_96x96.png +0 -0
- data/{public → app/assets}/images/admin/brown_bottom_line.gif +0 -0
- data/{public → app/assets}/images/admin/calendar_down.gif +0 -0
- data/{public → app/assets}/images/admin/collapse.png +0 -0
- data/{public/images/admin/expand.png → app/assets/images/admin/collapsed.png} +0 -0
- data/{public → app/assets}/images/admin/draft_page.png +0 -0
- data/{public → app/assets}/images/admin/image.png +0 -0
- data/{public → app/assets}/images/admin/javascript.png +0 -0
- data/{public → app/assets}/images/admin/layout.png +0 -0
- data/{public → app/assets}/images/admin/metadata_toggle.png +0 -0
- data/{public → app/assets}/images/admin/minus.png +0 -0
- data/{public → app/assets}/images/admin/minus_disabled.png +0 -0
- data/{public → app/assets}/images/admin/minus_grey.png +0 -0
- data/{public → app/assets}/images/admin/navigation_secondary_separator.gif +0 -0
- data/{public → app/assets}/images/admin/page.png +0 -0
- data/{public → app/assets}/images/admin/plus.png +0 -0
- data/{public → app/assets}/images/admin/plus_disabled.png +0 -0
- data/{public → app/assets}/images/admin/plus_grey.png +0 -0
- data/{public → app/assets}/images/admin/popup_border_background.png +0 -0
- data/{public → app/assets}/images/admin/popup_border_bottom_left.png +0 -0
- data/{public → app/assets}/images/admin/popup_border_bottom_right.png +0 -0
- data/{public → app/assets}/images/admin/popup_border_top_left.png +0 -0
- data/{public → app/assets}/images/admin/popup_border_top_right.png +0 -0
- data/{public → app/assets}/images/admin/search.png +0 -0
- data/{public → app/assets}/images/admin/single_form_shadow.png +0 -0
- data/{public → app/assets}/images/admin/snippet.png +0 -0
- data/{public → app/assets}/images/admin/spinner.gif +0 -0
- data/{public → app/assets}/images/admin/status_background.png +0 -0
- data/{public → app/assets}/images/admin/status_bottom_left.png +0 -0
- data/{public → app/assets}/images/admin/status_bottom_right.png +0 -0
- data/{public → app/assets}/images/admin/status_spinner.gif +0 -0
- data/{public → app/assets}/images/admin/status_top_left.png +0 -0
- data/{public → app/assets}/images/admin/status_top_right.png +0 -0
- data/{public → app/assets}/images/admin/stylesheet.png +0 -0
- data/{public → app/assets}/images/admin/tab_close.png +0 -0
- data/app/assets/images/admin/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/images/admin/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/images/admin/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/images/admin/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/images/admin/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/images/admin/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/images/admin/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/images/admin/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/admin/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/images/admin/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/admin/ui-icons_888888_256x240.png +0 -0
- data/app/assets/images/admin/ui-icons_cd0a0a_256x240.png +0 -0
- data/{public → app/assets}/images/admin/upload.png +0 -0
- data/{public → app/assets}/images/admin/virtual_page.png +0 -0
- data/{public → app/assets}/images/radiant/radiant-badge-color.png +0 -0
- data/app/assets/javascripts/admin.js +35 -0
- data/app/assets/javascripts/admin/autopopulate-breadcrumb.js +35 -0
- data/{public → app/assets}/javascripts/admin/cookie.js +13 -13
- data/app/assets/javascripts/admin/datecheck.js +7 -0
- data/app/assets/javascripts/admin/dropdown.js +26 -0
- data/app/assets/javascripts/admin/jquery-ui.js +2371 -0
- data/app/assets/javascripts/admin/jquery.treetable.js +629 -0
- data/app/assets/javascripts/admin/jquery.validate.min.js +4 -0
- data/app/assets/javascripts/admin/modernizr.js +409 -0
- data/app/assets/javascripts/admin/more-or-less.js +38 -0
- data/app/assets/javascripts/admin/page-edit.js +51 -0
- data/app/assets/javascripts/admin/pagefield.js +35 -0
- data/app/assets/javascripts/admin/persist.min.js +31 -0
- data/app/assets/javascripts/admin/popup.js +40 -0
- data/app/assets/javascripts/admin/preview.js +40 -0
- data/app/assets/javascripts/admin/tabcontrol.js.erb +81 -0
- data/app/assets/javascripts/admin/tags.js +41 -0
- data/app/assets/javascripts/admin/treetable.js +50 -0
- data/app/assets/javascripts/admin/utilities.js +5 -0
- data/app/assets/javascripts/admin/validation.js +7 -0
- data/app/assets/javascripts/admin/validations/user_validations.js +21 -0
- data/app/assets/javascripts/ckeditor/config.js +10 -0
- data/{config/initializers/configuration_extensions.rb → app/assets/javascripts/ckeditor/contents.css} +0 -0
- data/app/assets/javascripts/notes.md +40 -0
- data/app/assets/stylesheets/admin/_base.scss +17 -0
- data/app/assets/stylesheets/admin/main.scss +34 -0
- data/app/assets/stylesheets/admin/modules/_boxes.scss +7 -0
- data/app/assets/stylesheets/admin/modules/_gradients.scss +5 -0
- data/app/assets/stylesheets/admin/modules/_links.scss +24 -0
- data/app/assets/stylesheets/admin/partials/_actions.scss +118 -0
- data/app/assets/stylesheets/admin/partials/_avatars.scss +12 -0
- data/app/assets/stylesheets/admin/partials/_content.scss +74 -0
- data/app/assets/stylesheets/admin/partials/_dateinput.scss +71 -0
- data/app/assets/stylesheets/admin/partials/_deprecated.scss +65 -0
- data/app/assets/stylesheets/admin/partials/_dropdown.scss +34 -0
- data/app/assets/stylesheets/admin/partials/_footer.scss +14 -0
- data/app/assets/stylesheets/admin/partials/_forms.scss +419 -0
- data/app/assets/stylesheets/admin/partials/_header.scss +135 -0
- data/app/assets/stylesheets/admin/partials/_index.scss +198 -0
- data/app/assets/stylesheets/admin/partials/_jquery-ui-structure.scss +258 -0
- data/app/assets/stylesheets/admin/partials/_jquery-ui-theme.scss +410 -0
- data/app/assets/stylesheets/admin/partials/_jquery-ui.scss +650 -0
- data/app/assets/stylesheets/admin/partials/_layout.scss +14 -0
- data/app/assets/stylesheets/admin/partials/_messages.scss +13 -0
- data/app/assets/stylesheets/admin/partials/_popup.scss +263 -0
- data/app/assets/stylesheets/admin/partials/_tabcontrol.scss +94 -0
- data/app/assets/stylesheets/admin/partials/_toolbar.scss +40 -0
- data/app/assets/stylesheets/admin/partials/_treetable.scss +120 -0
- data/app/assets/stylesheets/admin/partials/_typography.scss +77 -0
- data/app/assets/stylesheets/admin/partials/_validations.scss +22 -0
- data/app/controllers/admin/configuration_controller.rb +9 -9
- data/app/controllers/admin/extensions_controller.rb +1 -1
- data/app/controllers/admin/page_parts_controller.rb +1 -1
- data/app/controllers/admin/pages_controller.rb +8 -5
- data/app/controllers/admin/preferences_controller.rb +8 -25
- data/app/controllers/admin/resource_controller.rb +19 -20
- data/app/controllers/admin/users_controller.rb +7 -7
- data/app/controllers/admin/welcome_controller.rb +9 -9
- data/app/controllers/application_controller.rb +13 -24
- data/app/controllers/site_controller.rb +2 -1
- data/app/helpers/admin/configuration_helper.rb +20 -19
- data/app/helpers/admin/extensions_helper.rb +1 -1
- data/app/helpers/admin/layouts_helper.rb +1 -19
- data/app/helpers/admin/node_helper.rb +21 -7
- data/app/helpers/admin/pages_helper.rb +4 -92
- data/app/helpers/admin/preferences_helper.rb +1 -1
- data/app/helpers/admin/regions_helper.rb +5 -4
- data/app/helpers/application_helper.rb +62 -64
- data/app/models/deprecated_tags.rb +1 -21
- data/app/models/file_not_found_page.rb +8 -8
- data/app/models/layout.rb +3 -2
- data/app/models/menu_renderer.rb +7 -7
- data/app/models/page.rb +8 -7
- data/app/models/page_context.rb +10 -10
- data/app/models/page_field.rb +1 -0
- data/app/models/page_part.rb +5 -5
- data/app/models/standard_tags.rb +95 -75
- data/app/models/status.rb +8 -8
- data/app/models/text_filter.rb +5 -5
- data/app/models/trusty_cms/config.rb +36 -42
- data/app/models/trusty_cms/page_response_cache_director.rb +2 -1
- data/app/models/user.rb +1 -10
- data/app/models/user_action_observer.rb +5 -5
- data/app/views/admin/configuration/edit.html.haml +5 -5
- data/app/views/admin/configuration/show.html.haml +11 -11
- data/app/views/admin/extensions/index.html.haml +4 -4
- data/app/views/admin/layouts/_form.html.haml +6 -7
- data/app/views/admin/layouts/_popups.html.haml +4 -0
- data/app/views/admin/layouts/edit.html.haml +4 -2
- data/app/views/admin/layouts/new.html.haml +1 -1
- data/app/views/admin/layouts/remove.html.haml +3 -3
- data/app/views/admin/page_fields/_page_field.html.haml +3 -2
- data/app/views/admin/page_parts/_page_part.html.haml +4 -5
- data/app/views/admin/pages/_fields.html.haml +2 -3
- data/app/views/admin/pages/_meta_row.html.haml +2 -2
- data/app/views/admin/pages/_node.html.haml +4 -9
- data/app/views/admin/pages/_popups.html.haml +9 -5
- data/app/views/admin/pages/children.html.haml +5 -1
- data/app/views/admin/pages/edit.html.haml +1 -3
- data/app/views/admin/pages/index.html.haml +2 -2
- data/app/views/admin/pages/new.html.haml +2 -4
- data/app/views/admin/pages/remove.html.haml +8 -7
- data/app/views/admin/preferences/edit.html.haml +14 -14
- data/app/views/admin/references/_tag_reference.haml +1 -1
- data/app/views/admin/references/filters.haml +1 -1
- data/app/views/admin/references/tags.haml +9 -27
- data/app/views/admin/users/_avatar.html.haml +2 -2
- data/app/views/admin/users/_form.html.haml +16 -16
- data/app/views/admin/users/_password_fields.html.haml +3 -3
- data/app/views/admin/users/edit.html.haml +1 -1
- data/app/views/admin/users/new.html.haml +2 -2
- data/app/views/admin/users/remove.html.haml +4 -4
- data/app/views/admin/welcome/login.html.haml +6 -6
- data/app/views/layouts/application.html.haml +22 -11
- data/app/views/site/not_found.html.haml +1 -1
- data/app/views/site/show_page.html.haml +1 -0
- data/bin/ci/before_script +0 -5
- data/config.ru +4 -0
- data/config/application.rb +118 -108
- data/config/boot.rb +1 -1
- data/config/database.mysql.yml +3 -6
- data/config/environments/development.rb +17 -5
- data/config/environments/production.rb +20 -3
- data/config/environments/test.rb +17 -0
- data/config/initializers/active_record_extensions.rb +1 -1
- data/config/initializers/haml.rb +1 -1
- data/config/initializers/rails_patch.rb +1 -1
- data/config/initializers/secret_token.rb +7 -0
- data/config/initializers/string_extensions.rb +1 -1
- data/config/initializers/symbol_extensions.rb +1 -1
- data/config/initializers/{radiant_config.rb → trusty_cms_config.rb} +2 -2
- data/config/locales/en.yml +33 -33
- data/config/locales/en_available_tags.yml +62 -62
- data/config/routes.rb +18 -10
- data/db/migrate/001_create_radiant_tables.rb +3 -3
- data/db/migrate/002_insert_initial_data.rb +2 -2
- data/db/migrate/005_add_virtual_column_to_page.rb +1 -1
- data/db/migrate/006_integer_columns_to_boolean.rb +9 -9
- data/db/migrate/007_remove_virtual_column_from_page.rb +1 -1
- data/db/migrate/008_add_virtual_column_to_page_again.rb +1 -1
- data/db/migrate/010_merge_behaviors_and_pages.rb +6 -6
- data/db/migrate/014_rename_config_default_parts_key.rb +3 -3
- data/db/migrate/015_add_optimistic_locking.rb +2 -2
- data/db/migrate/020_add_session_info_to_users.rb +1 -1
- data/db/migrate/20081203140407_add_indexes.rb +2 -2
- data/db/migrate/20090226140109_add_user_language.rb +2 -2
- data/db/migrate/20100805155020_convert_page_metas.rb +1 -1
- data/db/migrate/20110902203823_add_allowed_children_cache_to_pages.rb +1 -1
- data/db/migrate/20111016150725_extend_page_part_content_limit.rb +1 -1
- data/db/migrate/20120209231801_change_pages_allowed_children_cache_to_text.rb +3 -4
- data/db/schema.rb +0 -6
- data/lib/active_record_extensions/active_record_extensions.rb +3 -3
- data/lib/annotatable.rb +3 -3
- data/lib/configuration_extensions/configuration_extensions.rb +7 -42
- data/lib/generators/extension/extension_generator.rb +11 -11
- data/lib/generators/extension/templates/README.md +1 -1
- data/lib/generators/extension/templates/cucumber.yml +1 -1
- data/lib/generators/extension/templates/cucumber_env.rb +2 -2
- data/lib/generators/extension/templates/cucumber_paths.rb +7 -7
- data/lib/generators/extension/templates/en.yml +1 -1
- data/lib/generators/extension/templates/functional_test.rb +3 -3
- data/lib/generators/extension/templates/migration.rb +4 -4
- data/lib/generators/extension/templates/routes.rb +1 -1
- data/lib/generators/extension/templates/spec_helper.rb +1 -1
- data/lib/generators/extension/templates/tasks.rake +5 -5
- data/lib/generators/extension/templates/test_helper.rb +5 -5
- data/lib/generators/extension_controller/extension_controller_generator.rb +11 -11
- data/lib/generators/extension_controller/templates/helper.rb +1 -1
- data/lib/generators/extension_controller/templates/helper_spec.rb +2 -2
- data/lib/generators/extension_controller/templates/view.html.erb +1 -1
- data/lib/generators/extension_controller/templates/view_spec.rb +1 -1
- data/lib/generators/extension_mailer/extension_mailer_generator.rb +10 -10
- data/lib/generators/extension_mailer/templates/mailer.rb +2 -2
- data/lib/generators/extension_migration/extension_migration_generator.rb +5 -5
- data/lib/generators/extension_model/extension_model_generator.rb +10 -10
- data/lib/generators/generator_base_extension.rb +1 -1
- data/lib/generators/instance/instance_generator.rb +14 -14
- data/lib/generators/instance/templates/databases/db2.yml +3 -3
- data/lib/generators/instance/templates/databases/mysql.yml +2 -2
- data/lib/generators/instance/templates/instance_boot.rb +4 -4
- data/lib/generators/instance/templates/instance_environment.rb +13 -3
- data/lib/generators/instance/templates/instance_radiant_config.rb +2 -2
- data/lib/generators/language_extension/language_extension_generator.rb +14 -14
- data/lib/generators/language_extension/templates/available_tags.yml +91 -91
- data/lib/generators/language_extension/templates/cucumber.yml +1 -1
- data/lib/generators/language_extension/templates/cucumber_env.rb +3 -3
- data/lib/generators/language_extension/templates/cucumber_paths.rb +4 -4
- data/lib/generators/language_extension/templates/extension.rb +1 -1
- data/lib/generators/language_extension/templates/functional_test.rb +3 -3
- data/lib/generators/language_extension/templates/lang.yml +39 -39
- data/lib/generators/language_extension/templates/spec_helper.rb +1 -1
- data/lib/generators/language_extension/templates/tasks.rake +3 -3
- data/lib/generators/language_extension/templates/test_helper.rb +5 -5
- data/lib/inheritable_class_attributes.rb +11 -11
- data/lib/local_time.rb +2 -2
- data/lib/login_system.rb +5 -6
- data/lib/method_observer.rb +9 -9
- data/lib/simpleton.rb +7 -7
- data/lib/string_extensions/string_extensions.rb +5 -5
- data/lib/symbol_extensions/symbol_extensions.rb +1 -1
- data/lib/tasks/database.rake +17 -20
- data/lib/tasks/extensions.rake +2 -2
- data/lib/tasks/framework.rake +13 -13
- data/lib/tasks/instance.rake +1 -1
- data/lib/tasks/radiant_config.rake +3 -3
- data/lib/tasks/translate.rake +10 -10
- data/lib/tasks/undefine.rake +1 -5
- data/lib/translation_support.rb +7 -7
- data/lib/trusty_cms.rb +1 -1
- data/lib/trusty_cms/admin_ui.rb +34 -34
- data/lib/trusty_cms/admin_ui/region_partials.rb +3 -3
- data/lib/trusty_cms/admin_ui/region_set.rb +5 -5
- data/lib/trusty_cms/available_locales.rb +1 -1
- data/lib/trusty_cms/config/definition.rb +21 -21
- data/lib/trusty_cms/engine.rb +4 -7
- data/lib/trusty_cms/extension.rb +15 -15
- data/lib/trusty_cms/extension/script.rb +7 -7
- data/lib/trusty_cms/extension_loader.rb +23 -11
- data/lib/trusty_cms/extension_migrator.rb +9 -9
- data/lib/trusty_cms/extension_path.rb +23 -23
- data/lib/trusty_cms/initializer.rb +33 -15
- data/lib/trusty_cms/pagination/link_renderer.rb +3 -3
- data/lib/trusty_cms/resource_responses.rb +15 -15
- data/lib/trusty_cms/setup.rb +35 -33
- data/lib/trusty_cms/taggable.rb +18 -18
- data/public/404.html +1 -1
- data/public/500.html +1 -1
- data/public/loading-iframe.html +1 -1
- data/public/robots.txt +1 -1
- data/script/rails +0 -0
- data/spec/features/admin_login_spec.rb +92 -0
- data/spec/features/config_spec.rb +34 -0
- data/spec/features/javascript_smoke_spec.rb +59 -0
- data/spec/features/layouts_spec.rb +49 -0
- data/spec/features/pages_spec.rb +55 -0
- data/spec/fixtures/users.yml +16 -0
- data/spec/helpers/regions_helper_spec.rb +16 -0
- data/spec/rails_helper.rb +74 -0
- data/spec/spec_helper.rb +78 -0
- data/spec/support/custom_actions.rb +9 -0
- data/trusty_cms.gemspec +22 -25
- metadata +393 -242
- checksums.yaml +0 -15
- data/config/compass.config +0 -15
- data/config/database.db2.yml +0 -20
- data/config/database.postgresql.yml +0 -25
- data/config/database.sqlite.yml +0 -16
- data/config/database.sqlserver.yml +0 -20
- data/config/initializers/object_extensions.rb +0 -1
- data/config/preinitializer.rb +0 -18
- data/lib/object_extensions/object_extensions.rb +0 -5
- data/lib/tasks/prototype.rake +0 -31
- data/lib/tasks/release.rake +0 -131
- data/lib/trusty_cms/cache.rb +0 -100
- data/public/javascripts/admin/application.js +0 -94
- data/public/javascripts/admin/codearea.js +0 -165
- data/public/javascripts/admin/controls.js +0 -965
- data/public/javascripts/admin/dateinput.js +0 -402
- data/public/javascripts/admin/dragdrop.js +0 -974
- data/public/javascripts/admin/dropdown.js +0 -216
- data/public/javascripts/admin/effects.js +0 -1122
- data/public/javascripts/admin/lowpro.js +0 -340
- data/public/javascripts/admin/overrides.js +0 -1
- data/public/javascripts/admin/page_preview.js +0 -41
- data/public/javascripts/admin/pagefield.js +0 -54
- data/public/javascripts/admin/pagestatus.js +0 -17
- data/public/javascripts/admin/popup.js +0 -339
- data/public/javascripts/admin/prototype.js +0 -4874
- data/public/javascripts/admin/ruledtable.js +0 -13
- data/public/javascripts/admin/shortcuts.js +0 -33
- data/public/javascripts/admin/sitemap.js +0 -149
- data/public/javascripts/admin/status.js +0 -233
- data/public/javascripts/admin/tabcontrol.js +0 -123
- data/public/javascripts/admin/toggle.js +0 -430
- data/public/javascripts/admin/utility.js +0 -53
- data/public/javascripts/admin/validationerror.js +0 -18
- data/public/stylesheets/sass/admin/_base.sass +0 -18
- data/public/stylesheets/sass/admin/main.sass +0 -27
- data/public/stylesheets/sass/admin/modules/_boxes.sass +0 -6
- data/public/stylesheets/sass/admin/modules/_gradients.sass +0 -4
- data/public/stylesheets/sass/admin/modules/_links.sass +0 -18
- data/public/stylesheets/sass/admin/overrides.sass +0 -2
- data/public/stylesheets/sass/admin/partials/_actions.sass +0 -96
- data/public/stylesheets/sass/admin/partials/_avatars.sass +0 -10
- data/public/stylesheets/sass/admin/partials/_content.sass +0 -58
- data/public/stylesheets/sass/admin/partials/_dateinput.sass +0 -62
- data/public/stylesheets/sass/admin/partials/_deprecated.sass +0 -55
- data/public/stylesheets/sass/admin/partials/_dropdown.sass +0 -28
- data/public/stylesheets/sass/admin/partials/_footer.sass +0 -12
- data/public/stylesheets/sass/admin/partials/_forms.sass +0 -322
- data/public/stylesheets/sass/admin/partials/_header.sass +0 -114
- data/public/stylesheets/sass/admin/partials/_index.sass +0 -147
- data/public/stylesheets/sass/admin/partials/_layout.sass +0 -10
- data/public/stylesheets/sass/admin/partials/_messages.sass +0 -10
- data/public/stylesheets/sass/admin/partials/_popup.sass +0 -213
- data/public/stylesheets/sass/admin/partials/_tabcontrol.sass +0 -72
- data/public/stylesheets/sass/admin/partials/_toolbar.sass +0 -31
- data/public/stylesheets/sass/admin/partials/_typography.sass +0 -60
- data/public/stylesheets/sass/admin/partials/_validations.sass +0 -19
- data/rails/init.rb +0 -1
- data/script/about +0 -4
- data/script/breakpointer +0 -3
- data/script/console +0 -3
- data/script/dbconsole +0 -3
- data/script/destroy +0 -3
- data/script/generate +0 -3
- data/script/performance/benchmarker +0 -3
- data/script/performance/profiler +0 -3
- data/script/performance/request +0 -3
- data/script/plugin +0 -3
- data/script/process/inspector +0 -3
- data/script/process/reaper +0 -3
- data/script/process/spawner +0 -3
- data/script/process/spinner +0 -3
- data/script/runner +0 -3
- data/script/server +0 -3
- data/script/version +0 -5
- data/spec/ci/database.postgresql.yml +0 -4
- data/spec/ci/database.sqlite.yml +0 -3
@@ -1,10 +1,10 @@
|
|
1
1
|
module TrustyCms
|
2
2
|
class ExtensionPath
|
3
|
-
# This class holds information about extensions that may be loaded. It has two roles: to remember the
|
3
|
+
# This class holds information about extensions that may be loaded. It has two roles: to remember the
|
4
4
|
# location of the extension so that we don't have to search for it again, and to look within that path
|
5
5
|
# for significant application subdirectories.
|
6
6
|
#
|
7
|
-
# We can't just retrieve this information from the Extension class because the initializer sets up
|
7
|
+
# We can't just retrieve this information from the Extension class because the initializer sets up
|
8
8
|
# most of the application load_paths before plugins (including extensions) are loaded. You can think
|
9
9
|
# of this as a sort of pre-extension class preparing the way for extension loading.
|
10
10
|
#
|
@@ -22,21 +22,21 @@ module TrustyCms
|
|
22
22
|
|
23
23
|
attr_accessor :name, :path
|
24
24
|
@@known_paths = {}
|
25
|
-
|
25
|
+
|
26
26
|
def initialize(options = {}) #:nodoc
|
27
|
-
@name, @path = options[:name], options[:path]
|
27
|
+
@name, @path = options[:name].underscore, options[:path]
|
28
28
|
@@known_paths[@name.to_sym] = self
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
def required
|
32
32
|
File.join(path, "#{name}_extension")
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def to_s
|
36
36
|
path
|
37
37
|
end
|
38
|
-
|
39
|
-
# Builds a new ExtensionPath object from the supplied path, working out the name of the extension by
|
38
|
+
|
39
|
+
# Builds a new ExtensionPath object from the supplied path, working out the name of the extension by
|
40
40
|
# stripping the extra bits from radiant-something-extension-1.0.0 to leave just 'something'. The object
|
41
41
|
# is returned, and also remembered here for later use by the initializer (to find load paths) and the
|
42
42
|
# ExtensionLoader, to load and activate the extension.
|
@@ -48,20 +48,20 @@ module TrustyCms
|
|
48
48
|
name = File.basename(name).gsub(/^trusty-|-extension(-[\d\.a-z]+|-[a-z\d]+)*$/, '')
|
49
49
|
new(:name => name, :path => path)
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
# Forgets all recorded extension paths.
|
53
53
|
# Currently only used in testing.
|
54
54
|
#
|
55
55
|
def self.clear_paths!
|
56
56
|
@@known_paths = {}
|
57
57
|
end
|
58
|
-
|
59
|
-
# Returns a list of all the likely load paths found within this extension root. It includes all of these
|
58
|
+
|
59
|
+
# Returns a list of all the likely load paths found within this extension root. It includes all of these
|
60
60
|
# that exist and are directories:
|
61
61
|
#
|
62
62
|
# * path
|
63
|
-
# * path/lib
|
64
|
-
# * path/app/models
|
63
|
+
# * path/lib
|
64
|
+
# * path/app/models
|
65
65
|
# * path/app/controllers
|
66
66
|
# * path/app/metal
|
67
67
|
# * path/app/helpers
|
@@ -86,7 +86,7 @@ module TrustyCms
|
|
86
86
|
#
|
87
87
|
def locale_paths
|
88
88
|
if check_subdirectory("config/locales")
|
89
|
-
Dir[File.join("#{path}","config/locales","*.{rb,yml}")]
|
89
|
+
Dir[File.join("#{path}","config/locales","*.{rb,yml}")]
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
@@ -111,7 +111,7 @@ module TrustyCms
|
|
111
111
|
check_subdirectory("app/controllers")
|
112
112
|
end
|
113
113
|
|
114
|
-
# Returns the app/views path if it is found within this extension root.
|
114
|
+
# Returns the app/views path if it is found within this extension root.
|
115
115
|
# Call the class method ExtensionPath.view_paths to get a list of the view paths found in all enabled extensions
|
116
116
|
# in reverse order so that views override one another correctly.
|
117
117
|
#
|
@@ -130,7 +130,7 @@ module TrustyCms
|
|
130
130
|
#
|
131
131
|
def rake_task_paths
|
132
132
|
if check_subdirectory("lib/tasks")
|
133
|
-
Dir[File.join("#{path}","lib/tasks/**","*.rake")]
|
133
|
+
Dir[File.join("#{path}","lib/tasks/**","*.rake")]
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
@@ -143,7 +143,7 @@ module TrustyCms
|
|
143
143
|
def eager_load_paths
|
144
144
|
[controller_paths, model_paths, helper_paths].flatten.compact
|
145
145
|
end
|
146
|
-
|
146
|
+
|
147
147
|
class << self
|
148
148
|
# Returns the ExtensionPath object for the given extension name.
|
149
149
|
#
|
@@ -151,14 +151,14 @@ module TrustyCms
|
|
151
151
|
raise LoadError, "Cannot return path for unknown extension: #{name}" unless @@known_paths[name.to_sym]
|
152
152
|
@@known_paths[name.to_sym]
|
153
153
|
end
|
154
|
-
|
154
|
+
|
155
155
|
# Returns the root path recorded for the given extension name.
|
156
156
|
#
|
157
157
|
def for(name)
|
158
158
|
find(name).path
|
159
159
|
end
|
160
160
|
|
161
|
-
# Returns a list of path objects for all the enabled extensions in the configured order.
|
161
|
+
# Returns a list of path objects for all the enabled extensions in the configured order.
|
162
162
|
# If a configured extension has not been found during initialization, a LoadError will be thrown here.
|
163
163
|
#
|
164
164
|
# Note that at this stage, in line with the usage of config.extensions = [], the extension names
|
@@ -168,13 +168,13 @@ module TrustyCms
|
|
168
168
|
enabled_extensions = TrustyCms::Application.config.enabled_extensions
|
169
169
|
@@known_paths.values_at(*enabled_extensions).compact
|
170
170
|
end
|
171
|
-
|
171
|
+
|
172
172
|
# Returns a list of the root paths to all the enabled extensions, in the configured order.
|
173
173
|
#
|
174
174
|
def enabled_paths
|
175
175
|
enabled.map(&:path)
|
176
176
|
end
|
177
|
-
|
177
|
+
|
178
178
|
[:load_paths, :plugin_paths, :helper_paths, :model_paths, :controller_paths, :eager_load_paths].each do |m|
|
179
179
|
define_method(m) do
|
180
180
|
enabled.map{|ep| ep.send(m)}.flatten.compact
|
@@ -195,6 +195,6 @@ module TrustyCms
|
|
195
195
|
subdirectory = File.join(path, subpath)
|
196
196
|
subdirectory if File.directory?(subdirectory)
|
197
197
|
end
|
198
|
-
|
198
|
+
|
199
199
|
end
|
200
|
-
end
|
200
|
+
end
|
@@ -1,31 +1,49 @@
|
|
1
|
+
require 'will_paginate'
|
2
|
+
require 'rails'
|
3
|
+
require 'jquery-rails'
|
4
|
+
require 'haml-rails'
|
5
|
+
require 'haml'
|
6
|
+
require 'mysql'
|
7
|
+
|
1
8
|
require 'trusty_cms/admin_ui'
|
2
9
|
require 'trusty_cms/extension_loader'
|
10
|
+
require 'string_extensions/string_extensions'
|
11
|
+
require 'trusty_cms/engine'
|
12
|
+
|
13
|
+
# This is a wild and probably terrible hack built to initialize extension engines.
|
14
|
+
# I have no idea what the repercussions will be. Revisit later.
|
15
|
+
Gem.loaded_specs.each_with_object([]) do |(gemname, gemspec), found|
|
16
|
+
if gemname =~ /trusty-.*-extension$/
|
17
|
+
ep = TrustyCms::ExtensionLoader.record_path(gemspec.full_gem_path, gemname)
|
18
|
+
require "#{ep.name}/engine"
|
19
|
+
end
|
20
|
+
end
|
3
21
|
|
4
22
|
module TrustyCms
|
5
23
|
|
6
24
|
module Initializer
|
7
|
-
|
25
|
+
|
8
26
|
# Rails::Initializer is essentially a list of startup steps and we extend it here by:
|
9
27
|
# * overriding or extending some of those steps so that they use radiant and extension paths
|
10
28
|
# as well as (or instead of) the rails defaults.
|
11
29
|
# * appending some extra steps to set up the admin UI and activate extensions
|
12
30
|
|
13
31
|
|
14
|
-
# Returns true in the very unusual case where radiant has been deployed as a rails app itself, rather than
|
32
|
+
# Returns true in the very unusual case where radiant has been deployed as a rails app itself, rather than
|
15
33
|
# loaded as a gem or from vendor/. This is only likely in situations where radiant is customised so heavily
|
16
34
|
# that extensions are not sufficient.
|
17
35
|
#
|
18
36
|
def deployed_as_app?
|
19
37
|
TRUSTY_CMS_ROOT == Rails.root
|
20
38
|
end
|
21
|
-
|
39
|
+
|
22
40
|
# Extends the Rails::Initializer default to add extension paths to the autoload list.
|
23
41
|
# Note that +default_autoload_paths+ is also overridden to point to TRUSTY_CMS_ROOT.
|
24
|
-
#
|
42
|
+
#
|
25
43
|
def set_autoload_patf
|
26
44
|
super
|
27
45
|
end
|
28
|
-
|
46
|
+
|
29
47
|
# Overrides the Rails initializer to load metal from TRUSTY_CMS_ROOT and from radiant extensions.
|
30
48
|
#
|
31
49
|
def initialize_metal
|
@@ -34,7 +52,7 @@ module TrustyCms
|
|
34
52
|
Rails::Rack::Metal.metal_paths += plugin_loader.engine_metal_paths
|
35
53
|
Rails::Rack::Metal.metal_paths += extension_loader.paths(:metal)
|
36
54
|
Rails::Rack::Metal.metal_paths.uniq!
|
37
|
-
|
55
|
+
|
38
56
|
configuration.middleware.insert_before(
|
39
57
|
:"ActionController::ParamsParser",
|
40
58
|
Rails::Rack::Metal, :if => Rails::Rack::Metal.metals.any?)
|
@@ -70,13 +88,13 @@ module TrustyCms
|
|
70
88
|
super
|
71
89
|
extension_loader.load_extensions
|
72
90
|
end
|
73
|
-
|
91
|
+
|
74
92
|
# Extends the Rails initializer to run initializers from radiant and from extensions. The load order will be:
|
75
93
|
# 1. TRUSTY_CMS_ROOT/config/intializers/*.rb
|
76
94
|
# 2. Rails.root/config/intializers/*.rb
|
77
95
|
# 3. config/initializers/*.rb found in extensions, in extension load order.
|
78
96
|
#
|
79
|
-
# In the now rare case where radiant is deployed as an ordinary rails application, step 1 is skipped
|
97
|
+
# In the now rare case where radiant is deployed as an ordinary rails application, step 1 is skipped
|
80
98
|
# because it is equivalent to step 2.
|
81
99
|
#
|
82
100
|
def load_application_initializers
|
@@ -107,7 +125,7 @@ module TrustyCms
|
|
107
125
|
TrustyCms::Application.config.add_controller_paths(extension_loader.paths(:controller))
|
108
126
|
TrustyCms::Application.config.add_eager_load_paths(extension_loader.paths(:eager_load))
|
109
127
|
end
|
110
|
-
|
128
|
+
|
111
129
|
# Initializes all the admin interface elements and views. Separate here so that it can be called
|
112
130
|
# to reset the interface before extension (re)activation.
|
113
131
|
#
|
@@ -116,15 +134,15 @@ module TrustyCms
|
|
116
134
|
initialize_framework_views
|
117
135
|
admin.load_default_regions
|
118
136
|
end
|
119
|
-
|
137
|
+
|
120
138
|
# Initializes the core admin tabs. Separate so that it can be invoked by itself in tests.
|
121
139
|
#
|
122
140
|
def initialize_default_admin_tabs
|
123
141
|
admin.initialize_nav
|
124
142
|
end
|
125
|
-
|
126
|
-
# This adds extension view paths to the standard Rails::Initializer method.
|
127
|
-
# In environments that don't cache templates it reloads the path set on each request,
|
143
|
+
|
144
|
+
# This adds extension view paths to the standard Rails::Initializer method.
|
145
|
+
# In environments that don't cache templates it reloads the path set on each request,
|
128
146
|
# so that new extension paths are noticed without a restart.
|
129
147
|
#
|
130
148
|
def initialize_framework_views
|
@@ -135,9 +153,9 @@ module TrustyCms
|
|
135
153
|
if ActionMailer::Base.view_paths.count == 0 || !ActionView::Base.cache_template_loading
|
136
154
|
ActionMailer::Base.view_paths = ActionView::Base.process_view_paths(view_paths)
|
137
155
|
end
|
138
|
-
end
|
156
|
+
end
|
139
157
|
|
140
|
-
# Extends the Rails initializer to make sure that extension controller paths are available when routes
|
158
|
+
# Extends the Rails initializer to make sure that extension controller paths are available when routes
|
141
159
|
# are initialized.
|
142
160
|
#
|
143
161
|
def initialize_routing
|
@@ -8,7 +8,7 @@ module TrustyCms
|
|
8
8
|
def initialize(url_stem)
|
9
9
|
@url_stem = url_stem
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
def to_html
|
13
13
|
links = @options[:page_links] ? windowed_links : []
|
14
14
|
links.unshift page_link_or_span(@collection.previous_page, 'disabled prev_page', @options[:previous_label])
|
@@ -16,7 +16,7 @@ module TrustyCms
|
|
16
16
|
html = links.join(@options[:separator])
|
17
17
|
@options[:container] ? %{<div class="pagination">#{html}</div>} : html
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
# this is rather crude compared to the WillPaginate link-builder,
|
21
21
|
# but it can get by without much context to draw on
|
22
22
|
def page_link(page, text, attributes = {})
|
@@ -31,4 +31,4 @@ module TrustyCms
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
34
|
-
end
|
34
|
+
end
|
@@ -5,13 +5,13 @@ module TrustyCms
|
|
5
5
|
base.send :class_attribute, :responses
|
6
6
|
base.send :include, InstanceMethods
|
7
7
|
end
|
8
|
-
|
9
|
-
def
|
10
|
-
r = (self.responses
|
8
|
+
|
9
|
+
def create_responses
|
10
|
+
r = (self.responses ||= Collector.new)
|
11
11
|
yield r if block_given?
|
12
12
|
r
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
module InstanceMethods
|
16
16
|
def response_for(action)
|
17
17
|
responses = self.class.responses.send(action)
|
@@ -33,7 +33,7 @@ module TrustyCms
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
def wrap(proc)
|
38
38
|
# Makes sure our response blocks get evaluated in the right context
|
39
39
|
lambda do
|
@@ -42,18 +42,18 @@ module TrustyCms
|
|
42
42
|
if RUBY_VERSION =~ /^1\.9/ and proc.lambda? and proc.arity != 1
|
43
43
|
raise "You can only pass a proc ('Proc.new') or a lambda that takes exactly one arg (for self) to the wrap method."
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
instance_eval(&proc)
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
class Collector < OpenStruct
|
52
52
|
def initialize
|
53
53
|
super
|
54
54
|
@table = Hash.new {|h,k| h[k] = Response.new }
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
def initialize_copy(orig)
|
58
58
|
super
|
59
59
|
@table.keys.each do |key|
|
@@ -61,7 +61,7 @@ module TrustyCms
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
class Response
|
66
66
|
attr_reader :publish_formats, :publish_block, :blocks, :block_order
|
67
67
|
def initialize
|
@@ -69,7 +69,7 @@ module TrustyCms
|
|
69
69
|
@blocks = {}
|
70
70
|
@block_order = []
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
def initialize_copy(orig)
|
74
74
|
@publish_formats = orig.publish_formats.dup
|
75
75
|
@blocks = orig.blocks.dup
|
@@ -77,23 +77,23 @@ module TrustyCms
|
|
77
77
|
@publish_block = orig.publish_block.dup if orig.publish_block
|
78
78
|
@default = orig.default.dup if orig.default
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
def default(&block)
|
82
82
|
if block_given?
|
83
83
|
@default = block
|
84
84
|
end
|
85
85
|
@default
|
86
86
|
end
|
87
|
-
|
87
|
+
|
88
88
|
def publish(*formats, &block)
|
89
89
|
@publish_formats.concat(formats)
|
90
90
|
if block_given?
|
91
|
-
@publish_block = block
|
91
|
+
@publish_block = block
|
92
92
|
else
|
93
93
|
raise ArgumentError, "Block required to publish" unless @publish_block
|
94
94
|
end
|
95
95
|
end
|
96
|
-
|
96
|
+
|
97
97
|
def each_published
|
98
98
|
publish_formats.each do |format|
|
99
99
|
yield format, publish_block if block_given?
|
@@ -118,4 +118,4 @@ module TrustyCms
|
|
118
118
|
end
|
119
119
|
end
|
120
120
|
end
|
121
|
-
end
|
121
|
+
end
|
data/lib/trusty_cms/setup.rb
CHANGED
@@ -3,7 +3,7 @@ require "forwardable"
|
|
3
3
|
|
4
4
|
module TrustyCms
|
5
5
|
class Setup
|
6
|
-
|
6
|
+
|
7
7
|
class << self
|
8
8
|
def bootstrap(config)
|
9
9
|
setup = new
|
@@ -11,18 +11,18 @@ module TrustyCms
|
|
11
11
|
setup
|
12
12
|
end
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
attr_accessor :config
|
16
|
-
|
16
|
+
|
17
17
|
def bootstrap(config)
|
18
18
|
@config = config
|
19
19
|
@admin = create_admin_user(config[:admin_name], config[:admin_username], config[:admin_password])
|
20
20
|
UserActionObserver.current_user = @admin
|
21
21
|
load_default_configuration
|
22
|
-
load_database_template(config[:database_template])
|
22
|
+
# load_database_template(config[:database_template])
|
23
23
|
announce "Finished."
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
def create_admin_user(name, username, password)
|
27
27
|
unless name and username and password
|
28
28
|
announce "Create the admin user (press enter for defaults)."
|
@@ -34,15 +34,16 @@ module TrustyCms
|
|
34
34
|
:name => name,
|
35
35
|
:login => username,
|
36
36
|
:password => password,
|
37
|
-
:password_confirmation => password
|
38
|
-
:admin => true
|
37
|
+
:password_confirmation => password
|
39
38
|
}
|
40
39
|
admin = User.find_by_login(username)
|
41
40
|
admin = User.new unless admin
|
42
41
|
admin.update_attributes(attributes)
|
42
|
+
admin.admin = true
|
43
|
+
admin.save
|
43
44
|
admin
|
44
45
|
end
|
45
|
-
|
46
|
+
|
46
47
|
def load_default_configuration
|
47
48
|
feedback "\nInitializing configuration" do
|
48
49
|
step { TrustyCms::Config['admin.title' ] = 'TrustyCms CMS' }
|
@@ -55,7 +56,7 @@ module TrustyCms
|
|
55
56
|
step { TrustyCms::Config['default_locale'] = 'en' }
|
56
57
|
end
|
57
58
|
end
|
58
|
-
|
59
|
+
|
59
60
|
def load_database_template(filename)
|
60
61
|
template = nil
|
61
62
|
if filename
|
@@ -85,19 +86,19 @@ module TrustyCms
|
|
85
86
|
end
|
86
87
|
create_records(template)
|
87
88
|
end
|
88
|
-
|
89
|
+
|
89
90
|
private
|
90
|
-
|
91
|
+
|
91
92
|
def prompt_for_admin_name
|
92
93
|
username = ask('Name (Administrator): ', String) do |q|
|
93
94
|
q.validate = /^.{0,100}$/
|
94
|
-
q.responses[:not_valid] = "Invalid name. Must be
|
95
|
+
q.responses[:not_valid] = "Invalid name. Must be under 100 characters long."
|
95
96
|
q.whitespace = :strip
|
96
97
|
end
|
97
98
|
username = "Administrator" if username.blank?
|
98
99
|
username
|
99
100
|
end
|
100
|
-
|
101
|
+
|
101
102
|
def prompt_for_admin_username
|
102
103
|
username = ask('Username (admin): ', String) do |q|
|
103
104
|
q.validate = /^(|.{3,40})$/
|
@@ -107,18 +108,19 @@ module TrustyCms
|
|
107
108
|
username = "admin" if username.blank?
|
108
109
|
username
|
109
110
|
end
|
110
|
-
|
111
|
+
|
111
112
|
def prompt_for_admin_password
|
112
|
-
|
113
|
+
default_password = 'trusty'
|
114
|
+
password = ask("Password (#{default_password}): ", String) do |q|
|
113
115
|
q.echo = false unless defined?(::JRuby) # JRuby doesn't support stty interaction
|
114
116
|
q.validate = /^(|.{5,40})$/
|
115
117
|
q.responses[:not_valid] = "Invalid password. Must be at least 5 characters long."
|
116
118
|
q.whitespace = :strip
|
117
119
|
end
|
118
|
-
password =
|
120
|
+
password = default_password if password.blank?
|
119
121
|
password
|
120
122
|
end
|
121
|
-
|
123
|
+
|
122
124
|
def find_template_in_path(filename)
|
123
125
|
(
|
124
126
|
[
|
@@ -137,17 +139,17 @@ module TrustyCms
|
|
137
139
|
end
|
138
140
|
).find { |name| File.file?(name) }
|
139
141
|
end
|
140
|
-
|
142
|
+
|
141
143
|
def find_and_load_templates(glob)
|
142
144
|
templates = Dir[glob]
|
143
145
|
templates.map! { |template| load_template_file(template) }
|
144
146
|
templates.sort_by { |template| template['name'] }
|
145
147
|
end
|
146
|
-
|
148
|
+
|
147
149
|
def load_template_file(filename)
|
148
150
|
YAML.load_file(filename)
|
149
151
|
end
|
150
|
-
|
152
|
+
|
151
153
|
def create_records(template)
|
152
154
|
records = template['records']
|
153
155
|
if records
|
@@ -166,44 +168,44 @@ module TrustyCms
|
|
166
168
|
end
|
167
169
|
end
|
168
170
|
end
|
169
|
-
|
171
|
+
|
170
172
|
def model(model_name)
|
171
173
|
model_name.to_s.singularize.constantize
|
172
174
|
end
|
173
|
-
|
175
|
+
|
174
176
|
def order_by_id(records)
|
175
177
|
records.map { |name, record| [record['id'], record] }.sort { |a, b| a[0] <=> b[0] }
|
176
178
|
end
|
177
|
-
|
179
|
+
|
178
180
|
extend Forwardable
|
179
181
|
def_delegators :terminal, :agree, :ask, :choose, :say
|
180
|
-
|
182
|
+
|
181
183
|
def terminal
|
182
184
|
@terminal ||= HighLine.new
|
183
185
|
end
|
184
|
-
|
186
|
+
|
185
187
|
def output
|
186
188
|
terminal.instance_variable_get("@output")
|
187
189
|
end
|
188
|
-
|
190
|
+
|
189
191
|
def wrap(string)
|
190
192
|
string = terminal.send(:wrap, string) unless terminal.wrap_at.nil?
|
191
193
|
string
|
192
194
|
end
|
193
|
-
|
195
|
+
|
194
196
|
def print(string)
|
195
197
|
output.print(wrap(string))
|
196
198
|
output.flush
|
197
199
|
end
|
198
|
-
|
200
|
+
|
199
201
|
def puts(string = "\n")
|
200
202
|
say string
|
201
203
|
end
|
202
|
-
|
204
|
+
|
203
205
|
def announce(string)
|
204
206
|
puts "\n#{string}"
|
205
207
|
end
|
206
|
-
|
208
|
+
|
207
209
|
def feedback(process, &block)
|
208
210
|
print "#{process}..."
|
209
211
|
if yield
|
@@ -217,11 +219,11 @@ module TrustyCms
|
|
217
219
|
puts "FAILED"
|
218
220
|
raise e
|
219
221
|
end
|
220
|
-
|
222
|
+
|
221
223
|
def step
|
222
224
|
yield if block_given?
|
223
225
|
print '.'
|
224
226
|
end
|
225
|
-
|
227
|
+
|
226
228
|
end
|
227
|
-
end
|
229
|
+
end
|