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
@@ -22,40 +22,40 @@ describe Card::Success do
|
|
22
22
|
before do
|
23
23
|
success_params id: home.id, view: 'closed'
|
24
24
|
end
|
25
|
-
it { is_expected.to eq home}
|
25
|
+
it { is_expected.to eq home }
|
26
26
|
end
|
27
27
|
|
28
28
|
context 'initialized with REDIRECT string' do
|
29
29
|
before do
|
30
30
|
success_params 'REDIRECT: Home'
|
31
31
|
end
|
32
|
-
it { is_expected.to eq home}
|
32
|
+
it { is_expected.to eq home }
|
33
33
|
end
|
34
34
|
|
35
35
|
context 'initialized with TEXT string' do
|
36
36
|
before do
|
37
37
|
success_params 'TEXT: Hi'
|
38
38
|
end
|
39
|
-
it { is_expected.to eq 'Hi'}
|
39
|
+
it { is_expected.to eq 'Hi' }
|
40
40
|
end
|
41
41
|
|
42
42
|
context 'initialized with card object' do
|
43
43
|
before do
|
44
44
|
success_params home
|
45
45
|
end
|
46
|
-
it { is_expected.to eq home}
|
46
|
+
it { is_expected.to eq home }
|
47
47
|
end
|
48
48
|
|
49
49
|
context 'initialized with url' do
|
50
50
|
before do
|
51
51
|
success_params 'http://wagn.org'
|
52
52
|
end
|
53
|
-
it { is_expected.to eq 'http://wagn.org'}
|
53
|
+
it { is_expected.to eq 'http://wagn.org' }
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
57
|
describe '#to_url' do
|
58
|
-
subject { @success.to_url}
|
58
|
+
subject { @success.to_url }
|
59
59
|
context 'with params' do
|
60
60
|
context 'using initilization' do
|
61
61
|
before do
|
@@ -80,7 +80,7 @@ describe Card::Success do
|
|
80
80
|
context 'using <<' do
|
81
81
|
before do
|
82
82
|
success_params nil
|
83
|
-
@success << { card: home, view: 'closed'}
|
83
|
+
@success << { card: home, view: 'closed' }
|
84
84
|
end
|
85
85
|
it { is_expected.to eq '/Home?view=closed' }
|
86
86
|
end
|
@@ -89,7 +89,7 @@ describe Card::Success do
|
|
89
89
|
before do
|
90
90
|
success_params 'REDIRECT: *previous'
|
91
91
|
end
|
92
|
-
it { is_expected.to eq previous}
|
92
|
+
it { is_expected.to eq previous }
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
@@ -102,7 +102,7 @@ describe Card::Success do
|
|
102
102
|
|
103
103
|
describe '#hard_redirect?' do
|
104
104
|
it 'true for "REDIRECT: anywhere"' do
|
105
|
-
success_params
|
105
|
+
success_params 'REDIRECT: anywhere'
|
106
106
|
expect(@success.hard_redirect?).to be_truthy
|
107
107
|
end
|
108
108
|
end
|
@@ -135,15 +135,13 @@ describe Card::Success do
|
|
135
135
|
expect(@success.params.keys.sort).to eq [:layout, :script, :structure, :view]
|
136
136
|
end
|
137
137
|
it 'ignores "id", "name", "mark", "card"", target", and "redirect"' do
|
138
|
-
success_params(
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
view: 'View'
|
146
|
-
})
|
138
|
+
success_params(id: 5,
|
139
|
+
name: 'Home',
|
140
|
+
card: Card['Home'],
|
141
|
+
mark: 'Home',
|
142
|
+
target: 'Home',
|
143
|
+
redirect: false,
|
144
|
+
view: 'View')
|
147
145
|
expect(@success.params.keys).to eq [:view]
|
148
146
|
end
|
149
147
|
end
|
data/spec/mailers/mailer_spec.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
require 'card/mailer'
|
3
3
|
|
4
4
|
describe Card::Mailer do
|
5
|
-
#include ActionMailer::Quoting
|
5
|
+
# include ActionMailer::Quoting
|
6
6
|
|
7
7
|
before do
|
8
8
|
ActionMailer::Base.deliveries = []
|
@@ -43,8 +43,6 @@ describe Card::Mailer do
|
|
43
43
|
# # FIXME: at least two tests should be here, with & w/o attachment.
|
44
44
|
# end
|
45
45
|
|
46
|
-
|
47
|
-
|
48
46
|
# describe "cardmail" do
|
49
47
|
# before do
|
50
48
|
# Card.gimme "mailtest", content: "test"
|
@@ -57,8 +55,8 @@ describe Card::Mailer do
|
|
57
55
|
# end
|
58
56
|
|
59
57
|
private
|
60
|
-
|
58
|
+
|
59
|
+
def encode subject
|
61
60
|
quoted_printable(subject, Card::Mailer::CHARSET)
|
62
61
|
end
|
63
|
-
|
64
62
|
end
|
@@ -6,14 +6,13 @@ class Card
|
|
6
6
|
cattr_accessor :count
|
7
7
|
end
|
8
8
|
|
9
|
-
describe
|
10
|
-
|
11
|
-
it "should not allow cardtype remove when instances present" do
|
9
|
+
describe 'Card (Cardtype)' do
|
10
|
+
it 'should not allow cardtype remove when instances present' do
|
12
11
|
Card.create name: 'City', type: 'Cardtype'
|
13
12
|
city = Card.fetch('City')
|
14
|
-
c1=Card.create name: 'Sparta', type: 'City'
|
15
|
-
c2=Card.create name: 'Eugene', type: 'City'
|
16
|
-
assert_equal
|
13
|
+
c1 = Card.create name: 'Sparta', type: 'City'
|
14
|
+
c2 = Card.create name: 'Eugene', type: 'City'
|
15
|
+
assert_equal %w(Eugene Sparta), Card.search(type: 'City').map(&:name).sort
|
17
16
|
assert_raises ActiveRecord::RecordInvalid do
|
18
17
|
city.delete!
|
19
18
|
end
|
@@ -21,50 +20,47 @@ describe "Card (Cardtype)" do
|
|
21
20
|
expect(Card['City']).not_to be_nil
|
22
21
|
end
|
23
22
|
|
24
|
-
it
|
23
|
+
it 'remove cardtype' do
|
25
24
|
Card.create! name: 'County', type: 'Cardtype'
|
26
25
|
c = Card['County']
|
27
26
|
c.delete
|
28
27
|
end
|
29
28
|
|
30
|
-
it
|
31
|
-
|
32
|
-
|
33
|
-
assert_instance_of Card, c=Card.fetch("BananaPudding")
|
29
|
+
it 'cardtype creation and dynamic cardtype' do
|
30
|
+
assert Card.create(name: 'BananaPudding', type: 'Cardtype').type_id == Card::Codename[:cardtype]
|
31
|
+
assert_instance_of Card, c = Card.fetch('BananaPudding')
|
34
32
|
|
35
33
|
# you have to have a module to include or it's just a Basic (type_code fielde excepted)
|
36
|
-
cd = Card.create(type: 'banana_pudding',name:
|
34
|
+
cd = Card.create(type: 'banana_pudding', name: 'figgy')
|
37
35
|
assert cd.type_name == 'BananaPudding'
|
38
36
|
assert Card.find_by_type_id(c.id)
|
39
37
|
end
|
40
38
|
|
41
|
-
describe
|
39
|
+
describe 'conversion to cardtype' do
|
42
40
|
before do
|
43
41
|
@card = Card.create!(type: 'Cardtype', name: 'Cookie')
|
44
42
|
expect(@card.type_name).to eq('Cardtype')
|
45
43
|
end
|
46
44
|
|
47
|
-
it
|
45
|
+
it 'creates cardtype model and permission' do
|
48
46
|
@card.type_id = Card.fetch_id('cookie')
|
49
47
|
@card.save!
|
50
48
|
expect(@card.type_name).to eq('Cookie')
|
51
|
-
@card=Card['Cookie']
|
49
|
+
@card = Card['Cookie']
|
52
50
|
assert_instance_of Card, @card
|
53
51
|
expect(@card.type_code).to eq(nil) # :cookie
|
54
|
-
assert_equal 'Cookie', Card.create!(
|
52
|
+
assert_equal 'Cookie', Card.create!(name: 'Oreo', type: 'Cookie').type_name
|
55
53
|
end
|
56
54
|
end
|
57
55
|
|
58
|
-
it
|
56
|
+
it 'cardtype' do
|
59
57
|
Card.all.each do |card|
|
60
58
|
assert !card.type_card.nil?
|
61
59
|
end
|
62
60
|
end
|
63
|
-
|
64
61
|
end
|
65
62
|
|
66
|
-
|
67
|
-
describe Card, "created without permission" do
|
63
|
+
describe Card, 'created without permission' do
|
68
64
|
before do
|
69
65
|
Card::Auth.current_id = Card::AnonymousID
|
70
66
|
end
|
@@ -72,14 +68,14 @@ describe Card, "created without permission" do
|
|
72
68
|
# FIXME: this one should pass. unfortunately when I tried to fix it it started looking like the clean solution
|
73
69
|
# was to rewrite most of the permissions section as simple validations and i decided not to go down that rabbit hole.
|
74
70
|
#
|
75
|
-
#it "should not be valid" do
|
71
|
+
# it "should not be valid" do
|
76
72
|
# Card.new( name: 'foo', type: 'Cardtype').valid?.should_not be_true
|
77
|
-
#end
|
73
|
+
# end
|
78
74
|
|
79
|
-
it
|
80
|
-
expect
|
81
|
-
Card.new(
|
82
|
-
|
75
|
+
it 'should not create a new cardtype until saved' do
|
76
|
+
expect do
|
77
|
+
Card.new(name: 'foo', type: 'Cardtype')
|
78
|
+
end.not_to change(Card, :count)
|
83
79
|
end
|
84
80
|
end
|
85
81
|
|
@@ -109,37 +105,36 @@ describe Card, 'Normal card with descendants' do
|
|
109
105
|
end
|
110
106
|
end
|
111
107
|
|
112
|
-
describe Card,
|
108
|
+
describe Card, 'New Cardtype' do
|
113
109
|
before do
|
114
110
|
Card::Auth.as_bot do
|
115
111
|
@ct = Card.create! name: 'Animal', type: 'Cardtype'
|
116
112
|
end
|
117
113
|
end
|
118
114
|
|
119
|
-
it
|
115
|
+
it 'should have create permissions' do
|
120
116
|
expect(@ct.who_can(:create)).not_to be_nil
|
121
117
|
end
|
122
118
|
|
123
|
-
it
|
119
|
+
it 'its create permissions should be based on Basic' do
|
124
120
|
expect(@ct.who_can(:create)).to eq(Card['Basic'].who_can(:create))
|
125
121
|
end
|
126
122
|
end
|
127
123
|
|
128
|
-
describe Card,
|
124
|
+
describe Card, 'Wannabe Cardtype Card' do
|
129
125
|
before do
|
130
126
|
Card::Auth.as_bot do
|
131
127
|
@card = Card.create! name: 'convertible'
|
132
|
-
@card.type_id=Card::CardtypeID
|
128
|
+
@card.type_id = Card::CardtypeID
|
133
129
|
@card.save!
|
134
130
|
end
|
135
|
-
|
136
131
|
end
|
137
|
-
it
|
132
|
+
it 'should successfully change its type to a Cardtype' do
|
138
133
|
expect(Card['convertible'].type_code).to eq(:cardtype)
|
139
134
|
end
|
140
135
|
end
|
141
136
|
|
142
|
-
describe Card,
|
137
|
+
describe Card, 'Joe User' do
|
143
138
|
before do
|
144
139
|
Card::Auth.as_bot do
|
145
140
|
@r3 = Card['r3']
|
@@ -150,31 +145,29 @@ describe Card, "Joe User" do
|
|
150
145
|
@type_names = Card::Auth.createable_types
|
151
146
|
end
|
152
147
|
|
153
|
-
it
|
148
|
+
it 'should not have r3 permissions' do
|
154
149
|
expect(@ucard.fetch(new: {}, trait: :roles).item_names.member?(@r3.name)).to be_falsey
|
155
150
|
end
|
156
|
-
it
|
151
|
+
it 'should ponder creating a card of Cardtype F, but find that he lacks create permissions' do
|
157
152
|
expect(Card.new(type: 'Cardtype F').ok?(:create)).to be_falsey
|
158
153
|
end
|
159
|
-
it
|
154
|
+
it 'should not find Cardtype F on its list of createable cardtypes' do
|
160
155
|
expect(@type_names.member?('Cardtype F')).to be_falsey
|
161
156
|
end
|
162
|
-
it
|
157
|
+
it 'should find Basic on its list of createable cardtypes' do
|
163
158
|
expect(@type_names.member?('Basic')).to be_truthy
|
164
159
|
end
|
165
|
-
|
166
160
|
end
|
167
161
|
|
168
|
-
|
169
|
-
describe Card, "Cardtype with Existing Cards" do
|
162
|
+
describe Card, 'Cardtype with Existing Cards' do
|
170
163
|
before do
|
171
164
|
@ct = Card['Cardtype F']
|
172
165
|
end
|
173
|
-
it
|
166
|
+
it 'should have existing cards of that type' do
|
174
167
|
expect(Card.search(type: @ct.name)).not_to be_empty
|
175
168
|
end
|
176
169
|
|
177
|
-
it
|
170
|
+
it 'should raise an error when you try to delete it' do
|
178
171
|
Card::Auth.as_bot do
|
179
172
|
@ct.delete
|
180
173
|
expect(@ct.errors[:cardtype]).not_to be_empty
|
@@ -182,19 +175,15 @@ describe Card, "Cardtype with Existing Cards" do
|
|
182
175
|
end
|
183
176
|
end
|
184
177
|
|
185
|
-
|
186
178
|
describe Card::Set::Type::Cardtype do
|
187
|
-
|
188
|
-
it "should handle changing away from Cardtype" do
|
179
|
+
it 'should handle changing away from Cardtype' do
|
189
180
|
Card::Auth.as_bot do
|
190
|
-
ctg = Card.create! name:
|
181
|
+
ctg = Card.create! name: 'CardtypeG', type: 'Cardtype'
|
191
182
|
ctg.type_id = Card::BasicID
|
192
183
|
ctg.save!
|
193
|
-
ctg = Card[
|
184
|
+
ctg = Card['CardtypeG']
|
194
185
|
expect(ctg.type_code).to eq(:basic)
|
195
|
-
#ctg.extension.should == nil
|
186
|
+
# ctg.extension.should == nil
|
196
187
|
end
|
197
188
|
end
|
198
189
|
end
|
199
|
-
|
200
|
-
|
@@ -1,82 +1,101 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
|
3
|
-
# FIXME this shouldn't be here
|
4
|
-
describe Card::Set::Type::Cardtype,
|
5
|
-
it
|
6
|
-
|
3
|
+
# FIXME: this shouldn't be here
|
4
|
+
describe Card::Set::Type::Cardtype, '.create with :codename' do
|
5
|
+
it 'should work' do
|
6
|
+
card = Card.create! name: 'Foo Type', codename: 'foo',
|
7
|
+
type: 'Cardtype'
|
8
|
+
expect(card.type_code).to eq(:cardtype)
|
7
9
|
end
|
8
10
|
end
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
describe Card, "created by Card.new " do
|
12
|
+
describe Card, 'created by Card.new' do
|
14
13
|
before(:each) do
|
15
14
|
Card::Auth.as_bot do
|
16
|
-
@c = Card.new name:
|
15
|
+
@c = Card.new name: 'New Card', content: 'Great Content'
|
17
16
|
end
|
18
17
|
end
|
19
18
|
|
20
|
-
it
|
19
|
+
it 'should not override explicit content with default content' do
|
21
20
|
Card::Auth.as_bot do
|
22
|
-
Card.create! name:
|
23
|
-
c = Card.new name:
|
24
|
-
expect(c.content).to eq(
|
21
|
+
Card.create! name: 'blue+*right+*default', content: 'joe', type: 'Pointer'
|
22
|
+
c = Card.new name: 'Lady+blue', content: '[[Jimmy]]'
|
23
|
+
expect(c.content).to eq('[[Jimmy]]')
|
25
24
|
end
|
26
25
|
end
|
27
26
|
end
|
28
27
|
|
29
|
-
|
30
|
-
|
31
|
-
describe Card, "created by Card.create with valid attributes" do
|
28
|
+
describe Card, 'created by Card.create with valid attributes' do
|
32
29
|
before(:each) do
|
33
30
|
Card::Auth.as_bot do
|
34
|
-
@b = Card.create name:
|
31
|
+
@b = Card.create name: 'New Card', content: 'Great Content'
|
35
32
|
@c = Card.find(@b.id)
|
36
33
|
end
|
37
34
|
end
|
38
35
|
|
39
|
-
it
|
40
|
-
|
41
|
-
|
42
|
-
it
|
43
|
-
|
36
|
+
it 'does not have errors' do
|
37
|
+
expect(@b.errors.size).to eq(0)
|
38
|
+
end
|
39
|
+
it 'has the right class' do
|
40
|
+
expect(@c.class).to eq(Card)
|
41
|
+
end
|
42
|
+
it 'has the right key' do
|
43
|
+
expect(@c.key).to eq('new_card')
|
44
|
+
end
|
45
|
+
it 'has the right name' do
|
46
|
+
expect(@c.name).to eq('New Card')
|
47
|
+
end
|
48
|
+
it 'has the right content' do
|
49
|
+
expect(@c.content).to eq('Great Content')
|
50
|
+
end
|
44
51
|
|
45
|
-
it
|
46
|
-
@c.db_content ==
|
52
|
+
it 'has the right content' do
|
53
|
+
@c.db_content == 'Great Content'
|
47
54
|
end
|
48
55
|
|
49
|
-
it
|
50
|
-
expect(Card[
|
56
|
+
it 'is findable by name' do
|
57
|
+
expect(Card['New Card'].class).to eq(Card)
|
51
58
|
end
|
52
59
|
end
|
53
60
|
|
54
|
-
|
55
|
-
describe Card, "create junction" do
|
61
|
+
describe Card, 'create junction two parts' do
|
56
62
|
before(:each) do
|
57
|
-
@c = Card.create! name:
|
63
|
+
@c = Card.create! name: 'Peach+Pear', content: 'juicy'
|
58
64
|
end
|
59
65
|
|
60
|
-
it "
|
66
|
+
it "doesn't have errors" do
|
61
67
|
expect(@c.errors.size).to eq(0)
|
62
68
|
end
|
63
69
|
|
64
|
-
it
|
65
|
-
expect(Card[
|
70
|
+
it 'creates junction card' do
|
71
|
+
expect(Card['Peach+Pear'].class).to eq(Card)
|
66
72
|
end
|
67
73
|
|
68
|
-
it
|
69
|
-
expect(Card[
|
74
|
+
it 'creates trunk card' do
|
75
|
+
expect(Card['Peach'].class).to eq(Card)
|
70
76
|
end
|
71
77
|
|
72
|
-
it
|
73
|
-
expect(Card[
|
78
|
+
it 'creates tag card' do
|
79
|
+
expect(Card['Pear'].class).to eq(Card)
|
74
80
|
end
|
75
81
|
end
|
76
82
|
|
83
|
+
describe Card, 'create junction three parts' do
|
84
|
+
it 'creates very left card' do
|
85
|
+
Card.create! name: 'Apple+Peach+Pear', content: 'juicy'
|
86
|
+
expect(Card['Apple'].class).to eq(Card)
|
87
|
+
end
|
77
88
|
|
78
|
-
|
79
|
-
|
80
|
-
|
89
|
+
it 'sets left and right ids' do
|
90
|
+
Card.create! name: 'Sugar+Milk+Flour', content: 'tasty'
|
91
|
+
sugar_milk = Card['Sugar+Milk']
|
92
|
+
sugar_milk_flour = Card['Sugar+Milk+Flour']
|
93
|
+
expect(sugar_milk_flour.left_id).to eq(sugar_milk.id)
|
94
|
+
expect(sugar_milk_flour.right_id).to eq(Card.fetch_id('Flour'))
|
95
|
+
expect(sugar_milk.left_id).to eq(Card.fetch_id('Sugar'))
|
96
|
+
expect(sugar_milk.right_id).to eq(Card.fetch_id('Milk'))
|
97
|
+
end
|
81
98
|
end
|
82
99
|
|
100
|
+
describe Card, 'types' do
|
101
|
+
end
|