card 1.17.4 → 1.18.0
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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/card.gemspec +24 -25
- data/config/initializers/01_init_ruby_extensions.rb +0 -4
- data/config/initializers/inflections.rb +1 -1
- data/config/initializers/notification.rb +2 -2
- data/db/migrate/20110511221913_require_earlier_migrations.rb +3 -3
- data/db/migrate/20120105203350_require_1_8_migrations.rb +3 -3
- data/db/migrate/20121111025347_require_1_10_migrations.rb +3 -3
- data/db/migrate/20130106052640_table_cleanup.rb +4 -4
- data/db/migrate/20130411210957_update_codenames.rb +2 -2
- data/db/migrate/20141001105348_move_revisions_to_actions.rb +4 -4
- data/db/migrate/20141121172918_rename_card_migration_table.rb +2 -2
- data/db/migrate/20141208132159_remove_present_from_reference_table.rb +2 -2
- data/db/migrate/20141216053032_better_index_names.rb +9 -9
- data/db/migrate_core_cards/20120611203506_rails_inflection_updates.rb +29 -32
- data/db/migrate_core_cards/20130411191151_renaming_for_menu.rb +3 -4
- data/db/migrate_core_cards/20130411211600_delete_old_related_tab_cards.rb +1 -1
- data/db/migrate_core_cards/20130419215612_import_help_text.rb +1 -2
- data/db/migrate_core_cards/20130823192433_add_style_cards.rb +3 -3
- data/db/migrate_core_cards/20130910183318_move_styles_to_content.rb +2 -3
- data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +2 -2
- data/db/migrate_core_cards/20130920291703_update_stylesheets.rb +1 -2
- data/db/migrate_core_cards/20130927191728_account_events.rb +5 -6
- data/db/migrate_core_cards/20131016172445_common_css_patch.rb +2 -3
- data/db/migrate_core_cards/20140110193325_reset_account_request_type.rb +0 -1
- data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +23 -32
- data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +1 -7
- data/db/migrate_core_cards/20140512155840_add_script_cards.rb +21 -24
- data/db/migrate_core_cards/20140629222005_add_email_cards.rb +17 -22
- data/db/migrate_core_cards/20140725180118_config_card_updates.rb +2 -2
- data/db/migrate_core_cards/20141111083921_delete_machine_output.rb +1 -3
- data/db/migrate_core_cards/20141115034214_config_descriptions_etc.rb +2 -2
- data/db/migrate_core_cards/20141119001955_make_symlinks_relative.rb +3 -3
- data/db/migrate_core_cards/20141120120605_fix_notification_html_message.rb +1 -1
- data/db/migrate_core_cards/20141204061304_watchers_to_following.rb +8 -12
- data/db/migrate_core_cards/20141208162106_add_ace_script.rb +2 -3
- data/db/migrate_core_cards/20141216155251_add_more_following_cards.rb +10 -10
- data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +10 -12
- data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +4 -4
- data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +3 -3
- data/db/migrate_core_cards/20150326205655_bootswatch_themes.rb +7 -7
- data/db/migrate_core_cards/20150429090551_search_card_context.rb +18 -20
- data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +3 -7
- data/db/migrate_core_cards/20150510031118_fix_skin_images.rb +2 -3
- data/db/migrate_core_cards/20150528084659_add_session_cardtype.rb +3 -3
- data/db/migrate_core_cards/20150601133433_add_recent_setting_session_card.rb +4 -4
- data/db/migrate_core_cards/20150610171702_add_debugger_session_card.rb +4 -4
- data/db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb +5 -11
- data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +29 -35
- data/db/migrate_core_cards/20150824135418_update_file_history.rb +10 -14
- data/db/migrate_core_cards/20150903130006_attachment_upload_cards.rb +1 -1
- data/db/schema.rb +92 -94
- data/db/seed/new/card_actions.yml +461 -469
- data/db/seed/new/card_acts.yml +154 -172
- data/db/seed/new/card_changes.yml +4076 -4031
- data/db/seed/new/card_references.yml +1584 -1927
- data/db/seed/new/cards.yml +2095 -2112
- data/db/seed/test/fixtures/card_actions.yml +1497 -1505
- data/db/seed/test/fixtures/card_acts.yml +454 -472
- data/db/seed/test/fixtures/card_changes.yml +7309 -7263
- data/db/seed/test/fixtures/card_references.yml +2263 -2613
- data/db/seed/test/fixtures/cards.yml +3298 -3316
- data/db/seed/test/seed.rb +3 -0
- data/lib/card.rb +17 -9
- data/lib/card/active_record_ext.rb +6 -8
- data/lib/card/active_record_helper.rb +42 -32
- data/lib/card/auth.rb +3 -3
- data/lib/card/cache.rb +4 -4
- data/lib/card/cache/persistent.rb +9 -5
- data/lib/card/cache/temporary.rb +5 -5
- data/lib/card/chunk.rb +1 -1
- data/lib/card/codename.rb +3 -2
- data/lib/card/content.rb +62 -57
- data/lib/card/core_ext.rb +20 -30
- data/lib/card/diff.rb +88 -76
- data/lib/card/director_register.rb +66 -0
- data/lib/card/env.rb +14 -17
- data/lib/card/exceptions.rb +7 -9
- data/lib/card/format.rb +18 -367
- data/lib/card/format/nest.rb +183 -0
- data/lib/card/format/permission.rb +63 -0
- data/lib/card/format/render.rb +140 -0
- data/lib/card/loader.rb +17 -26
- data/lib/card/location.rb +6 -6
- data/lib/card/mailer.rb +4 -7
- data/lib/card/migration.rb +1 -1
- data/lib/card/name.rb +3 -6
- data/lib/card/query.rb +8 -8
- data/lib/card/query/attributes.rb +6 -6
- data/lib/card/query/clause.rb +10 -10
- data/lib/card/query/join.rb +7 -9
- data/lib/card/query/reference.rb +17 -19
- data/lib/card/query/sql_statement.rb +2 -2
- data/lib/card/query/value.rb +15 -16
- data/lib/card/set.rb +106 -209
- data/lib/card/set/event.rb +126 -0
- data/lib/card/set_pattern.rb +42 -29
- data/lib/card/simplecov_helper.rb +19 -19
- data/lib/card/spec_helper.rb +40 -16
- data/lib/card/stage.rb +72 -0
- data/lib/card/stage_director.rb +231 -0
- data/lib/card/subcards.rb +56 -24
- data/lib/card/subdirector_array.rb +31 -0
- data/lib/card/success.rb +15 -18
- data/lib/card/version.rb +1 -2
- data/lib/card/view_cache.rb +4 -4
- data/lib/card/view_name.rb +10 -8
- data/lib/cardio.rb +1 -1
- data/lib/generators/card.rb +2 -4
- data/lib/generators/card/format/format_generator.rb +4 -4
- data/lib/generators/card/migration/migration_generator.rb +6 -6
- data/lib/generators/card/set/set_generator.rb +5 -6
- data/mod/01_core/chunk/include.rb +2 -1
- data/mod/01_core/chunk/link.rb +2 -2
- data/mod/01_core/chunk/literal.rb +6 -9
- data/mod/01_core/chunk/query_reference.rb +1 -1
- data/mod/01_core/chunk/reference.rb +2 -2
- data/mod/01_core/chunk/uri.rb +52 -63
- data/mod/01_core/format/html_format.rb +8 -12
- data/mod/01_core/format/text_format.rb +1 -1
- data/mod/01_core/set/all/actify.rb +96 -0
- data/mod/01_core/set/all/active_card.rb +7 -7
- data/mod/01_core/set/all/collection.rb +19 -20
- data/mod/01_core/set/all/content.rb +9 -7
- data/mod/01_core/set/all/erb.rb +5 -5
- data/mod/01_core/set/all/event.rb +60 -0
- data/mod/01_core/set/all/fetch.rb +13 -19
- data/mod/01_core/set/all/haml.rb +1 -1
- data/mod/01_core/set/all/initialize.rb +35 -41
- data/mod/01_core/set/all/location_history.rb +3 -5
- data/mod/01_core/set/all/name.rb +19 -68
- data/mod/01_core/set/all/name_validations.rb +56 -0
- data/mod/01_core/set/all/pattern.rb +2 -2
- data/mod/01_core/set/all/permissions.rb +14 -20
- data/mod/01_core/set/all/phases.rb +9 -200
- data/mod/01_core/set/all/references.rb +10 -10
- data/mod/01_core/set/all/rules.rb +3 -4
- data/mod/01_core/set/all/stages.rb +24 -0
- data/mod/01_core/set/all/states.rb +4 -4
- data/mod/01_core/set/all/subcards.rb +16 -26
- data/mod/01_core/set/all/templating.rb +1 -3
- data/mod/01_core/set/all/tracked_attributes.rb +47 -48
- data/mod/01_core/set/all/trash.rb +10 -10
- data/mod/01_core/set/all/type.rb +9 -8
- data/mod/01_core/set/all/utils.rb +10 -14
- data/mod/01_core/set/all/view_cache.rb +2 -2
- data/mod/01_core/set_pattern/01_all.rb +3 -3
- data/mod/01_core/set_pattern/02_all_plus.rb +3 -3
- data/mod/01_core/set_pattern/03_type.rb +2 -2
- data/mod/01_core/set_pattern/04_star.rb +3 -3
- data/mod/01_core/set_pattern/05_rstar.rb +3 -3
- data/mod/01_core/set_pattern/06_right.rb +2 -2
- data/mod/01_core/set_pattern/07_type_plus_right.rb +2 -2
- data/mod/01_core/set_pattern/08_self.rb +1 -1
- data/mod/01_core/spec/chunk/literal_spec.rb +7 -8
- data/mod/01_core/spec/chunk/uri_spec.rb +140 -142
- data/mod/01_core/spec/format/html_format_spec.rb +72 -57
- data/mod/01_core/spec/set/all/collection_spec.rb +63 -43
- data/mod/01_core/spec/set/all/content_spec.rb +4 -4
- data/mod/01_core/spec/set/all/fetch_spec.rb +12 -3
- data/mod/01_core/spec/set/all/name_spec.rb +3 -4
- data/mod/01_core/spec/set/all/pattern_spec.rb +32 -35
- data/mod/01_core/spec/set/all/permissions_spec.rb +17 -5
- data/mod/01_core/spec/set/all/phases_spec.rb +0 -1
- data/mod/01_core/spec/set/all/references_spec.rb +1 -1
- data/mod/01_core/spec/set/all/rules2_spec.rb +79 -91
- data/mod/01_core/spec/set/all/rules_spec.rb +63 -56
- data/mod/01_core/spec/set/all/templating_spec.rb +0 -1
- data/mod/01_core/spec/set/all/tracked_attributes_spec.rb +4 -5
- data/mod/01_core/spec/set/all/trash_spec.rb +23 -1
- data/mod/01_core/spec/set/all/type_spec.rb +2 -5
- data/mod/01_history/lib/card/action.rb +8 -10
- data/mod/01_history/set/all/actions.rb +2 -4
- data/mod/01_history/set/all/content_history.rb +38 -32
- data/mod/01_history/set/all/history.rb +20 -17
- data/mod/02_basic_types/format/rss_format.rb +0 -1
- data/mod/02_basic_types/set/all/all_css.rb +9 -13
- data/mod/02_basic_types/set/all/all_csv.rb +14 -17
- data/mod/02_basic_types/set/all/all_js.rb +3 -4
- data/mod/02_basic_types/set/all/base.rb +2 -2
- data/mod/02_basic_types/set/all/file.rb +2 -5
- data/mod/02_basic_types/set/all/json.rb +19 -18
- data/mod/02_basic_types/set/all/rss.rb +3 -3
- data/mod/02_basic_types/set/all/text.rb +1 -3
- data/mod/02_basic_types/set/type/html.rb +4 -8
- data/mod/02_basic_types/set/type/plain_text.rb +2 -3
- data/mod/02_basic_types/set/type/pointer.rb +82 -92
- data/mod/02_basic_types/spec/set/all/all_css_spec.rb +2 -2
- data/mod/02_basic_types/spec/set/all/all_csv_spec.rb +6 -4
- data/mod/02_basic_types/spec/set/all/base_spec.rb +6 -6
- data/mod/02_basic_types/spec/set/all/json_spec.rb +8 -8
- data/mod/02_basic_types/spec/set/type/plain_text_spec.rb +3 -3
- data/mod/02_basic_types/spec/set/type/pointer_spec.rb +29 -32
- data/mod/03_machines/lib/card/machine.rb +95 -81
- data/mod/03_machines/lib/card/machine_input.rb +35 -34
- data/mod/03_machines/set/right/machine_input.rb +1 -1
- data/mod/03_machines/set/self/script_ace.rb +2 -3
- data/mod/03_machines/set/self/script_card_menu.rb +2 -3
- data/mod/03_machines/set/self/script_jquery_helper.rb +2 -2
- data/mod/03_machines/set/self/script_slot.rb +2 -2
- data/mod/03_machines/set/self/style_bootstrap_compatible.rb +1 -1
- data/mod/03_machines/set/self/style_cards.rb +1 -1
- data/mod/03_machines/set/self/style_jquery_ui_smoothness.rb +0 -1
- data/mod/03_machines/set/type/coffee_script.rb +9 -13
- data/mod/03_machines/set/type/css.rb +12 -13
- data/mod/03_machines/set/type/java_script.rb +6 -8
- data/mod/03_machines/set/type/scss.rb +4 -5
- data/mod/03_machines/set/type/skin.rb +3 -6
- data/mod/03_machines/spec/lib/shared_machine_examples.rb +31 -38
- data/mod/03_machines/spec/lib/shared_machine_input_examples.rb +7 -8
- data/mod/03_machines/spec/set/type/coffeescript_spec.rb +19 -13
- data/mod/03_machines/spec/set/type/css_spec.rb +22 -16
- data/mod/03_machines/spec/set/type/scss_spec.rb +28 -21
- data/mod/03_machines/spec/set/type/skin_spec.rb +28 -30
- data/mod/04_settings/lib/card/setting.rb +4 -4
- data/mod/04_settings/set/abstract/permission.rb +30 -37
- data/mod/04_settings/set/right/add_help.rb +3 -3
- data/mod/04_settings/set/right/script.rb +4 -5
- data/mod/04_settings/set/right/structure.rb +3 -4
- data/mod/04_settings/set/right/style.rb +3 -3
- data/mod/04_settings/set/self/add_help.rb +1 -1
- data/mod/04_settings/set/self/input.rb +1 -1
- data/mod/04_settings/set/self/on_create.rb +1 -1
- data/mod/04_settings/set/self/options.rb +1 -1
- data/mod/04_settings/set/self/options_label.rb +1 -1
- data/mod/04_settings/set/type/setting.rb +29 -44
- data/mod/04_settings/spec/set/right/comment_spec.rb +9 -12
- data/mod/04_settings/spec/set/right/script_spec.rb +7 -7
- data/mod/04_settings/spec/set/right/structure_spec.rb +13 -12
- data/mod/04_settings/spec/set/right/style_spec.rb +13 -13
- data/mod/04_settings/spec/set/type/setting_spec.rb +1 -1
- data/mod/05_email/format/email_html_format.rb +1 -1
- data/mod/05_email/format/email_text_format.rb +2 -2
- data/mod/05_email/lib/card/follow_option.rb +12 -15
- data/mod/05_email/set/all/email_html.rb +2 -3
- data/mod/05_email/set/all/email_text.rb +3 -3
- data/mod/05_email/set/all/follow.rb +14 -22
- data/mod/05_email/set/all/notify.rb +11 -11
- data/mod/05_email/set/all/observer.rb +7 -8
- data/mod/05_email/set/right/bcc.rb +4 -9
- data/mod/05_email/set/right/follow.rb +26 -39
- data/mod/05_email/set/right/follow_fields.rb +2 -2
- data/mod/05_email/set/right/followers.rb +3 -1
- data/mod/05_email/set/right/following.rb +13 -16
- data/mod/05_email/set/self/always.rb +1 -2
- data/mod/05_email/set/self/created.rb +4 -6
- data/mod/05_email/set/self/edited.rb +3 -7
- data/mod/05_email/set/self/follow_defaults.rb +11 -12
- data/mod/05_email/set/self/never.rb +2 -4
- data/mod/05_email/set/type/email_template.rb +40 -27
- data/mod/05_email/set/type_plus_right/user/follow.rb +159 -157
- data/mod/05_email/spec/set/all/follow_spec.rb +28 -37
- data/mod/05_email/spec/set/all/notify_spec.rb +21 -26
- data/mod/05_email/spec/set/all/observer_spec.rb +58 -37
- data/mod/05_email/spec/set/right/followers_spec.rb +9 -14
- data/mod/05_email/spec/set/right/following_spec.rb +1 -1
- data/mod/05_email/spec/set/self/follow_defaults_spec.rb +1 -1
- data/mod/05_standard/lib/carrier_wave/cardmount.rb +9 -9
- data/mod/05_standard/lib/file_uploader.rb +8 -13
- data/mod/05_standard/lib/image_uploader.rb +8 -9
- data/mod/05_standard/set/abstract/attachment.rb +26 -43
- data/mod/05_standard/set/all/account.rb +2 -2
- data/mod/05_standard/set/all/comment.rb +11 -13
- data/mod/05_standard/set/all/error.rb +18 -18
- data/mod/05_standard/set/all/event_viz.rb +16 -29
- data/mod/05_standard/set/all/links.rb +35 -34
- data/mod/05_standard/set/all/list_changes.rb +10 -12
- data/mod/05_standard/set/all/rich_html/content.rb +13 -13
- data/mod/05_standard/set/all/rich_html/editing.rb +5 -5
- data/mod/05_standard/set/all/rich_html/form.rb +22 -26
- data/mod/05_standard/set/all/rich_html/header.rb +18 -25
- data/mod/05_standard/set/all/rich_html/menu.rb +20 -22
- data/mod/05_standard/set/all/rich_html/modal.rb +3 -3
- data/mod/05_standard/set/all/rich_html/toolbar.rb +49 -58
- data/mod/05_standard/set/all/rich_html/wrapper.rb +40 -41
- data/mod/05_standard/set/right/account.rb +26 -14
- data/mod/05_standard/set/right/email.rb +2 -2
- data/mod/05_standard/set/right/password.rb +6 -5
- data/mod/05_standard/set/right/salt.rb +2 -2
- data/mod/05_standard/set/right/stats.rb +17 -20
- data/mod/05_standard/set/right/token.rb +1 -1
- data/mod/05_standard/set/right/when_created.rb +1 -1
- data/mod/05_standard/set/right/when_last_edited.rb +1 -1
- data/mod/05_standard/set/rstar/rules.rb +3 -3
- data/mod/05_standard/set/rstar/rules_editor.rb +39 -39
- data/mod/05_standard/set/self/account_links.rb +21 -22
- data/mod/05_standard/set/self/admin_info.rb +5 -5
- data/mod/05_standard/set/self/alerts.rb +1 -1
- data/mod/05_standard/set/self/all.rb +1 -1
- data/mod/05_standard/set/self/foot.rb +1 -1
- data/mod/05_standard/set/self/head.rb +19 -22
- data/mod/05_standard/set/self/navbox.rb +3 -7
- data/mod/05_standard/set/self/now.rb +1 -1
- data/mod/05_standard/set/self/recent.rb +19 -25
- data/mod/05_standard/set/self/search.rb +2 -4
- data/mod/05_standard/set/self/signin.rb +6 -6
- data/mod/05_standard/set/self/stats.rb +31 -38
- data/mod/05_standard/set/self/version.rb +1 -2
- data/mod/05_standard/set/type/basic.rb +15 -17
- data/mod/05_standard/set/type/cardtype.rb +3 -3
- data/mod/05_standard/set/type/date.rb +1 -2
- data/mod/05_standard/set/type/file.rb +22 -33
- data/mod/05_standard/set/type/image.rb +30 -23
- data/mod/05_standard/set/type/layout_type.rb +4 -4
- data/mod/05_standard/set/type/list.rb +32 -38
- data/mod/05_standard/set/type/listed_by.rb +11 -13
- data/mod/05_standard/set/type/number.rb +5 -6
- data/mod/05_standard/set/type/phrase.rb +1 -1
- data/mod/05_standard/set/type/search_type.rb +25 -23
- data/mod/05_standard/set/type/session.rb +2 -3
- data/mod/05_standard/set/type/set.rb +46 -51
- data/mod/05_standard/set/type/signup.rb +18 -19
- data/mod/05_standard/set/type/toggle.rb +5 -5
- data/mod/05_standard/set/type/user.rb +6 -6
- data/mod/05_standard/spec/chunk/include_spec.rb +115 -98
- data/mod/05_standard/spec/chunk/link_spec.rb +58 -31
- data/mod/05_standard/spec/chunk/query_reference_spec.rb +12 -14
- data/mod/05_standard/spec/set/all/email_html_spec.rb +3 -3
- data/mod/05_standard/spec/set/all/error_spec.rb +3 -3
- data/mod/05_standard/spec/set/all/history_spec.rb +52 -38
- data/mod/05_standard/spec/set/all/links_spec.rb +2 -2
- data/mod/05_standard/spec/set/all/rich_html/editing_spec.rb +0 -1
- data/mod/05_standard/spec/set/all/rich_html/form_spec.rb +11 -11
- data/mod/05_standard/spec/set/all/rich_html/wrapper_spec.rb +4 -4
- data/mod/05_standard/spec/set/right/email_spec.rb +1 -4
- data/mod/05_standard/spec/set/right/password_spec.rb +4 -7
- data/mod/05_standard/spec/set/right/stats_spec.rb +2 -3
- data/mod/05_standard/spec/set/right/when_created_spec.rb +1 -1
- data/mod/05_standard/spec/set/right/when_last_edited_spec.rb +1 -1
- data/mod/05_standard/spec/set/rstar/rules_spec.rb +6 -6
- data/mod/05_standard/spec/set/self/all_spec.rb +11 -13
- data/mod/05_standard/spec/set/self/head_spec.rb +1 -3
- data/mod/05_standard/spec/set/self/navbox_spec.rb +1 -1
- data/mod/05_standard/spec/set/self/now_spec.rb +2 -2
- data/mod/05_standard/spec/set/self/signin_spec.rb +1 -1
- data/mod/05_standard/spec/set/self/stats_spec.rb +1 -1
- data/mod/05_standard/spec/set/self/version_spec.rb +2 -2
- data/mod/05_standard/spec/set/type/cardtype_spec.rb +3 -4
- data/mod/05_standard/spec/set/type/date_spec.rb +1 -1
- data/mod/05_standard/spec/set/type/email_template_spec.rb +5 -5
- data/mod/05_standard/spec/set/type/file_spec.rb +50 -28
- data/mod/05_standard/spec/set/type/html_spec.rb +12 -7
- data/mod/05_standard/spec/set/type/image_spec.rb +55 -45
- data/mod/05_standard/spec/set/type/layout_type_spec.rb +2 -2
- data/mod/05_standard/spec/set/type/listed_by_spec.rb +2 -2
- data/mod/05_standard/spec/set/type/number_spec.rb +1 -1
- data/mod/05_standard/spec/set/type/phrase_spec.rb +1 -1
- data/mod/05_standard/spec/set/type/search_type_spec.rb +15 -16
- data/mod/05_standard/spec/set/type/set_spec.rb +16 -17
- data/mod/05_standard/spec/set/type/signup_spec.rb +7 -5
- data/mod/05_standard/spec/set/type/toggle_spec.rb +4 -4
- data/mod/05_standard/spec/set/type/uri_spec.rb +11 -11
- data/mod/05_standard/spec/set/type/user_spec.rb +0 -1
- data/mod/06_bootstrap/set/all/bootstrap/form.rb +9 -10
- data/mod/06_bootstrap/set/all/bootstrap/helper.rb +22 -27
- data/mod/06_bootstrap/set/all/bootstrap/wrapper.rb +1 -2
- data/mod/06_bootstrap/set/all/rich_bootstrap.rb +1 -3
- data/mod/06_bootstrap/set/self/bootstrap_cards.rb +2 -2
- data/mod/06_bootstrap/set/self/bootstrap_js.rb +2 -2
- data/mod/06_bootstrap/set/self/bootswatch_shared.rb +19 -19
- data/mod/06_bootstrap/set/self/smartmenu_css.rb +2 -2
- data/mod/06_bootstrap/set/self/smartmenu_js.rb +3 -3
- data/mod/06_bootstrap/spec/set/all/bootstrap/form_spec.rb +5 -5
- data/spec/lib/card/action_spec.rb +4 -4
- data/spec/lib/card/cache_spec.rb +3 -5
- data/spec/lib/card/chunk_spec.rb +6 -8
- data/spec/lib/card/codename_spec.rb +4 -6
- data/spec/lib/card/content_spec.rb +12 -17
- data/spec/lib/card/diff_spec.rb +59 -61
- data/spec/lib/card/format_spec.rb +55 -34
- data/spec/lib/card/loader_spec.rb +35 -37
- data/spec/lib/card/name_spec.rb +159 -145
- data/spec/lib/card/query_spec.rb +4 -4
- data/spec/lib/card/reference_spec.rb +24 -24
- data/spec/lib/card/set_pattern_spec.rb +3 -3
- data/spec/lib/card/stage_director_spec.rb +218 -0
- data/spec/lib/card/subcards_spec.rb +12 -16
- data/spec/lib/card/success_spec.rb +16 -18
- data/spec/lib/card/view_cache_spec.rb +1 -1
- data/spec/mailers/mailer_spec.rb +3 -5
- data/spec/models/card/cardtype_spec.rb +40 -51
- data/spec/models/card/create_spec.rb +58 -39
- data/spec/models/card/trash_spec.rb +23 -32
- data/spec/models/card/type_transition_spec.rb +41 -32
- data/spec/models/card/validation_spec.rb +13 -15
- data/spec/models/card_spec.rb +48 -59
- data/spec/spec_helper.rb +26 -31
- metadata +16 -2
@@ -11,7 +11,6 @@ describe Card, 'deleting card' do
|
|
11
11
|
expect(a.errors[:permission_denied]).not_to be_empty
|
12
12
|
expect(Card['a'].trash).to eq(false)
|
13
13
|
end
|
14
|
-
|
15
14
|
end
|
16
15
|
end
|
17
16
|
|
@@ -28,7 +27,7 @@ describe Card, 'deleted card' do
|
|
28
27
|
it 'should come out of the trash when a plus card is created' do
|
29
28
|
Card::Auth.as_bot do
|
30
29
|
Card.create(name: 'A+*acct')
|
31
|
-
c = Card[
|
30
|
+
c = Card['A']
|
32
31
|
expect(c.trash).to be_falsey
|
33
32
|
end
|
34
33
|
end
|
@@ -37,20 +36,19 @@ end
|
|
37
36
|
describe Card, 'in trash' do
|
38
37
|
it 'should be retrieved by fetch with new' do
|
39
38
|
Card.create(name: 'Betty').delete
|
40
|
-
c=Card.fetch 'Betty', new: {}
|
39
|
+
c = Card.fetch 'Betty', new: {}
|
41
40
|
c.save
|
42
41
|
expect(Card['Betty']).to be_instance_of(Card)
|
43
42
|
end
|
44
43
|
end
|
45
44
|
|
46
|
-
|
47
45
|
describe Card, 'plus cards' do
|
48
46
|
it 'should be deleted when root is' do
|
49
47
|
Card::Auth.as 'joe_admin' do
|
50
48
|
c = Card.create! name: 'zz+top'
|
51
49
|
root = Card['zz']
|
52
50
|
root.delete
|
53
|
-
# Rails.logger.info "ERRORS = #{root.errors.full_messages*''}"
|
51
|
+
# Rails.logger.info "ERRORS = #{root.errors.full_messages*''}"
|
54
52
|
expect(Card.find(c.id).trash).to be_truthy
|
55
53
|
expect(Card['zz']).to be_nil
|
56
54
|
end
|
@@ -60,7 +58,7 @@ end
|
|
60
58
|
# FIXME: these user tests should probably be in a set of cardtype specific tests somewhere..
|
61
59
|
describe Card do
|
62
60
|
context 'with revisions' do
|
63
|
-
before
|
61
|
+
before { Card::Auth.as_bot { @c = Card['Wagn Bot'] } }
|
64
62
|
it 'should not be removable' do
|
65
63
|
expect(@c.delete).not_to be_truthy
|
66
64
|
end
|
@@ -78,11 +76,8 @@ describe Card do
|
|
78
76
|
end
|
79
77
|
end
|
80
78
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
#NOT WORKING, BUT IT SHOULD
|
85
|
-
#describe Card, "a part of an unremovable card" do
|
79
|
+
# NOT WORKING, BUT IT SHOULD
|
80
|
+
# describe Card, "a part of an unremovable card" do
|
86
81
|
# before do
|
87
82
|
# Card::Auth.as(Card::WagnBotID)
|
88
83
|
# # this ugly setup makes it so A+Admin is the actual user with edits..
|
@@ -92,7 +87,7 @@ end
|
|
92
87
|
# @a = Card['A']
|
93
88
|
# @a.delete.should_not be_true
|
94
89
|
# end
|
95
|
-
#end
|
90
|
+
# end
|
96
91
|
|
97
92
|
describe Card, 'dependent removal' do
|
98
93
|
before do
|
@@ -115,7 +110,7 @@ describe Card, 'rename to trashed name' do
|
|
115
110
|
Card::Auth.as_bot do
|
116
111
|
@a = Card['A']
|
117
112
|
@b = Card['B']
|
118
|
-
@a.delete! #trash
|
113
|
+
@a.delete! # trash
|
119
114
|
Rails.logger.info "\n\n~~~~~~~deleted~~~~~~~~\n\n\n"
|
120
115
|
|
121
116
|
@b.update_attributes! name: 'A', update_referers: true
|
@@ -133,7 +128,6 @@ describe Card, 'rename to trashed name' do
|
|
133
128
|
end
|
134
129
|
end
|
135
130
|
|
136
|
-
|
137
131
|
describe Card, 'sent to trash' do
|
138
132
|
before do
|
139
133
|
Card::Auth.as_bot do
|
@@ -179,23 +173,22 @@ describe Card, 'revived from trash' do
|
|
179
173
|
|
180
174
|
it 'should have the same content' do
|
181
175
|
expect(@c.content).to eq('revived content')
|
182
|
-
# Card.fetch(@c.name).content.should == 'revived content'
|
176
|
+
# Card.fetch(@c.name).content.should == 'revived content'
|
183
177
|
end
|
184
178
|
end
|
185
179
|
|
186
180
|
describe Card, 'recreate trashed card via new' do
|
187
|
-
# before do
|
188
|
-
# Card::Auth.as(Card::WagnBotID)
|
189
|
-
# @c = Card.create! type: 'Basic', name: "BasicMe"
|
190
|
-
# end
|
191
|
-
|
192
|
-
# this test is known to be broken; we've worked around it for now
|
193
|
-
# it "should delete and recreate with a different cardtype" do
|
194
|
-
# @c.delete!
|
195
|
-
# @re_c = Card.new type: "Phrase", name: "BasicMe", content: "Banana"
|
196
|
-
# @re_c.save!
|
197
|
-
# end
|
198
|
-
|
181
|
+
# before do
|
182
|
+
# Card::Auth.as(Card::WagnBotID)
|
183
|
+
# @c = Card.create! type: 'Basic', name: "BasicMe"
|
184
|
+
# end
|
185
|
+
|
186
|
+
# this test is known to be broken; we've worked around it for now
|
187
|
+
# it "should delete and recreate with a different cardtype" do
|
188
|
+
# @c.delete!
|
189
|
+
# @re_c = Card.new type: "Phrase", name: "BasicMe", content: "Banana"
|
190
|
+
# @re_c.save!
|
191
|
+
# end
|
199
192
|
end
|
200
193
|
|
201
194
|
describe Card, 'junction revival' do
|
@@ -225,7 +218,6 @@ describe Card, 'junction revival' do
|
|
225
218
|
end
|
226
219
|
|
227
220
|
describe 'remove tests' do
|
228
|
-
|
229
221
|
before do
|
230
222
|
@a = Card['A']
|
231
223
|
end
|
@@ -239,7 +231,7 @@ describe 'remove tests' do
|
|
239
231
|
end
|
240
232
|
|
241
233
|
it 'test_recreate_plus_card_name_variant' do
|
242
|
-
Card.create(
|
234
|
+
Card.create(name: 'rta+rtb').delete
|
243
235
|
Card['rta'].update_attributes name: 'rta!'
|
244
236
|
c = Card.create! name: 'rta!+rtb'
|
245
237
|
assert Card['rta!+rtb']
|
@@ -248,13 +240,12 @@ describe 'remove tests' do
|
|
248
240
|
end
|
249
241
|
|
250
242
|
it 'test_multiple_trash_collision' do
|
251
|
-
Card.create(
|
243
|
+
Card.create(name: 'alpha').delete
|
252
244
|
3.times do
|
253
|
-
b = Card.create(
|
245
|
+
b = Card.create(name: 'beta')
|
254
246
|
b.name = 'alpha'
|
255
247
|
assert b.save!
|
256
248
|
b.delete
|
257
249
|
end
|
258
250
|
end
|
259
251
|
end
|
260
|
-
|
@@ -24,16 +24,32 @@ class Card
|
|
24
24
|
end
|
25
25
|
|
26
26
|
module CardtypeE
|
27
|
-
def self.included
|
28
|
-
|
29
|
-
|
27
|
+
def self.included _base
|
28
|
+
Card.count = 2
|
29
|
+
end
|
30
|
+
|
31
|
+
def on_type_change
|
32
|
+
decrement_count
|
33
|
+
end
|
34
|
+
|
35
|
+
def decrement_count
|
36
|
+
Card.count -= 1
|
37
|
+
end
|
30
38
|
end
|
31
39
|
|
32
40
|
module CardtypeF
|
33
|
-
def self.included
|
41
|
+
def self.included _base
|
42
|
+
Card.count = 2
|
43
|
+
end
|
44
|
+
|
34
45
|
# FIXME: create_extension doesn't exist anymore, need another hook
|
35
|
-
def create_extension
|
36
|
-
|
46
|
+
def create_extension
|
47
|
+
increment_count
|
48
|
+
end
|
49
|
+
|
50
|
+
def increment_count
|
51
|
+
Card.count += 1
|
52
|
+
end
|
37
53
|
end
|
38
54
|
end
|
39
55
|
end
|
@@ -50,8 +66,6 @@ describe Card, 'with role' do
|
|
50
66
|
end
|
51
67
|
end
|
52
68
|
|
53
|
-
|
54
|
-
|
55
69
|
describe Card, 'with account' do
|
56
70
|
before do
|
57
71
|
Card::Auth.as_bot do
|
@@ -66,12 +80,11 @@ describe Card, 'with account' do
|
|
66
80
|
it 'should allow type changes' do
|
67
81
|
expect(@joe.type_code).to eq(:basic)
|
68
82
|
end
|
69
|
-
|
70
83
|
end
|
71
84
|
|
72
85
|
describe Card, 'type transition approve create' do
|
73
86
|
it 'should have cardtype b create role r1' do
|
74
|
-
expect((c=Card.fetch('Cardtype B+*type+*create')).content).to eq('[[r1]]')
|
87
|
+
expect((c = Card.fetch('Cardtype B+*type+*create')).content).to eq('[[r1]]')
|
75
88
|
expect(c.type_code).to eq(:pointer)
|
76
89
|
end
|
77
90
|
|
@@ -81,7 +94,7 @@ describe Card, 'type transition approve create' do
|
|
81
94
|
end
|
82
95
|
|
83
96
|
it 'should be the original type' do
|
84
|
-
|
97
|
+
-> { change_card_to_type 'basicname', 'cardtype_b' }
|
85
98
|
expect(Card['basicname'].type_code).to eq(:basic)
|
86
99
|
end
|
87
100
|
end
|
@@ -113,48 +126,44 @@ describe Card, 'type transition validate_create' do
|
|
113
126
|
end
|
114
127
|
end
|
115
128
|
|
116
|
-
describe Card,
|
129
|
+
describe Card, 'type transition delete callback' do
|
117
130
|
before do
|
118
|
-
@c = change_card_to_type(
|
131
|
+
@c = change_card_to_type('type-e-card', :basic)
|
119
132
|
end
|
120
133
|
|
121
|
-
it
|
122
|
-
pending
|
134
|
+
it 'should decrement counter in before delete' do
|
135
|
+
pending 'no trigger for this test anymore'
|
123
136
|
expect(Card.count).to eq(1)
|
124
137
|
end
|
125
138
|
|
126
|
-
it
|
127
|
-
expect(Card[
|
139
|
+
it 'should change type of the card' do
|
140
|
+
expect(Card['type-e-card'].type_code).to eq(:basic)
|
128
141
|
end
|
129
142
|
end
|
130
143
|
|
131
|
-
describe Card,
|
144
|
+
describe Card, 'type transition create callback' do
|
132
145
|
before do
|
133
146
|
Card::Auth.as_bot do
|
134
|
-
Card.create(name: 'Basic+*type+*delete', type: 'Pointer', content:
|
147
|
+
Card.create(name: 'Basic+*type+*delete', type: 'Pointer', content: '[[Anyone Signed in]]')
|
135
148
|
end
|
136
|
-
@c = change_card_to_type(
|
149
|
+
@c = change_card_to_type('basicname', :cardtype_f)
|
137
150
|
end
|
138
151
|
|
139
|
-
it
|
140
|
-
pending
|
152
|
+
it 'should increment counter' do
|
153
|
+
pending 'No extensions, so no hooks for this now'
|
141
154
|
expect(Card.count).to eq(3)
|
142
155
|
end
|
143
156
|
|
144
|
-
it
|
145
|
-
expect(Card[
|
157
|
+
it 'should change type of card' do
|
158
|
+
expect(Card['basicname'].type_code).to eq(:cardtype_f)
|
146
159
|
end
|
147
160
|
end
|
148
161
|
|
149
|
-
|
150
162
|
def change_card_to_type name, type
|
151
163
|
card = Card.fetch(name)
|
152
|
-
tid=card.type_id = Symbol===type ? Card::Codename[type] : Card.fetch_id(type)
|
153
|
-
#warn "card[#{name.inspect}, T:#{type.inspect}] is #{card.inspect}, TID:#{tid}"
|
154
|
-
r=card.save
|
155
|
-
#warn "saved #{card.inspect} R#{r}"
|
164
|
+
tid = card.type_id = Symbol === type ? Card::Codename[type] : Card.fetch_id(type)
|
165
|
+
# warn "card[#{name.inspect}, T:#{type.inspect}] is #{card.inspect}, TID:#{tid}"
|
166
|
+
r = card.save
|
167
|
+
# warn "saved #{card.inspect} R#{r}"
|
156
168
|
card
|
157
169
|
end
|
158
|
-
|
159
|
-
|
160
|
-
|
@@ -1,36 +1,34 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
|
3
|
-
describe Card,
|
4
|
-
|
5
|
-
|
6
|
-
@c = Card.create name: "testname/"
|
3
|
+
describe Card, 'validate name' do
|
4
|
+
it 'should error on name with /' do
|
5
|
+
@c = Card.create name: 'testname/'
|
7
6
|
expect(@c.errors[:name]).not_to be_blank
|
8
7
|
end
|
9
8
|
|
10
|
-
it
|
11
|
-
@c = Card.create name:
|
9
|
+
it 'should error on junction name with /' do
|
10
|
+
@c = Card.create name: 'jasmin+ri/ce'
|
12
11
|
expect(@c.errors[:name]).not_to be_blank
|
13
12
|
end
|
14
13
|
|
15
14
|
it "shouldn't create any new cards when name invalid" do
|
16
15
|
original_card_count = Card.count
|
17
|
-
@c = Card.create name:
|
16
|
+
@c = Card.create name: 'jasmin+ri/ce'
|
18
17
|
expect(Card.count).to eq(original_card_count)
|
19
18
|
end
|
20
19
|
|
21
|
-
it
|
22
|
-
@c = Card.new name:
|
20
|
+
it 'should not allow empty name' do
|
21
|
+
@c = Card.new name: ''
|
23
22
|
expect(@c.valid?).to eq(false)
|
24
23
|
expect(@c.errors[:name]).not_to be_blank
|
25
24
|
end
|
26
25
|
|
27
26
|
# maybe the @c.key= should just throw an error, but now it doesn't take anyway
|
28
|
-
it
|
29
|
-
@c = Card.new name:
|
30
|
-
@c.key=
|
31
|
-
|
27
|
+
it 'should not allow mismatched name and key' do
|
28
|
+
@c = Card.new name: 'Test'
|
29
|
+
@c.key = 'foo'
|
30
|
+
# @c.key.should == 'test'
|
32
31
|
expect(@c.valid?).to eq(false)
|
33
|
-
|
32
|
+
# @c.errors[:key].should_not be_blank
|
34
33
|
end
|
35
|
-
|
36
34
|
end
|
data/spec/models/card_spec.rb
CHANGED
@@ -1,39 +1,37 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
|
3
3
|
describe Card do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
expect(Card["Wagn Bot"].class).to eq(Card)
|
4
|
+
describe 'test data' do
|
5
|
+
it 'should be findable by name' do
|
6
|
+
expect(Card['Wagn Bot'].class).to eq(Card)
|
8
7
|
end
|
9
8
|
end
|
10
9
|
|
11
|
-
describe
|
10
|
+
describe 'creation' do
|
12
11
|
before(:each) do
|
13
12
|
Card::Auth.as_bot do
|
14
|
-
@b = Card.create! name:
|
13
|
+
@b = Card.create! name: 'New Card', content: 'Great Content'
|
15
14
|
@c = Card.find(@b.id)
|
16
15
|
end
|
17
16
|
end
|
18
17
|
|
19
|
-
it
|
20
|
-
it
|
21
|
-
it
|
22
|
-
it
|
23
|
-
it
|
18
|
+
it 'should not have errors' do expect(@b.errors.size).to eq(0) end
|
19
|
+
it 'should have the right class' do expect(@c.class).to eq(Card) end
|
20
|
+
it 'should have the right key' do expect(@c.key).to eq('new_card') end
|
21
|
+
it 'should have the right name' do expect(@c.name).to eq('New Card') end
|
22
|
+
it 'should have the right content' do expect(@c.content).to eq('Great Content') end
|
24
23
|
|
25
|
-
it
|
26
|
-
expect(@c.db_content).to eq(
|
27
|
-
expect(@c.content).to eq(
|
24
|
+
it 'should have the right content' do
|
25
|
+
expect(@c.db_content).to eq('Great Content')
|
26
|
+
expect(@c.content).to eq('Great Content')
|
28
27
|
end
|
29
28
|
|
30
|
-
it
|
31
|
-
expect(Card[
|
29
|
+
it 'should be findable by name' do
|
30
|
+
expect(Card['New Card'].class).to eq(Card)
|
32
31
|
end
|
33
32
|
end
|
34
33
|
|
35
|
-
|
36
|
-
describe "content change should create new action" do
|
34
|
+
describe 'content change should create new action' do
|
37
35
|
before do
|
38
36
|
Card::Auth.as_bot do
|
39
37
|
@c = Card['basicname']
|
@@ -41,30 +39,26 @@ describe Card do
|
|
41
39
|
end
|
42
40
|
end
|
43
41
|
|
44
|
-
it
|
42
|
+
it 'should have 2 actions' do
|
45
43
|
expect(@c.actions.count).to eq(2)
|
46
44
|
end
|
47
45
|
|
48
|
-
it
|
46
|
+
it 'should have original action' do
|
49
47
|
expect(@c.nth_action(1).change_for(2).first.value).to eq('basiccontent')
|
50
48
|
end
|
51
49
|
end
|
52
50
|
|
53
|
-
|
54
|
-
|
55
|
-
describe "created a virtual card when missing and has a template" do
|
56
|
-
it "should be flagged as virtual" do
|
51
|
+
describe 'created a virtual card when missing and has a template' do
|
52
|
+
it 'should be flagged as virtual' do
|
57
53
|
expect(Card.new(name: 'A+*last edited').virtual?).to be_truthy
|
58
54
|
end
|
59
55
|
end
|
60
56
|
end
|
61
57
|
|
62
|
-
describe
|
63
|
-
|
64
|
-
|
58
|
+
describe 'basic card tests' do
|
65
59
|
def assert_simple_card card
|
66
|
-
expect(card.name).to be,
|
67
|
-
expect(card.name.empty?).to be_falsey,
|
60
|
+
expect(card.name).to be, 'name not null'
|
61
|
+
expect(card.name.empty?).to be_falsey, 'name not empty'
|
68
62
|
action = card.last_action
|
69
63
|
expect(action).to be_instance_of Card::Action
|
70
64
|
expect(action.act.actor).to be_instance_of Card
|
@@ -83,35 +77,35 @@ describe "basic card tests" do
|
|
83
77
|
end
|
84
78
|
|
85
79
|
it 'should remove cards' do
|
86
|
-
forba = Card.create! name:
|
87
|
-
torga = Card.create! name:
|
88
|
-
torgb = Card.create! name:
|
89
|
-
torgc = Card.create! name:
|
80
|
+
forba = Card.create! name: 'Forba'
|
81
|
+
torga = Card.create! name: 'TorgA'
|
82
|
+
torgb = Card.create! name: 'TorgB'
|
83
|
+
torgc = Card.create! name: 'TorgC'
|
90
84
|
|
91
|
-
forba_torga = Card.create! name:
|
92
|
-
torgb_forba = Card.create! name:
|
93
|
-
forba_torga_torgc = Card.create! name:
|
85
|
+
forba_torga = Card.create! name: 'Forba+TorgA'
|
86
|
+
torgb_forba = Card.create! name: 'TorgB+Forba'
|
87
|
+
forba_torga_torgc = Card.create! name: 'Forba+TorgA+TorgC'
|
94
88
|
|
95
89
|
Card['Forba'].delete!
|
96
90
|
|
97
|
-
expect(Card[
|
98
|
-
expect(Card[
|
99
|
-
expect(Card[
|
100
|
-
expect(Card[
|
91
|
+
expect(Card['Forba']).to be_nil
|
92
|
+
expect(Card['Forba+TorgA']).to be_nil
|
93
|
+
expect(Card['TorgB+Forba']).to be_nil
|
94
|
+
expect(Card['Forba+TorgA+TorgC']).to be_nil
|
101
95
|
|
102
96
|
# FIXME: this is a pretty dumb test and it takes a loooooooong time
|
103
|
-
#while card = Card.find(:first,conditions: ["type not in (?,?,?) and trash=?", 'AccountRequest','User','Cardtype',false] )
|
97
|
+
# while card = Card.find(:first,conditions: ["type not in (?,?,?) and trash=?", 'AccountRequest','User','Cardtype',false] )
|
104
98
|
# card.delete!
|
105
|
-
#end
|
106
|
-
#assert_equal 0, Card.find_all_by_trash(false).size
|
99
|
+
# end
|
100
|
+
# assert_equal 0, Card.find_all_by_trash(false).size
|
107
101
|
end
|
108
102
|
|
109
|
-
#test test_attribute_card
|
103
|
+
# test test_attribute_card
|
110
104
|
# alpha, beta = Card.create(name: 'alpha'), Card.create(name: 'beta')
|
111
105
|
# assert_nil alpha.attribute_card('beta')
|
112
106
|
# Card.create name: 'alpha+beta'
|
113
107
|
# alpha.attribute_card('beta').should be_instance_of(Card)
|
114
|
-
#end
|
108
|
+
# end
|
115
109
|
|
116
110
|
it 'should create cards' do
|
117
111
|
alpha = Card.new name: 'alpha', content: 'alpha'
|
@@ -121,19 +115,17 @@ describe "basic card tests" do
|
|
121
115
|
assert_stable alpha
|
122
116
|
end
|
123
117
|
|
124
|
-
|
125
118
|
it 'should not find nonexistent' do
|
126
119
|
expect(Card['no such card+no such tag']).to be_nil
|
127
120
|
expect(Card['HomeCard+no such tag']).to be_nil
|
128
121
|
end
|
129
122
|
|
130
|
-
|
131
123
|
it 'update_should_create_subcards' do
|
132
124
|
banana = Card.create! name: 'Banana'
|
133
|
-
Card.update banana.id, subcards: {
|
125
|
+
Card.update banana.id, subcards: { '+peel' => { content: 'yellow' } }
|
134
126
|
|
135
127
|
peel = Card['Banana+peel']
|
136
|
-
expect(peel.content). to eq(
|
128
|
+
expect(peel.content). to eq('yellow')
|
137
129
|
expect(Card['joe_user'].id).to eq(peel.creator_id)
|
138
130
|
end
|
139
131
|
|
@@ -143,35 +135,32 @@ describe "basic card tests" do
|
|
143
135
|
expect(Card['Banana']).not_to be
|
144
136
|
expect(Card['Basic'].ok?(:create)).to be_falsey, "anon can't creat"
|
145
137
|
|
146
|
-
Card.create! type:
|
138
|
+
Card.create! type: 'Fruit', name: 'Banana', subcards: { '+peel' => { content: 'yellow' } }
|
147
139
|
expect(Card['Banana']).to be
|
148
|
-
peel = Card[
|
140
|
+
peel = Card['Banana+peel']
|
149
141
|
|
150
|
-
expect(peel.db_content).to eq(
|
142
|
+
expect(peel.db_content).to eq('yellow')
|
151
143
|
expect(peel.creator_id).to eq(Card::AnonymousID)
|
152
144
|
end
|
153
145
|
|
154
146
|
it 'update_should_not_create_subcards_if_missing_main_card_permissions' do
|
155
|
-
b = Card.create!(
|
147
|
+
b = Card.create!(name: 'Banana')
|
156
148
|
Card::Auth.as Card::AnonymousID do
|
157
|
-
b.update_attributes subcards: {
|
149
|
+
b.update_attributes subcards: { '+peel' => { content: 'yellow' } }
|
158
150
|
expect(b.errors[:permission_denied]).not_to be_empty
|
159
151
|
|
160
|
-
|
161
|
-
c = Card.update(b.id, subcards: { "+peel" => { content: "yellow" }})
|
152
|
+
c = Card.update(b.id, subcards: { '+peel' => { content: 'yellow' } })
|
162
153
|
expect(c.errors[:permission_denied]).not_to be_empty
|
163
154
|
expect(Card['Banana+peel']).to be_nil
|
164
155
|
end
|
165
156
|
end
|
166
157
|
|
167
|
-
|
168
158
|
it 'create_without_read_permission' do
|
169
|
-
c = Card.create!(
|
159
|
+
c = Card.create!(name: 'Banana', type: 'Fruit', content: 'mush')
|
170
160
|
Card::Auth.as Card::AnonymousID do
|
171
161
|
assert_raises Card::PermissionDenied do
|
172
162
|
c.ok! :read
|
173
163
|
end
|
174
164
|
end
|
175
165
|
end
|
176
|
-
|
177
166
|
end
|