wagn 1.13.0 → 1.14.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Guardfile +3 -2
- data/VERSION +1 -1
- data/app/controllers/card_controller.rb +33 -38
- data/config/routes.rb +2 -2
- data/config/version.txt +1 -1
- data/db/bootstrap/card_actions.yml +3543 -0
- data/db/bootstrap/card_acts.yml +7 -0
- data/db/bootstrap/card_changes.yml +9150 -0
- data/db/bootstrap/card_references.yml +666 -344
- data/db/bootstrap/cards.yml +3256 -1702
- data/db/migrate/20140822073704_create_new_revision_tables.rb +43 -0
- data/db/migrate/20141001105348_move_revisions_to_actions.rb +62 -0
- data/db/migrate_cards/20130411191151_renaming_for_menu.rb +42 -45
- data/db/migrate_cards/20130411211600_delete_old_related_tab_cards.rb +13 -16
- data/db/migrate_cards/20130419215612_import_help_text.rb +7 -10
- data/db/migrate_cards/20130823192433_add_style_cards.rb +77 -81
- data/db/migrate_cards/20130910183318_move_styles_to_content.rb +4 -7
- data/db/migrate_cards/20130920214038_jsonize_tinymce.rb +9 -12
- data/db/migrate_cards/20130920291703_update_stylesheets.rb +10 -13
- data/db/migrate_cards/20130927191728_account_events.rb +15 -18
- data/db/migrate_cards/20131016172445_common_css_patch.rb +5 -8
- data/db/migrate_cards/20140110193325_reset_account_request_type.rb +4 -7
- data/db/migrate_cards/20140307231621_user_data_to_cards.rb +50 -53
- data/db/migrate_cards/20140317035504_account_requests_to_signups.rb +39 -42
- data/db/migrate_cards/20140512155840_add_script_cards.rb +56 -59
- data/db/migrate_cards/20140629222005_add_email_cards.rb +168 -0
- data/db/migrate_cards/20140725180118_config_card_updates.rb +4 -7
- data/db/migrate_cards/data/mailer/follower_notification_email.html +9 -0
- data/db/migrate_cards/data/mailer/follower_notification_email.txt +11 -0
- data/db/migrate_cards/data/mailer/mail_config.json +22 -0
- data/db/migrate_cards/data/mailer/password_reset_email.html +10 -0
- data/db/migrate_cards/data/mailer/password_reset_email.txt +11 -0
- data/db/migrate_cards/data/mailer/signup_alert_email.html +7 -0
- data/db/migrate_cards/data/mailer/signup_alert_email.txt +5 -0
- data/db/migrate_cards/data/mailer/verification_email.html +9 -0
- data/db/migrate_cards/data/mailer/verification_email.txt +8 -0
- data/db/schema.rb +31 -1
- data/features/conflict.feature +39 -0
- data/features/flexmail.feature +54 -54
- data/features/notifications.feature +4 -2
- data/features/reset_password.feature +1 -1
- data/features/step_definitions/wagn_steps.rb +20 -2
- data/features/step_definitions/window_steps.rb +23 -0
- data/features/support/env.rb +1 -0
- data/features/update_includers.feature +16 -10
- data/features/watch.feature +2 -2
- data/lib/card.rb +11 -10
- data/lib/card/act.rb +63 -0
- data/lib/card/action.rb +194 -0
- data/lib/card/change.rb +29 -0
- data/lib/card/content.rb +1 -1
- data/lib/card/diff.rb +229 -276
- data/lib/card/env.rb +4 -3
- data/lib/card/format.rb +2 -5
- data/lib/card/generators/card_migration/USAGE +15 -3
- data/lib/card/generators/card_migration/card_migration_generator.rb +22 -2
- data/lib/card/generators/card_migration/templates/card_migration.erb +4 -5
- data/lib/card/generators/format/USAGE +2 -2
- data/lib/card/generators/format/format_generator.rb +2 -2
- data/lib/card/generators/set/USAGE +2 -2
- data/lib/card/mailer.rb +21 -100
- data/lib/card/name.rb +4 -3
- data/lib/card/query.rb +2 -2
- data/lib/card/query/card_spec.rb +20 -30
- data/lib/card/query/value_spec.rb +2 -3
- data/lib/card/set.rb +3 -0
- data/lib/wagn/all.rb +6 -0
- data/lib/wagn/application.rb +16 -6
- data/lib/wagn/commands.rb +87 -27
- data/lib/wagn/config/environments/development.rb +17 -0
- data/lib/wagn/config/environments/test.rb +14 -1
- data/lib/wagn/config/initializers/airbrake.rb +1 -1
- data/lib/wagn/generators/wagn/templates/Gemfile +27 -9
- data/lib/wagn/generators/wagn/templates/config/application.rb +12 -3
- data/lib/wagn/generators/wagn/templates/simplecov +5 -0
- data/lib/wagn/generators/wagn/templates/spec/spec_helper.rb +1 -0
- data/lib/wagn/generators/wagn/wagn_generator.rb +75 -45
- data/lib/wagn/location.rb +9 -0
- data/lib/wagn/migration.rb +96 -0
- data/lib/wagn/mods_spec_helper.rb +16 -8
- data/lib/wagn/simplecov_helper.rb +61 -0
- data/lib/wagn/{wagn_spec_helper.rb → spec_helper.rb} +11 -3
- data/lib/wagn/tasks/test.rake +1 -1
- data/lib/wagn/tasks/wagn.rake +100 -34
- data/lib/wagn/version.rb +7 -2
- data/mod/{core → 01_core}/chunk/include.rb +0 -0
- data/mod/{core → 01_core}/chunk/link.rb +0 -0
- data/mod/{core → 01_core}/chunk/literal.rb +0 -0
- data/mod/{core → 01_core}/chunk/reference.rb +15 -3
- data/mod/{core → 01_core}/chunk/uri.rb +0 -0
- data/mod/{core → 01_core}/format/data_format.rb +0 -0
- data/mod/{core → 01_core}/format/html_format.rb +5 -2
- data/mod/{core → 01_core}/format/text_format.rb +0 -0
- data/mod/{core → 01_core}/layout/blank.html +0 -0
- data/mod/{core → 01_core}/layout/default.html +0 -0
- data/mod/{core → 01_core}/layout/noside.html +0 -0
- data/mod/{core → 01_core}/layout/pre.html +0 -0
- data/mod/{core → 01_core}/layout/simple.html +0 -0
- data/mod/{core → 01_core}/set/all/active_card.rb +0 -0
- data/mod/{core → 01_core}/set/all/collection.rb +33 -5
- data/mod/01_core/set/all/content.rb +144 -0
- data/mod/01_core/set/all/erb.rb +11 -0
- data/mod/{core → 01_core}/set/all/fetch.rb +8 -1
- data/mod/01_core/set/all/haml.rb +7 -0
- data/mod/{core → 01_core}/set/all/initialize.rb +4 -2
- data/mod/{core → 01_core}/set/all/name.rb +2 -3
- data/mod/01_core/set/all/notify.rb +215 -0
- data/mod/{core → 01_core}/set/all/pattern.rb +0 -0
- data/mod/{core → 01_core}/set/all/permissions.rb +1 -1
- data/mod/{core → 01_core}/set/all/phases.rb +24 -8
- data/mod/{core → 01_core}/set/all/references.rb +2 -2
- data/mod/{core → 01_core}/set/all/rules.rb +2 -2
- data/mod/{core → 01_core}/set/all/states.rb +1 -1
- data/mod/{core → 01_core}/set/all/templating.rb +4 -4
- data/mod/{core → 01_core}/set/all/tracked_attributes.rb +15 -64
- data/mod/{core → 01_core}/set/all/trash.rb +6 -5
- data/mod/{core → 01_core}/set/all/type.rb +0 -0
- data/mod/{core → 01_core}/set/all/utils.rb +1 -1
- data/mod/{core → 01_core}/set_pattern/01_all.rb +0 -0
- data/mod/{core → 01_core}/set_pattern/02_all_plus.rb +0 -0
- data/mod/{core → 01_core}/set_pattern/03_type.rb +0 -0
- data/mod/{core → 01_core}/set_pattern/04_star.rb +0 -0
- data/mod/{core → 01_core}/set_pattern/05_rstar.rb +0 -0
- data/mod/{core → 01_core}/set_pattern/06_right.rb +0 -0
- data/mod/{core → 01_core}/set_pattern/07_type_plus_right.rb +0 -0
- data/mod/{core → 01_core}/set_pattern/08_self.rb +0 -0
- data/mod/01_core/spec/chunk/literal_spec.rb +14 -0
- data/{spec/mod/core → mod/01_core/spec}/chunk/uri_spec.rb +3 -3
- data/{spec/mod/core → mod/01_core/spec}/format/data_format_spec.rb +0 -0
- data/{spec/mod/core → mod/01_core/spec}/format/html_format_spec.rb +9 -8
- data/{spec/mod/core → mod/01_core/spec}/format/text_format_spec.rb +0 -0
- data/{spec/mod/core → mod/01_core/spec}/set/all/active_card_spec.rb +0 -0
- data/mod/01_core/spec/set/all/attribute_tracking_spec.rb +21 -0
- data/mod/01_core/spec/set/all/collection_spec.rb +65 -0
- data/mod/01_core/spec/set/all/content_spec.rb +15 -0
- data/{spec/mod/core → mod/01_core/spec}/set/all/fetch_spec.rb +70 -68
- data/{spec/mod/core → mod/01_core/spec}/set/all/initialize_spec.rb +12 -12
- data/{spec/mod/core → mod/01_core/spec}/set/all/name_spec.rb +7 -7
- data/mod/01_core/spec/set/all/notify_spec.rb +199 -0
- data/{spec/mod/core → mod/01_core/spec}/set/all/pattern_spec.rb +16 -16
- data/{spec/mod/core → mod/01_core/spec}/set/all/permissions_spec.rb +62 -62
- data/{spec/mod/core → mod/01_core/spec}/set/all/phases_spec.rb +0 -0
- data/{spec/mod/core → mod/01_core/spec}/set/all/references_spec.rb +1 -1
- data/{spec/mod/core → mod/01_core/spec}/set/all/rules2_spec.rb +57 -57
- data/mod/01_core/spec/set/all/rules_spec.rb +81 -0
- data/{spec/mod/core → mod/01_core/spec}/set/all/states_spec.rb +0 -0
- data/{spec/mod/core → mod/01_core/spec}/set/all/templating_spec.rb +16 -12
- data/{spec/mod/core → mod/01_core/spec}/set/all/tracked_attributes_spec.rb +24 -22
- data/{spec/mod/core → mod/01_core/spec}/set/all/trash_spec.rb +2 -2
- data/{spec/mod/core → mod/01_core/spec}/set/all/type_spec.rb +13 -13
- data/{spec/mod/core → mod/01_core/spec}/set/all/utils_spec.rb +0 -0
- data/mod/{core → 02_basic_types}/set/type/plain_text.rb +0 -0
- data/mod/{standard → 02_basic_types}/set/type/pointer.rb +21 -8
- data/{spec/mod/standard/set/type → mod/02_basic_types/spec/set}/plain_text_spec.rb +0 -0
- data/{spec/mod/standard/set/type → mod/02_basic_types/spec/set}/pointer_spec.rb +22 -9
- data/mod/{standard → 03_machines}/lib/card/machine.rb +3 -2
- data/mod/{standard → 03_machines}/lib/card/machine_input.rb +1 -1
- data/mod/{standard → 03_machines}/lib/javascript/html5shiv-printshiv.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/jquery-ui.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/jquery.autosize.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/jquery.fileupload.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/jquery.iframe-transport.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/jquery.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/jquery.ui.autocomplete.html.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/jquery_ujs.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/jquerymobile.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/tinymce.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/wagn.js.coffee +17 -9
- data/mod/{standard → 03_machines}/lib/javascript/wagn_menu.js +0 -0
- data/mod/{standard → 03_machines}/lib/javascript/wagn_mod.js.coffee +1 -1
- data/mod/{standard → 03_machines}/lib/stylesheets/functional.scss +1 -1
- data/mod/{standard → 03_machines}/lib/stylesheets/jquery-ui-smoothness.css +0 -0
- data/mod/{standard → 03_machines}/lib/stylesheets/standard.scss +126 -21
- data/mod/{standard → 03_machines}/set/right/machine_output.rb +3 -2
- data/mod/{standard → 03_machines}/set/self/script_card_menu.rb +1 -1
- data/mod/{standard → 03_machines}/set/self/script_html5shiv_printshiv.rb +1 -1
- data/mod/{standard → 03_machines}/set/self/script_jquery.rb +1 -1
- data/mod/{standard → 03_machines}/set/self/script_jquery_helper.rb +1 -1
- data/mod/{standard → 03_machines}/set/self/script_slot.rb +1 -1
- data/mod/{standard → 03_machines}/set/self/script_tinymce.rb +1 -1
- data/mod/{standard → 03_machines}/set/self/style_functional.rb +1 -1
- data/mod/{standard → 03_machines}/set/self/style_jquery_ui_smoothness.rb +1 -1
- data/mod/{standard → 03_machines}/set/self/style_standard.rb +1 -1
- data/mod/{standard → 03_machines}/set/type/coffee_script.rb +0 -0
- data/mod/{standard → 03_machines}/set/type/css.rb +0 -0
- data/mod/{standard → 03_machines}/set/type/java_script.rb +0 -0
- data/mod/{standard → 03_machines}/set/type/scss.rb +0 -0
- data/mod/{standard → 03_machines}/set/type/skin.rb +0 -0
- data/{spec/mod/standard → mod/03_machines/spec}/lib/machine_input_spec.rb +0 -0
- data/{spec/mod/standard → mod/03_machines/spec}/lib/machine_spec.rb +4 -4
- data/{spec/mod/standard → mod/03_machines/spec}/set/right/machine_output_spec.rb +0 -0
- data/{spec/mod/standard → mod/03_machines/spec}/set/self/style_functional_spec.rb +0 -0
- data/{spec/mod/standard → mod/03_machines/spec}/set/self/style_jquery_ui_smoothness_spec.rb +0 -0
- data/{spec/mod/standard → mod/03_machines/spec}/set/self/style_standard_spec.rb +0 -0
- data/{spec/mod/standard → mod/03_machines/spec}/set/type/coffeescript_spec.rb +0 -0
- data/{spec/mod/standard → mod/03_machines/spec}/set/type/css_spec.rb +0 -0
- data/{spec/mod/standard → mod/03_machines/spec}/set/type/javascript_spec.rb +0 -0
- data/{spec/mod/standard → mod/03_machines/spec}/set/type/scss_spec.rb +1 -1
- data/{spec/mod/standard → mod/03_machines/spec}/set/type/skin_spec.rb +22 -0
- data/mod/04_settings/lib/card/setting.rb +57 -0
- data/mod/{core/set/right/structure.rb → 04_settings/set/right/add_help.rb} +0 -2
- data/mod/{standard → 04_settings}/set/right/comment.rb +0 -1
- data/mod/{standard → 04_settings}/set/right/create.rb +0 -1
- data/mod/04_settings/set/right/default.rb +3 -0
- data/mod/{standard → 04_settings}/set/right/delete.rb +2 -0
- data/mod/04_settings/set/right/help.rb +3 -0
- data/mod/{standard → 04_settings}/set/right/read.rb +0 -0
- data/mod/{standard → 04_settings}/set/right/script.rb +0 -0
- data/mod/04_settings/set/right/structure.rb +4 -0
- data/mod/{standard → 04_settings}/set/right/style.rb +0 -0
- data/mod/{standard → 04_settings}/set/right/update.rb +0 -0
- data/mod/04_settings/set/self/accountable.rb +2 -0
- data/mod/04_settings/set/self/add_help.rb +2 -0
- data/mod/04_settings/set/self/autoname.rb +2 -0
- data/mod/04_settings/set/self/captcha.rb +2 -0
- data/mod/04_settings/set/self/comment.rb +2 -0
- data/mod/04_settings/set/self/create.rb +2 -0
- data/mod/04_settings/set/self/default.rb +2 -0
- data/mod/04_settings/set/self/delete.rb +2 -0
- data/mod/04_settings/set/self/help.rb +2 -0
- data/mod/04_settings/set/self/input.rb +2 -0
- data/mod/04_settings/set/self/layout.rb +2 -0
- data/mod/04_settings/set/self/on_create.rb +2 -0
- data/mod/04_settings/set/self/on_delete.rb +2 -0
- data/mod/04_settings/set/self/on_update.rb +2 -0
- data/mod/04_settings/set/self/options.rb +2 -0
- data/mod/04_settings/set/self/options_label.rb +2 -0
- data/mod/04_settings/set/self/read.rb +2 -0
- data/mod/04_settings/set/self/script.rb +2 -0
- data/mod/04_settings/set/self/structure.rb +2 -0
- data/mod/04_settings/set/self/style.rb +2 -0
- data/mod/04_settings/set/self/table_of_contents.rb +2 -0
- data/mod/04_settings/set/self/thanks.rb +2 -0
- data/mod/04_settings/set/self/update.rb +2 -0
- data/mod/{standard → 04_settings}/set/type/setting.rb +8 -14
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/add_help_spec.rb +0 -0
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/comment_spec.rb +5 -5
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/create_spec.rb +0 -0
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/default_spec.rb +0 -0
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/delete_spec.rb +0 -0
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/help_spec.rb +0 -0
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/read_spec.rb +0 -0
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/script_spec.rb +0 -0
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/structure_spec.rb +4 -2
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/style_spec.rb +1 -1
- data/{spec/mod/standard → mod/04_settings/spec}/set/right/update_spec.rb +0 -0
- data/{spec/mod/standard → mod/04_settings/spec}/set/type/setting_spec.rb +0 -0
- data/mod/{standard → 05_standard}/file/103/icon-6566.ico +0 -0
- data/mod/{standard → 05_standard}/file/103/large-6566.ico +0 -0
- data/mod/{standard → 05_standard}/file/103/medium-6566.ico +0 -0
- data/mod/{standard → 05_standard}/file/103/original-6566.ico +0 -0
- data/mod/{standard → 05_standard}/file/103/small-6566.ico +0 -0
- data/mod/{standard → 05_standard}/file/79/icon-6556.png +0 -0
- data/mod/{standard → 05_standard}/file/79/large-6556.png +0 -0
- data/mod/{standard → 05_standard}/file/79/medium-6556.png +0 -0
- data/mod/{standard → 05_standard}/file/79/original-6556.png +0 -0
- data/mod/{standard → 05_standard}/file/79/small-6556.png +0 -0
- data/mod/{standard → 05_standard}/file/790/icon-6419.png +0 -0
- data/mod/{standard → 05_standard}/file/790/large-6419.png +0 -0
- data/mod/{standard → 05_standard}/file/790/medium-6419.png +0 -0
- data/mod/{standard → 05_standard}/file/790/original-6419.png +0 -0
- data/mod/{standard → 05_standard}/file/790/small-6419.png +0 -0
- data/mod/{standard → 05_standard}/format/css_format.rb +0 -0
- data/mod/{standard → 05_standard}/format/csv_format.rb +0 -0
- data/mod/{standard → 05_standard}/format/file_format.rb +0 -0
- data/mod/{standard → 05_standard}/format/js_format.rb +0 -0
- data/mod/{standard → 05_standard}/format/json_format.rb +0 -0
- data/mod/{standard → 05_standard}/format/rss_format.rb +0 -0
- data/mod/{standard → 05_standard}/format/xml_format.rb +0 -0
- data/mod/{standard → 05_standard}/set/all/account.rb +0 -0
- data/mod/{standard → 05_standard}/set/all/all_css.rb +0 -0
- data/mod/{standard → 05_standard}/set/all/all_csv.rb +1 -1
- data/mod/05_standard/set/all/all_js.rb +7 -0
- data/mod/{standard → 05_standard}/set/all/attach.rb +33 -33
- data/mod/{standard → 05_standard}/set/all/base.rb +0 -0
- data/mod/{standard → 05_standard}/set/all/comment.rb +0 -0
- data/mod/{standard → 05_standard}/set/all/event_viz.rb +0 -0
- data/mod/{standard → 05_standard}/set/all/file.rb +0 -0
- data/mod/05_standard/set/all/follow.rb +51 -0
- data/mod/05_standard/set/all/history.rb +294 -0
- data/mod/{standard → 05_standard}/set/all/json.rb +2 -1
- data/mod/05_standard/set/all/observer.rb +27 -0
- data/mod/{standard → 05_standard}/set/all/rich_html.rb +21 -28
- data/mod/{standard → 05_standard}/set/all/rss.rb +0 -0
- data/mod/{standard → 05_standard}/set/all/text.rb +0 -0
- data/mod/{standard → 05_standard}/set/right/account.rb +53 -7
- data/mod/{standard → 05_standard}/set/right/email.rb +0 -1
- data/mod/{standard → 05_standard}/set/right/password.rb +1 -1
- data/mod/{standard → 05_standard}/set/right/salt.rb +0 -0
- data/mod/{standard → 05_standard}/set/right/stats.rb +1 -1
- data/mod/{standard → 05_standard}/set/right/status.rb +0 -0
- data/mod/{standard → 05_standard}/set/right/token.rb +0 -0
- data/mod/{standard → 05_standard}/set/right/when_created.rb +0 -0
- data/mod/{standard → 05_standard}/set/right/when_last_edited.rb +0 -0
- data/mod/{standard → 05_standard}/set/rstar/rules.rb +8 -7
- data/mod/{standard → 05_standard}/set/self/account_links.rb +0 -0
- data/mod/{standard → 05_standard}/set/self/alerts.rb +0 -0
- data/mod/{standard → 05_standard}/set/self/all.rb +1 -1
- data/mod/{standard → 05_standard}/set/self/foot.rb +0 -0
- data/mod/{standard → 05_standard}/set/self/head.rb +21 -6
- data/mod/{standard → 05_standard}/set/self/navbox.rb +0 -0
- data/mod/{standard → 05_standard}/set/self/now.rb +0 -0
- data/mod/{standard → 05_standard}/set/self/recent.rb +0 -0
- data/mod/{standard → 05_standard}/set/self/search.rb +0 -0
- data/mod/{standard → 05_standard}/set/self/signin.rb +1 -1
- data/mod/{standard → 05_standard}/set/self/stats.rb +2 -2
- data/mod/{standard → 05_standard}/set/self/version.rb +0 -0
- data/mod/{standard → 05_standard}/set/type/basic.rb +0 -0
- data/mod/{standard → 05_standard}/set/type/cardtype.rb +4 -6
- data/mod/{standard → 05_standard}/set/type/date.rb +0 -0
- data/mod/{standard → 05_standard}/set/type/file.rb +0 -0
- data/mod/{standard → 05_standard}/set/type/html.rb +0 -0
- data/mod/{standard → 05_standard}/set/type/image.rb +7 -6
- data/mod/{standard → 05_standard}/set/type/layout_type.rb +0 -0
- data/mod/{standard → 05_standard}/set/type/number.rb +0 -0
- data/mod/{standard → 05_standard}/set/type/phrase.rb +0 -0
- data/mod/{standard → 05_standard}/set/type/search_type.rb +6 -3
- data/mod/{standard → 05_standard}/set/type/set.rb +16 -9
- data/mod/{standard → 05_standard}/set/type/signup.rb +16 -17
- data/mod/{standard → 05_standard}/set/type/toggle.rb +0 -0
- data/mod/{standard → 05_standard}/set/type/user.rb +10 -11
- data/{spec/mod/standard → mod/05_standard/spec}/chunk/include_spec.rb +39 -39
- data/mod/05_standard/spec/chunk/link_spec.rb +61 -0
- data/{spec/mod/standard → mod/05_standard/spec}/format/css_format_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/format/csv_format_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/format/email_html_format_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/format/file_format_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/format/js_format_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/format/json_format_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/format/rss_format_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/format/xml_format_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/account_spec.rb +16 -16
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/all_css_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/all_csv_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/attach_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/base_spec.rb +10 -10
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/comment_spec.rb +0 -0
- data/mod/05_standard/spec/set/all/email_html_spec.rb +15 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/event_viz_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/file_spec.rb +0 -0
- data/mod/05_standard/spec/set/all/follow_spec.rb +83 -0
- data/mod/05_standard/spec/set/all/history_spec.rb +161 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/json_spec.rb +4 -4
- data/mod/05_standard/spec/set/all/observer_spec.rb +74 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/rich_html_spec.rb +14 -14
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/rss_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/all/text_spec.rb +0 -0
- data/mod/05_standard/spec/set/right/account_spec.rb +162 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/right/email_spec.rb +7 -7
- data/{spec/mod/standard → mod/05_standard/spec}/set/right/password_spec.rb +7 -7
- data/{spec/mod/standard → mod/05_standard/spec}/set/right/salt_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/right/stats_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/right/status_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/right/token_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/right/when_created_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/right/when_last_edited_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/rstar/rules_spec.rb +4 -4
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/account_links_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/alerts_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/all_spec.rb +7 -6
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/foot_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/head_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/navbox_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/now_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/recent_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/search_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/signin_spec.rb +12 -12
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/stats_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/self/version_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/basic_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/cardtype_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/date_spec.rb +0 -0
- data/mod/05_standard/spec/set/type/email_template_spec.rb +130 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/file_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/html_spec.rb +3 -3
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/image_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/layout_type_spec.rb +1 -1
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/number_spec.rb +0 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/phrase_spec.rb +0 -0
- data/mod/05_standard/spec/set/type/search_type_spec.rb +27 -0
- data/mod/05_standard/spec/set/type/set_spec.rb +26 -0
- data/mod/05_standard/spec/set/type/signup_spec.rb +209 -0
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/toggle_spec.rb +2 -2
- data/{spec/mod/standard → mod/05_standard/spec}/set/type/user_spec.rb +0 -0
- data/mod/{standard → 06_email}/format/email_html_format.rb +0 -0
- data/mod/06_email/format/email_text_format.rb +7 -0
- data/mod/06_email/set/all/email_html.rb +9 -0
- data/mod/{standard/set/all/email_html.rb → 06_email/set/all/email_text.rb} +2 -1
- data/mod/06_email/set/right/bcc.rb +31 -0
- data/mod/06_email/set/right/cc.rb +2 -0
- data/mod/06_email/set/right/from.rb +2 -0
- data/mod/06_email/set/right/html_message.rb +3 -0
- data/mod/06_email/set/right/to.rb +2 -0
- data/mod/06_email/set/type/email_template.rb +99 -0
- data/spec/controllers/card_controller_spec.rb +34 -46
- data/spec/lib/card/action_spec.rb +14 -0
- data/spec/lib/card/chunk_spec.rb +3 -3
- data/spec/lib/card/codename_spec.rb +5 -5
- data/spec/lib/card/content_spec.rb +25 -25
- data/spec/lib/card/diff_spec.rb +107 -107
- data/spec/lib/card/format_spec.rb +11 -11
- data/spec/lib/card/loader_spec.rb +35 -29
- data/spec/lib/card/name_spec.rb +82 -82
- data/spec/lib/card/query_spec.rb +83 -82
- data/spec/lib/card/reference_spec.rb +30 -30
- data/spec/lib/card/set_pattern_spec.rb +1 -1
- data/spec/lib/card/set_spec.rb +86 -82
- data/spec/lib/wagn/cache_spec.rb +24 -24
- data/spec/mailers/mailer_spec.rb +41 -30
- data/spec/models/card/cardtype_spec.rb +19 -19
- data/spec/models/card/create_spec.rb +14 -14
- data/spec/models/card/trash_spec.rb +37 -36
- data/spec/models/card/type_transition_spec.rb +13 -13
- data/spec/models/card/validation_spec.rb +6 -6
- data/spec/models/card_spec.rb +40 -39
- data/spec/spec_helper.rb +37 -11
- data/test/fixtures/card_actions.yml +4726 -0
- data/test/fixtures/card_acts.yml +589 -0
- data/test/fixtures/card_changes.yml +12644 -0
- data/test/fixtures/card_references.yml +976 -591
- data/test/fixtures/cards.yml +4544 -2781
- data/test/seed.rb +14 -13
- data/wagn.gemspec +4 -0
- metadata +404 -403
- data/db/bootstrap/card_revisions.yml +0 -3379
- data/lib/card/flexmail.rb +0 -53
- data/lib/card/mailer/change_notice.html.erb +0 -32
- data/lib/card/mailer/confirmation_email.html.erb +0 -12
- data/lib/card/mailer/flexmail.html.erb +0 -6
- data/lib/card/mailer/password_reset.html.erb +0 -9
- data/lib/card/mailer/signup_alert.html.erb +0 -14
- data/lib/card/revision.rb +0 -47
- data/lib/wagn/migration_helper.rb +0 -34
- data/mod/core/set/all/attribute_tracking.rb +0 -85
- data/mod/core/set/all/content.rb +0 -94
- data/mod/standard/set/all/flexmail.rb +0 -3
- data/mod/standard/set/all/follow.rb +0 -119
- data/mod/standard/set/all/history.rb +0 -107
- data/mod/standard/set/right/add_help.rb +0 -3
- data/mod/standard/set/right/default.rb +0 -3
- data/mod/standard/set/right/help.rb +0 -3
- data/spec/lib/card/flexmail_spec.rb +0 -209
- data/spec/lib/card/revision_spec.rb +0 -30
- data/spec/mod/core/chunk/literal_spec.rb +0 -14
- data/spec/mod/core/set/all/attribute_tracking_spec.rb +0 -21
- data/spec/mod/core/set/all/collection_spec.rb +0 -45
- data/spec/mod/core/set/all/content_spec.rb +0 -14
- data/spec/mod/core/set/all/rules_spec.rb +0 -98
- data/spec/mod/standard/chunk/link_spec.rb +0 -59
- data/spec/mod/standard/set/all/email_html_spec.rb +0 -13
- data/spec/mod/standard/set/all/flexmail_spec.rb +0 -5
- data/spec/mod/standard/set/all/follow_spec.rb +0 -95
- data/spec/mod/standard/set/all/history_spec.rb +0 -10
- data/spec/mod/standard/set/right/account_spec.rb +0 -90
- data/spec/mod/standard/set/type/search_type_spec.rb +0 -27
- data/spec/mod/standard/set/type/set_spec.rb +0 -26
- data/spec/mod/standard/set/type/signup_spec.rb +0 -169
- data/test/fixtures/card_revisions.yml +0 -4560
File without changes
|
File without changes
|
@@ -32,14 +32,15 @@ format :html do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
|
35
|
-
view :
|
35
|
+
view :content_changes do |args|
|
36
36
|
out = ''
|
37
|
-
|
38
|
-
|
39
|
-
|
37
|
+
size = args[:diff_type]==:summary ? :icon : :medium
|
38
|
+
if !args[:hide_diff] and args[:action] and last_change = card.last_change_on(:db_content,:before=>args[:action])
|
39
|
+
card.selected_action_id=last_change.card_action_id
|
40
|
+
out << Card::Diff.render_added_chunk(_render_core(:size=>size))
|
40
41
|
end
|
41
|
-
card.
|
42
|
-
out <<
|
42
|
+
card.selected_action_id=args[:action].id
|
43
|
+
out << Card::Diff.render_deleted_chunk(_render_core(:size=>size))
|
43
44
|
out
|
44
45
|
end
|
45
46
|
|
File without changes
|
File without changes
|
File without changes
|
@@ -32,7 +32,7 @@ def get_spec params={}
|
|
32
32
|
spec_content = params.delete(:spec) || raw_content
|
33
33
|
#warn "get_spec #{name}, #{spec_content}, #{params.inspect}"
|
34
34
|
raise("Error in card '#{self.name}':can't run search with empty content") if spec_content.empty?
|
35
|
-
JSON.parse( spec_content )
|
35
|
+
String === spec_content ? JSON.parse( spec_content ) : spec_content
|
36
36
|
end
|
37
37
|
spec.symbolize_keys!.merge! params.symbolize_keys
|
38
38
|
if default_limit = spec.delete(:default_limit) and !spec[:limit]
|
@@ -52,7 +52,7 @@ format do
|
|
52
52
|
|
53
53
|
case
|
54
54
|
when e = search_vars[:error]
|
55
|
-
%{#{e.class.to_s} :: #{e.message} :: #{card.
|
55
|
+
%{#{e.class.to_s} :: #{e.message} :: #{card.raw_content}}
|
56
56
|
when search_vars[:spec][:return] =='count'
|
57
57
|
search_vars[:results].to_s
|
58
58
|
when @mode == :template
|
@@ -136,7 +136,7 @@ format :html do
|
|
136
136
|
paging = _optional_render :paging, args
|
137
137
|
|
138
138
|
if search_vars[:results].empty?
|
139
|
-
|
139
|
+
render_no_search_results(args)
|
140
140
|
else
|
141
141
|
%{
|
142
142
|
#{paging}
|
@@ -172,6 +172,9 @@ format :html do
|
|
172
172
|
form.text_area :content, :rows=>5
|
173
173
|
end
|
174
174
|
|
175
|
+
view :no_search_results do |args|
|
176
|
+
%{<div class="search-no-results"></div>}
|
177
|
+
end
|
175
178
|
|
176
179
|
view :paging do |args|
|
177
180
|
s = card.spec search_params
|
@@ -2,15 +2,16 @@
|
|
2
2
|
format :html do
|
3
3
|
|
4
4
|
view :core do |args|
|
5
|
-
body = card.
|
6
|
-
next if
|
5
|
+
body = card.setting_codenames_by_group.map do |group, data|
|
6
|
+
next if group.nil? || data.nil?
|
7
|
+
group_name = Card::Setting.group_names[group] || group.to_s
|
7
8
|
content_tag(:tr, :class=>"rule-group") do
|
8
9
|
(["#{group_name} Rules"]+%w{Content Set}).map do |heading|
|
9
10
|
content_tag(:th, :class=>'rule-heading') { heading }
|
10
11
|
end * "\n"
|
11
12
|
end +
|
12
|
-
raw( data.map do |
|
13
|
-
rule_card = card.fetch(:trait=>
|
13
|
+
raw( data.map do |setting|
|
14
|
+
rule_card = card.fetch(:trait=>setting, :new=>{})
|
14
15
|
nest rule_card, :view=>:closed_rule
|
15
16
|
end * "\n" )
|
16
17
|
end.compact * ''
|
@@ -47,7 +48,7 @@ format :html do
|
|
47
48
|
<div class="template-editor-left">{{</div>
|
48
49
|
<div class="template-editor-main">
|
49
50
|
#{
|
50
|
-
frame :no_slot=>true, :title=>card.label, :
|
51
|
+
frame :no_slot=>true, :title=>card.label, :menu_hack=>:template_closer do
|
51
52
|
_render_core args.merge(:unlabeled=>true)
|
52
53
|
end
|
53
54
|
}
|
@@ -99,10 +100,16 @@ def label
|
|
99
100
|
end
|
100
101
|
end
|
101
102
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
103
|
+
|
104
|
+
def setting_codenames_by_group
|
105
|
+
result = {}
|
106
|
+
Card::Setting.groups.each do |group, settings|
|
107
|
+
visible_settings = settings.reject { |s| !s or !s.applies_to_cardtype(prototype.type_id) }
|
108
|
+
unless visible_settings.empty?
|
109
|
+
result[group] = visible_settings.map { |s| s.codename }
|
110
|
+
end
|
111
|
+
end
|
112
|
+
result
|
106
113
|
end
|
107
114
|
|
108
115
|
def prototype
|
@@ -1,20 +1,24 @@
|
|
1
1
|
|
2
|
+
include Wagn::Location
|
3
|
+
|
2
4
|
format :html do
|
3
5
|
|
4
6
|
def default_new_args args
|
5
7
|
super args
|
6
8
|
args.merge!(
|
7
9
|
:optional_help => :show, #, :optional_menu=>:never
|
8
|
-
:buttons => button_tag( 'Submit' ),
|
10
|
+
:buttons => button_tag( 'Submit', :disable_with=>'Submitting' ),
|
9
11
|
:account => card.fetch( :trait=>:account, :new=>{} ),
|
10
|
-
:
|
12
|
+
:title => 'Sign up',
|
13
|
+
:hidden => {
|
11
14
|
:success => (card.rule(:thanks) || '_self'),
|
12
15
|
'card[type_id]' => card.type_id
|
13
16
|
}
|
14
17
|
)
|
15
18
|
|
16
19
|
if Auth.signed_in? and args[:account].confirm_ok?
|
17
|
-
args[:
|
20
|
+
args[:title] = 'Invite'
|
21
|
+
args[:buttons] = button_tag 'Send Invitation'
|
18
22
|
args[:hidden][:success] = '_self'
|
19
23
|
end
|
20
24
|
end
|
@@ -48,12 +52,12 @@ format :html do
|
|
48
52
|
if account = card.account
|
49
53
|
token_action = 'Send'
|
50
54
|
if account.token
|
51
|
-
headings << "
|
55
|
+
headings << "A verification email has been sent #{ "to #{account.email}" if account.email_card.ok? :read }"
|
52
56
|
token_action = 'Resend'
|
53
57
|
end
|
54
58
|
if account.confirm_ok?
|
55
|
-
links << link_to( "#{token_action}
|
56
|
-
links << link_to( "Approve without
|
59
|
+
links << link_to( "#{token_action} verification email", wagn_path("/update/~#{card.id}?approve_with_token=true" ) )
|
60
|
+
links << link_to( "Approve without verification", wagn_path("/update/~#{card.id}?approve_without_token=true") )
|
57
61
|
end
|
58
62
|
if card.ok? :delete
|
59
63
|
links << link_to( "Deny and delete", wagn_path("/delete/~#{card.id}") )
|
@@ -85,7 +89,7 @@ event :activate_by_token, :before=>:approve, :on=>:update, :when=>proc{ |c| c.ha
|
|
85
89
|
resend_activation_token
|
86
90
|
abort :success
|
87
91
|
else
|
88
|
-
abort :failure, "signup activation error: #{
|
92
|
+
abort :failure, "signup activation error: #{result}" # bad token or account
|
89
93
|
end
|
90
94
|
end
|
91
95
|
|
@@ -98,10 +102,10 @@ event :activate_account do
|
|
98
102
|
self.type_id = Card.default_accounted_type_id
|
99
103
|
end
|
100
104
|
|
101
|
-
event :
|
105
|
+
event :approve_with_token, :on=>:update, :before=>:approve, :when=>proc {|c| Env.params[:approve_with_token] } do
|
102
106
|
abort :failure, 'illegal approval' unless account.confirm_ok?
|
103
107
|
account.reset_token
|
104
|
-
account.
|
108
|
+
account.send_account_verification_email
|
105
109
|
end
|
106
110
|
|
107
111
|
event :approve_without_token, :on=>:update, :before=>:approve, :when=>proc {|c| Env.params[:approve_without_token] } do
|
@@ -111,7 +115,7 @@ end
|
|
111
115
|
|
112
116
|
event :resend_activation_token do
|
113
117
|
account.reset_token
|
114
|
-
account.
|
118
|
+
account.send_account_verification_email
|
115
119
|
Env.params[:success] = {
|
116
120
|
:id => '_self',
|
117
121
|
:view => 'message',
|
@@ -127,7 +131,6 @@ event :redirect_to_edit_password, :on=>:update, :after=>:store, :when=>proc {|c|
|
|
127
131
|
Env.params[:success] = account.edit_password_success_args
|
128
132
|
end
|
129
133
|
|
130
|
-
|
131
134
|
event :preprocess_account_subcards, :before=>:process_subcards, :on=>:create do
|
132
135
|
#FIXME: use codenames!
|
133
136
|
email, password = subcards.delete('+*account+*email'), subcards.delete('+*account+*password')
|
@@ -136,11 +139,7 @@ event :preprocess_account_subcards, :before=>:process_subcards, :on=>:create do
|
|
136
139
|
subcards['+*account']['+*password' ]=password if password
|
137
140
|
end
|
138
141
|
|
139
|
-
|
140
|
-
|
141
|
-
end
|
142
|
-
|
143
|
-
event :signup_notifications, :after=>:extend, :on=>:create, :when=>send_signup_notifications do
|
144
|
-
Mailer.signup_alert(self).deliver
|
142
|
+
event :act_as_current_for_extend_phase, :before=>:extend, :on=>:create do
|
143
|
+
Auth.current_id = self.id
|
145
144
|
end
|
146
145
|
|
File without changes
|
@@ -6,11 +6,15 @@ attr_accessor :email
|
|
6
6
|
format :html do
|
7
7
|
|
8
8
|
view :setup, :tags=>:unknown_ok, :perms=>lambda { |r| Auth.needs_setup? } do |args|
|
9
|
+
help_text = 'To get started, set up an account.'
|
10
|
+
if Wagn.config.action_mailer.perform_deliveries == false
|
11
|
+
help_text += '<br>WARNING: Email delivery is turned off. Change settings in config/application.rb to send sign up notifications.'
|
12
|
+
end
|
9
13
|
args.merge!( {
|
10
14
|
:title=>'Welcome, Wagneer!',
|
11
15
|
:optional_help=>:show,
|
12
16
|
:optional_menu=>:never,
|
13
|
-
:help_text=>
|
17
|
+
:help_text=>help_text,
|
14
18
|
:buttons => button_tag( 'Set up', :disable_with=>'Setting up' ),
|
15
19
|
:hidden => {
|
16
20
|
:success => "REDIRECT: #{ Card.path_setting '/' }",
|
@@ -33,22 +37,17 @@ format :html do
|
|
33
37
|
end
|
34
38
|
end
|
35
39
|
|
36
|
-
=begin
|
37
|
-
def ok_to_create
|
38
|
-
unless Auth.needs_setup?
|
39
|
-
deny_because "You cannot create a #{type_name} directly; you must create a #{Card[:signup].name} first"
|
40
|
-
end
|
41
|
-
end
|
42
|
-
=end
|
43
40
|
|
44
41
|
event :setup_as_bot, :before=>:check_permissions, :on=>:create, :when=>proc{ |c| Card::Env.params[:setup] } do
|
45
|
-
|
46
|
-
abort :failure unless Auth.needs_setup?
|
42
|
+
abort :failure unless Auth.needs_setup?
|
47
43
|
Auth.as_bot
|
44
|
+
# we need bot authority to set the initial administrator roles
|
45
|
+
# this is granted and inspected here as a separate event for
|
46
|
+
# flexibility and security when configuring initial setups
|
48
47
|
end
|
49
48
|
|
50
49
|
event :setup_first_user, :before=>:process_subcards, :on=>:create, :when=>proc{ |c| Card::Env.params[:setup] } do
|
51
|
-
subcards['
|
50
|
+
subcards['signup alert email+*to'] = name
|
52
51
|
subcards['+*roles'] = { :content => Card[:administrator].name }
|
53
52
|
|
54
53
|
email, password = subcards.delete('+*account+*email'), subcards.delete('+*account+*password')
|
@@ -9,70 +9,70 @@ describe Card::Chunk::Include, "Inclusion" do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should ignore invisible comments" do
|
12
|
-
render_content("{{## now you see nothing}}").
|
12
|
+
expect(render_content("{{## now you see nothing}}")).to eq('')
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should handle visible comments" do
|
16
|
-
render_content("{{# now you see me}}").
|
17
|
-
render_content("{{# -->}}").
|
16
|
+
expect(render_content("{{# now you see me}}")).to eq('<!-- # now you see me -->')
|
17
|
+
expect(render_content("{{# -->}}")).to eq('<!-- # --> -->')
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should handle empty inclusions" do
|
21
21
|
instance = @class.new( @class.full_match( '{{ }}' ) , nil )
|
22
|
-
instance.name.
|
23
|
-
instance.options[:inc_syntax].
|
22
|
+
expect(instance.name).to eq('')
|
23
|
+
expect(instance.options[:inc_syntax]).to eq(' ')
|
24
24
|
instance1 = @class.new( @class.full_match( '{{|}}' ) , nil )
|
25
|
-
instance1.name.
|
26
|
-
instance1.options[:inc_syntax].
|
25
|
+
expect(instance1.name).to eq('')
|
26
|
+
expect(instance1.options[:inc_syntax]).to eq('|')
|
27
27
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should handle no pipes" do
|
31
31
|
instance = @class.new( @class.full_match( '{{toy}}') , nil )
|
32
|
-
instance.name.
|
33
|
-
instance.options[:inc_name].
|
34
|
-
instance.options.key?(:view).
|
32
|
+
expect(instance.name).to eq('toy')
|
33
|
+
expect(instance.options[:inc_name]).to eq('toy')
|
34
|
+
expect(instance.options.key?(:view)).to eq(false)
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should strip the name" do
|
38
|
-
@class.new( @class.full_match( '{{ toy }}') , nil ).name.
|
38
|
+
expect(@class.new( @class.full_match( '{{ toy }}') , nil ).name).to eq('toy')
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'should strip html tags' do
|
42
|
-
@class.new( @class.full_match( '{{ <span>toy</span> }}') , nil ).name.
|
42
|
+
expect(@class.new( @class.full_match( '{{ <span>toy</span> }}') , nil ).name).to eq('toy')
|
43
43
|
instance = @class.new( @class.full_match( '{{ <span>toy|open</span> }}') , nil )
|
44
|
-
instance.name.
|
45
|
-
instance.options[:view].
|
44
|
+
expect(instance.name).to eq('toy')
|
45
|
+
expect(instance.options[:view]).to eq('open')
|
46
46
|
end
|
47
47
|
|
48
48
|
it "should handle single pipe" do
|
49
49
|
options = @class.new( @class.full_match('{{toy|view:link;hide:me}}'), nil ).options
|
50
|
-
options[:inc_name].
|
51
|
-
options[:view].
|
52
|
-
options[:hide].
|
53
|
-
options.key?(:items).
|
50
|
+
expect(options[:inc_name]).to eq('toy')
|
51
|
+
expect(options[:view]).to eq('link')
|
52
|
+
expect(options[:hide]).to eq('me')
|
53
|
+
expect(options.key?(:items)).to eq(false)
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should handle multiple pipes" do
|
57
57
|
options = @class.new( @class.full_match('{{box|open|closed}}'), nil ).options
|
58
|
-
options[:inc_name].
|
59
|
-
options[:view].
|
60
|
-
options[:items][:view].
|
61
|
-
options[:items].key?(:items).
|
58
|
+
expect(options[:inc_name]).to eq('box')
|
59
|
+
expect(options[:view]).to eq('open')
|
60
|
+
expect(options[:items][:view]).to eq('closed')
|
61
|
+
expect(options[:items].key?(:items)).to eq(false)
|
62
62
|
end
|
63
63
|
|
64
64
|
it "should handle multiple pipes with blank lists" do
|
65
65
|
options = @class.new( @class.full_match('{{box||closed}}'), nil ).options
|
66
|
-
options[:inc_name].
|
67
|
-
options[:view].
|
68
|
-
options[:items][:view].
|
66
|
+
expect(options[:inc_name]).to eq('box')
|
67
|
+
expect(options[:view]).to eq(nil)
|
68
|
+
expect(options[:items][:view]).to eq('closed')
|
69
69
|
end
|
70
70
|
|
71
71
|
it "should treat :item as view of next level" do
|
72
72
|
options = @class.new( @class.full_match('{{toy|link;item:name}}'), nil ).options
|
73
|
-
options[:inc_name].
|
74
|
-
options[:view].
|
75
|
-
options[:items][:view].
|
73
|
+
expect(options[:inc_name]).to eq('toy')
|
74
|
+
expect(options[:view]).to eq('link')
|
75
|
+
expect(options[:items][:view]).to eq('name')
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
@@ -99,7 +99,7 @@ describe Card::Chunk::Include, "Inclusion" do
|
|
99
99
|
|
100
100
|
r=bob_address.reload.format.render_core
|
101
101
|
assert_view_select r, 'div[class~=card-content]', "Sparta"
|
102
|
-
Card.fetch("bob+address").includees.map(&:name).
|
102
|
+
expect(Card.fetch("bob+address").includees.map(&:name)).to eq([bob_city.name])
|
103
103
|
end
|
104
104
|
|
105
105
|
it "should handle nesting" do
|
@@ -109,15 +109,15 @@ describe Card::Chunk::Include, "Inclusion" do
|
|
109
109
|
r= alpha .format.render_core
|
110
110
|
#warn "r=#{r}"
|
111
111
|
assert_view_select r, 'div[class~=card-content]'
|
112
|
-
r.
|
112
|
+
expect(r).to match(/Booya/)
|
113
113
|
end
|
114
114
|
|
115
115
|
it "should handle options when nesting" do
|
116
116
|
Card.create! :type=>'Pointer', :name=>'Livable', :content=>'[[Earth]]'
|
117
117
|
Card.create! :name=>'Earth'
|
118
118
|
|
119
|
-
render_content('{{Livable|core;item:link}}').
|
120
|
-
render_content('{{Livable|core;item:name}}').
|
119
|
+
expect(render_content('{{Livable|core;item:link}}')).to eq(render_content('{{Livable|core|link}}'))
|
120
|
+
expect(render_content('{{Livable|core;item:name}}')).to eq(render_content('{{Livable|core|name}}'))
|
121
121
|
end
|
122
122
|
|
123
123
|
it "should prevent recursion" do
|
@@ -126,7 +126,7 @@ describe Card::Chunk::Include, "Inclusion" do
|
|
126
126
|
adm = Card['Quentin']
|
127
127
|
adm.update_attributes :content => "{{Oak}}"
|
128
128
|
result = adm.format.render_core
|
129
|
-
result.
|
129
|
+
expect(result).to match('too deep')
|
130
130
|
end
|
131
131
|
|
132
132
|
it "should handle missing cards" do
|
@@ -147,9 +147,9 @@ describe Card::Chunk::Include, "Inclusion" do
|
|
147
147
|
|
148
148
|
wooga = Card.create! :name=>'Wooga', :type=>'SpecialType'
|
149
149
|
wooga_age = Card.create!( :name=>"#{wooga.name}#{Card::Name.joint}age", :content=> "39" )
|
150
|
-
wooga_age.format.render_core.
|
150
|
+
expect(wooga_age.format.render_core).to eq("39")
|
151
151
|
#warn "cards #{wooga.inspect}, #{wooga_age.inspect}"
|
152
|
-
wooga_age.includers.map(&:name).
|
152
|
+
expect(wooga_age.includers.map(&:name)).to eq(['Wooga'])
|
153
153
|
end
|
154
154
|
|
155
155
|
it "should handle shading" do
|
@@ -175,10 +175,10 @@ describe Card::Chunk::Include, "Inclusion" do
|
|
175
175
|
|
176
176
|
#FIXME - should move code and test to core_ext or some such
|
177
177
|
it 'Hash.new_from_semicolon_attr_list should work' do
|
178
|
-
Hash.new_from_semicolon_attr_list("").
|
179
|
-
Hash.new_from_semicolon_attr_list(nil).
|
180
|
-
Hash.new_from_semicolon_attr_list("a:b;c:4" ).
|
181
|
-
Hash.new_from_semicolon_attr_list("d:b;e:4; ").
|
178
|
+
expect(Hash.new_from_semicolon_attr_list("")).to eq({})
|
179
|
+
expect(Hash.new_from_semicolon_attr_list(nil)).to eq({})
|
180
|
+
expect(Hash.new_from_semicolon_attr_list("a:b;c:4" )).to eq({:a=>'b', :c=>'4'})
|
181
|
+
expect(Hash.new_from_semicolon_attr_list("d:b;e:4; ")).to eq({:d=>'b', :e=>'4'})
|
182
182
|
end
|
183
183
|
|
184
184
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
describe Card::Chunk::Link do
|
4
|
+
|
5
|
+
it "should handle unknown cards" do
|
6
|
+
expect(render_content('[[Nixon]]')).to eq('<a class="wanted-card" href="/Nixon">Nixon</a>')
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should handle known cards' do
|
10
|
+
expect(render_content("[[A]]")).to eq('<a class="known-card" href="/A">A</a>')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should handle custom text' do
|
14
|
+
expect(render_content('[[Baines|Lyndon]]')).to eq('<a class="wanted-card" href="/Baines">Lyndon</a>')
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should handle relative names" do
|
18
|
+
@card = Card.new :name=>'Kennedy'
|
19
|
+
expect(render_content('[[+Monroe]]' )).to eq('<a class="wanted-card" href="/Kennedy+Monroe">Kennedy+Monroe</a>')
|
20
|
+
expect(render_content('[[_self+Exner]]' )).to eq('<a class="wanted-card" href="/Kennedy+Exner">Kennedy+Exner</a>')
|
21
|
+
expect(render_content('[[Onassis+]]' )).to eq('<a class="wanted-card" href="/Onassis+Kennedy">Onassis+Kennedy</a>')
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should handle relative names in context" do
|
25
|
+
@card = Card.new :name=>'Kennedy'
|
26
|
+
format_args = { :context_names => [ 'Kennedy'.to_name ] }
|
27
|
+
expect(render_content('[[+Monroe]]' , format_args )).to eq('<a class="wanted-card" href="/Kennedy+Monroe">+Monroe</a>')
|
28
|
+
expect(render_content('[[_self+Exner]]', format_args )).to eq('<a class="wanted-card" href="/Kennedy+Exner">+Exner</a>')
|
29
|
+
expect(render_content('[[Onassis+]]' , format_args )).to eq('<a class="wanted-card" href="/Onassis+Kennedy">Onassis</a>')
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should handle relative urls" do
|
33
|
+
expect(render_content('[[/recent]]')).to eq('<a class="internal-link" href="/recent">/recent</a>')
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should handle absolute urls" do
|
37
|
+
expect(render_content('[[http://google.com]]')).to eq('<a class="external-link" href="http://google.com">http://google.com</a>')
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should escape spaces in cardnames with %20 (not +)" do
|
41
|
+
expect(render_content('[[Marie "Mad Dog" Deatherage|Marie]]')).to eq(
|
42
|
+
'<a class="wanted-card" href="/Marie_Mad_Dog_Deatherage?card%5Bname%5D=Marie+%22Mad+Dog%22+Deatherage">Marie</a>'
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should not escape content outside of link" do
|
47
|
+
expect(render_content('wgw [[http://www.google.com|google]] <br>')).to eq(
|
48
|
+
"wgw <a class=\"external-link\" href=\"http://www.google.com\">google</a> <br>"
|
49
|
+
)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should handle inclusions in link text" do
|
53
|
+
expect(render_content('[[linkies|{{namies|name}}]]')).to eq('<a class="wanted-card" href="/linkies">namies</a>')
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should handle dot (.) in missing cardlink" do
|
57
|
+
expect(render_content("[[Wagn 1.10.12]]")).to eq('<a class="wanted-card" href="/Wagn_1_10_12?card%5Bname%5D=Wagn+1.10.12">Wagn 1.10.12</a>')
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|