card 1.17.4 → 1.18.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8c446c5d4d4690dcdfd3dfec9e7ccd86eb8103d
|
4
|
+
data.tar.gz: 46449abad4c318e46f01f1785d37d755bbdbcac8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff2d853a9eb45e599c82338dc3b9b2bfae8674b38ff61129715bf2082311dc32aa323457d74cadee1ac87d0bad8d225787c403ed7bdbed94d69870b5f253af62
|
7
|
+
data.tar.gz: c3f805c9e1eea8148e9567ef8fa2f89281a401c9c63677e2a06c5820871be6933bc094f83e3edf4dd43ba57025e193764708331f301b98b14925aec5ebe1f544
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.18.0
|
data/card.gemspec
CHANGED
@@ -2,56 +2,55 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'card'
|
5
|
-
s.version = File.open(File.expand_path(
|
6
|
-
s.authors = [
|
5
|
+
s.version = File.open(File.expand_path('../VERSION', __FILE__)).read.chomp
|
6
|
+
s.authors = ['Ethan McCutchen', 'Lewis Hoffman', 'Gerry Gleason', "Philipp Kühl"]
|
7
7
|
s.email = ['info@wagn.org']
|
8
8
|
|
9
|
-
# s.date = '2013-12-20'
|
10
|
-
s.summary =
|
11
|
-
s.description =
|
9
|
+
# s.date = '2013-12-20'
|
10
|
+
s.summary = 'an atomic, set-driven content engine'
|
11
|
+
s.description = 'Cards are data atoms that are grouped into Sets to which Rules can apply. Cards can formatted with Views and transformed with Events.'
|
12
12
|
s.homepage = 'http://wagn.org'
|
13
13
|
s.license = 'GPL'
|
14
14
|
|
15
|
-
s.files = `git ls-files`.split(
|
15
|
+
s.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
16
16
|
|
17
17
|
# add submodule files (seed data)
|
18
|
-
`git submodule --quiet foreach pwd`.split(
|
18
|
+
`git submodule --quiet foreach pwd`.split($OUTPUT_RECORD_SEPARATOR).each do |submod_path|
|
19
19
|
gem_root = File.expand_path File.dirname(__FILE__)
|
20
20
|
relative_submod_path = submod_path.gsub "#{gem_root}/", ''
|
21
21
|
Dir.chdir(submod_path) do
|
22
|
-
s.files += `git ls-files`.split(
|
22
|
+
s.files += `git ls-files`.split($OUTPUT_RECORD_SEPARATOR).map do |filename|
|
23
23
|
"#{relative_submod_path}/#{filename}"
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
29
|
-
s.require_paths = [
|
29
|
+
s.require_paths = ['lib']
|
30
30
|
|
31
31
|
s.required_ruby_version = '>= 1.9.3'
|
32
32
|
|
33
33
|
[
|
34
34
|
|
35
|
-
[
|
35
|
+
['smartname', '0.2.3'],
|
36
36
|
|
37
|
-
[
|
38
|
-
[
|
39
|
-
[
|
40
|
-
[
|
41
|
-
[
|
42
|
-
[
|
43
|
-
[
|
44
|
-
[
|
45
|
-
[
|
46
|
-
[
|
37
|
+
['activerecord-session_store', '~> 0.1'],
|
38
|
+
['uuid', '~> 2.3'],
|
39
|
+
['carrierwave', '~> 0.10'],
|
40
|
+
['htmlentities', '~> 4.3'],
|
41
|
+
['mini_magick', '~> 4.2.10'],
|
42
|
+
['recaptcha', '~> 0.4.0'],
|
43
|
+
['coderay', '~> 1.0'],
|
44
|
+
['sass', '~> 3.2'],
|
45
|
+
['coffee-script', '~> 2.2'],
|
46
|
+
['uglifier', '~> 2.5'],
|
47
47
|
|
48
|
-
[
|
49
|
-
[
|
50
|
-
[
|
51
|
-
[
|
48
|
+
['haml', '~> 4.0'],
|
49
|
+
['kaminari', '~> 0.16'],
|
50
|
+
['bootstrap-kaminari-views', '~> 0.0.5'],
|
51
|
+
['diff-lcs', '~> 1.2']
|
52
52
|
|
53
53
|
].each do |dep|
|
54
54
|
s.add_runtime_dependency *dep
|
55
55
|
end
|
56
|
-
|
57
56
|
end
|
@@ -5,7 +5,7 @@
|
|
5
5
|
ActiveSupport::Inflector.inflections do |inflect|
|
6
6
|
inflect.irregular 'grave', 'graveyard'
|
7
7
|
inflect.uncountable 'this'
|
8
|
-
# inflect.uncountable 'plus'
|
8
|
+
# inflect.uncountable 'plus'
|
9
9
|
inflect.uncountable 'anonymous'
|
10
10
|
inflect.uncountable 's'
|
11
11
|
inflect.singular(/(ss)$/i, '\1')
|
@@ -1,4 +1,4 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
|
-
ActiveSupport::Notifications.subscribe(/^card/) do |name, start, finish,
|
3
|
-
Rails.logger.debug "#{
|
2
|
+
ActiveSupport::Notifications.subscribe(/^card/) do |name, start, finish, _id, payload|
|
3
|
+
Rails.logger.debug "#{(finish - start) * 1000}ms: #{name}: #{payload[:message]}"
|
4
4
|
end
|
@@ -3,17 +3,17 @@ require 'card/version'
|
|
3
3
|
|
4
4
|
class RequireEarlierMigrations < ActiveRecord::Migration
|
5
5
|
def self.up
|
6
|
-
|
6
|
+
raise %(
|
7
7
|
Your database is not ready to be migrated to #{Card::Version.release}.
|
8
8
|
You will need to do incremental upgrades.
|
9
9
|
Please first install version 1.6.1 and run `rake db:migrate`.
|
10
10
|
Then install version 1.8.0 and run `rake db:migrate`.
|
11
11
|
|
12
12
|
Sorry about this! We're working to minimize these hassles in the future.
|
13
|
-
|
13
|
+
)
|
14
14
|
end
|
15
15
|
|
16
16
|
def self.down
|
17
|
-
|
17
|
+
raise 'Older migrations have been removed because of incompatibility.'
|
18
18
|
end
|
19
19
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
class Require18Migrations < ActiveRecord::Migration
|
3
3
|
def self.up
|
4
|
-
|
4
|
+
raise %(
|
5
5
|
Your database is not ready to be migrated to #{Card::Version.release}.
|
6
6
|
Please first install version 1.8.0 and run `rake db:migrate`.
|
7
7
|
|
8
8
|
Sorry about this! We're working to minimize these hassles in the future.
|
9
|
-
|
9
|
+
)
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.down
|
13
|
-
|
13
|
+
raise 'Older migrations have been removed because of incompatibility.'
|
14
14
|
end
|
15
15
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
class Require110Migrations < ActiveRecord::Migration
|
3
3
|
def self.up
|
4
|
-
|
4
|
+
raise %(
|
5
5
|
Your database is not ready to be migrated to #{Card::Version.release}.
|
6
6
|
Please first install version 1.10.0 and run `rake db:migrate`.
|
7
7
|
|
8
8
|
Sorry about this! We're working to minimize these hassles in the future.
|
9
|
-
|
9
|
+
)
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.down
|
13
|
-
|
13
|
+
raise 'Older migrations have been removed because of incompatibility.'
|
14
14
|
end
|
15
15
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
class TableCleanup < ActiveRecord::Migration
|
3
|
-
def up
|
3
|
+
def up
|
4
4
|
drop_table :cardtypes
|
5
5
|
drop_table :multihost_mappings
|
6
6
|
drop_table :roles
|
7
7
|
drop_table :roles_users
|
8
|
-
|
8
|
+
|
9
9
|
remove_column :cards, :typecode
|
10
10
|
remove_column :cards, :extension_id
|
11
11
|
remove_column :cards, :extension_type
|
@@ -13,9 +13,9 @@ class TableCleanup < ActiveRecord::Migration
|
|
13
13
|
remove_column :cards, :updated_by
|
14
14
|
remove_column :cards, :indexed_name
|
15
15
|
remove_column :cards, :indexed_content
|
16
|
-
|
16
|
+
|
17
17
|
remove_column :card_revisions, :created_by
|
18
|
-
|
18
|
+
|
19
19
|
remove_column :card_references, :created_at
|
20
20
|
remove_column :card_references, :updated_at
|
21
21
|
end
|
@@ -2,13 +2,13 @@
|
|
2
2
|
class UpdateCodenames < ActiveRecord::Migration
|
3
3
|
def up
|
4
4
|
{ content: :structure, edit_help: :help }.each do |oldname, newname|
|
5
|
-
execute %
|
5
|
+
execute %(update cards set codename = "#{newname}" where codename = "#{oldname}";)
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
9
9
|
def down
|
10
10
|
{ content: :structure, edit_help: :help }.each do |oldname, newname|
|
11
|
-
execute %
|
11
|
+
execute %(update cards set codename = "#{oldname}" where codename = "#{newname}";)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -3,7 +3,7 @@ class MoveRevisionsToActions < ActiveRecord::Migration
|
|
3
3
|
belongs_to :tmp_card, foreign_key: :card_id
|
4
4
|
self.table_name = 'card_revisions'
|
5
5
|
def self.delete_cardless
|
6
|
-
TmpRevision.where(
|
6
|
+
TmpRevision.where(TmpCard.where(id: arel_table[:card_id]).exists.not).delete_all
|
7
7
|
end
|
8
8
|
end
|
9
9
|
class TmpAct < ActiveRecord::Base
|
@@ -28,7 +28,7 @@ class MoveRevisionsToActions < ActiveRecord::Migration
|
|
28
28
|
created = Set.new
|
29
29
|
|
30
30
|
TmpRevision.find_each do |rev|
|
31
|
-
TmpAct.create({id: rev.id, card_id: rev.card_id, actor_id: rev.creator_id, acted_at: rev.created_at}, without_protection: true)
|
31
|
+
TmpAct.create({ id: rev.id, card_id: rev.card_id, actor_id: rev.creator_id, acted_at: rev.created_at }, without_protection: true)
|
32
32
|
if created.include? rev.card_id
|
33
33
|
TmpAction.connection.execute "INSERT INTO card_actions (id, card_id, card_act_id, action_type) VALUES
|
34
34
|
('#{rev.id}', '#{rev.card_id}', '#{rev.id}', 1)"
|
@@ -53,8 +53,8 @@ class MoveRevisionsToActions < ActiveRecord::Migration
|
|
53
53
|
card.update_column(:db_content, card.tmp_revision.content) if card.tmp_revision
|
54
54
|
end
|
55
55
|
|
56
|
-
#drop_table :card_revisions
|
57
|
-
#remove_column :cards, :current_revision
|
56
|
+
# drop_table :card_revisions
|
57
|
+
# remove_column :cards, :current_revision
|
58
58
|
end
|
59
59
|
|
60
60
|
def down
|
@@ -3,8 +3,8 @@ class RenameCardMigrationTable < ActiveRecord::Migration
|
|
3
3
|
if ActiveRecord::Base.connection.table_exists? :schema_migrations_cards
|
4
4
|
rename_table :schema_migrations_cards, :schema_migrations_core_cards
|
5
5
|
else
|
6
|
-
create_table
|
7
|
-
t.string
|
6
|
+
create_table 'schema_migrations_core_cards', id: false, force: true do |t|
|
7
|
+
t.string 'version', null: false
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
class RemovePresentFromReferenceTable < ActiveRecord::Migration
|
2
2
|
def up
|
3
|
-
#remove_column :card_references, :present
|
3
|
+
# remove_column :card_references, :present
|
4
4
|
end
|
5
5
|
|
6
6
|
def down
|
7
|
-
#add_column :card_references, :present, :integer
|
7
|
+
# add_column :card_references, :present, :integer
|
8
8
|
end
|
9
9
|
end
|
@@ -2,21 +2,21 @@ class BetterIndexNames < ActiveRecord::Migration
|
|
2
2
|
def up
|
3
3
|
rename_index :card_acts, 'actor_id_index', 'card_acts_actor_id_index'
|
4
4
|
rename_index :card_acts, 'card_id_index', 'card_acts_card_id_index'
|
5
|
-
|
6
|
-
rename_index :card_actions, 'card_act_id_index', 'card_actions_card_act_id_index'
|
5
|
+
|
6
|
+
rename_index :card_actions, 'card_act_id_index', 'card_actions_card_act_id_index'
|
7
7
|
rename_index :card_actions, 'card_id_index', 'card_actions_card_id_index'
|
8
|
-
|
8
|
+
|
9
9
|
rename_index :card_changes, 'card_action_id_index', 'card_changes_card_action_id_index'
|
10
10
|
|
11
11
|
rename_index :card_references, 'wiki_references_referenced_card_id', 'card_references_referee_id_index'
|
12
12
|
rename_index :card_references, 'wiki_references_referenced_name', 'card_references_referee_key_index'
|
13
13
|
rename_index :card_references, 'wiki_references_card_id', 'card_references_referer_id_index'
|
14
|
-
|
15
|
-
rename_index :cards,
|
16
|
-
rename_index :cards,
|
17
|
-
rename_index :cards,
|
18
|
-
rename_index :cards,
|
19
|
-
rename_index :cards,
|
14
|
+
|
15
|
+
rename_index :cards, 'cards_key_uniq', 'cards_key_index'
|
16
|
+
rename_index :cards, 'card_type_index', 'cards_type_id_index'
|
17
|
+
rename_index :cards, 'index_cards_on_trunk_id', 'cards_left_id_index'
|
18
|
+
rename_index :cards, 'index_cards_on_tag_id', 'cards_right_id_index'
|
19
|
+
rename_index :cards, 'index_cards_on_read_rule_id', 'cards_read_rule_id_index'
|
20
20
|
end
|
21
21
|
|
22
22
|
def down
|
@@ -1,23 +1,24 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
class RailsInflectionUpdates < Card::CoreMigration
|
3
3
|
def word ar
|
4
|
-
|
4
|
+
[/(?<=\W|_|^)#{ar[0]}(?=\W|_|$)/i, /(?<=\W|_|^)#{ar[1]}(?=\W|_|$)/i, ar[2]]
|
5
5
|
end
|
6
|
+
|
6
7
|
def word_end ar
|
7
|
-
|
8
|
+
[/#{ar[0]}(?=\W|_|$)/i, /#{ar[1]}(?=\W|_|$)/i, ar[2]]
|
8
9
|
end
|
9
10
|
|
10
11
|
def keep_the_s word
|
11
|
-
|
12
|
+
["#{word}s", word, "#{word}s"]
|
12
13
|
end
|
13
14
|
|
14
15
|
def unless_name_collision card
|
15
|
-
if (twin = Card.find_by_key(card.cardname.key)
|
16
|
+
if (twin = Card.find_by_key(card.cardname.key)) && twin.id != card.id
|
16
17
|
if twin.trash
|
17
18
|
twin.destroy
|
18
19
|
yield
|
19
20
|
elsif !card.trash
|
20
|
-
raise Card::Oops.new("Your deck has two different cards with names '#{card.name}' and '#{twin.name}'. After this update it's no longer possible to differentiate between those two names. Please rename or delete one of the two cards and run the update again."
|
21
|
+
raise Card::Oops.new("Your deck has two different cards with names '#{card.name}' and '#{twin.name}'. After this update it's no longer possible to differentiate between those two names. Please rename or delete one of the two cards and run the update again.")
|
21
22
|
end
|
22
23
|
else
|
23
24
|
yield
|
@@ -27,44 +28,42 @@ class RailsInflectionUpdates < Card::CoreMigration
|
|
27
28
|
def up
|
28
29
|
card_names = Card.pluck(:name)
|
29
30
|
apply_to_content = ::Set.new
|
30
|
-
corrections =
|
31
|
-
|
32
|
-
word([
|
33
|
-
word([
|
34
|
-
word_end(
|
35
|
-
word(
|
36
|
-
word(
|
31
|
+
corrections = [
|
32
|
+
# plural, wrong singular, correct singular
|
33
|
+
word(['(\w+)lice', '(\w+)louse', '\1lice']),
|
34
|
+
word(['(\w+)mice', '(\w+)mouse', '\1mice']),
|
35
|
+
word_end(%w(kine cow kine)),
|
36
|
+
word(keep_the_s('analysi')),
|
37
|
+
word(keep_the_s('axi'))
|
37
38
|
]
|
38
39
|
%w( statu crisi alia bu octopu viru analysi basi diagnosi parenthesi prognosi synopsi thesi ).each do |word|
|
39
|
-
corrections << word_end(
|
40
|
+
corrections << word_end(keep_the_s(word))
|
40
41
|
end
|
41
42
|
|
42
|
-
|
43
43
|
corrections.each_with_index do |cors, i|
|
44
44
|
plural, wrong_sing, correct_sing = cors
|
45
45
|
|
46
46
|
card_names.reject! do |name| # change a name only once
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
47
|
+
next unless name =~ plural
|
48
|
+
# can't use fetch, because it uses the wrong key
|
49
|
+
# find_by_name is case-insensitve and finds the wrong cards for camel case names
|
50
|
+
card = Card.where(name: name).find { |card| card.name == name }
|
51
51
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
end
|
52
|
+
unless_name_collision(card) do
|
53
|
+
apply_to_content << i
|
54
|
+
new_key = name.to_name.key
|
55
|
+
if card.key == new_key
|
56
|
+
# noop. probably means this was already migrated?
|
57
|
+
elsif Card.find_by_key new_key
|
58
|
+
puts "Could not update #{name}. Key '#{new_key}' already exists."
|
59
|
+
else
|
60
|
+
card.update_attributes! key: new_key
|
62
61
|
end
|
63
62
|
end
|
64
63
|
end
|
65
64
|
end
|
66
65
|
|
67
|
-
cards_with_css = Card.search type:
|
66
|
+
cards_with_css = Card.search type: %w(in html css scss)
|
68
67
|
cards_with_css.each do |card|
|
69
68
|
new_content = card.content
|
70
69
|
content_changed = false
|
@@ -76,9 +75,7 @@ class RailsInflectionUpdates < Card::CoreMigration
|
|
76
75
|
new_content = new_content.gsub(wrong_sing, correct_sing)
|
77
76
|
end
|
78
77
|
end
|
79
|
-
if content_changed
|
80
|
-
card.update_attributes! content: new_content
|
81
|
-
end
|
78
|
+
card.update_attributes! content: new_content if content_changed
|
82
79
|
end
|
83
80
|
end
|
84
81
|
end
|
@@ -11,7 +11,7 @@ class RenamingForMenu < Card::CoreMigration
|
|
11
11
|
'*includers' => '*included by',
|
12
12
|
'*plus cards' => '*children',
|
13
13
|
'*plus parts' => '*mates',
|
14
|
-
'*editing' => '*edited'
|
14
|
+
'*editing' => '*edited'
|
15
15
|
}
|
16
16
|
renames.each do |oldname, newname|
|
17
17
|
puts "updating: #{oldname}"
|
@@ -21,7 +21,7 @@ class RenamingForMenu < Card::CoreMigration
|
|
21
21
|
c.save!
|
22
22
|
end
|
23
23
|
|
24
|
-
codenames = %w
|
24
|
+
codenames = %w(
|
25
25
|
by_name
|
26
26
|
by_update
|
27
27
|
by_create
|
@@ -37,7 +37,7 @@ class RenamingForMenu < Card::CoreMigration
|
|
37
37
|
discussion
|
38
38
|
created
|
39
39
|
edited
|
40
|
-
|
40
|
+
)
|
41
41
|
codenames.each do |codename|
|
42
42
|
name = codename =~ /^by|disc/ ? codename : '*' + codename
|
43
43
|
c = Card[name]
|
@@ -45,5 +45,4 @@ class RenamingForMenu < Card::CoreMigration
|
|
45
45
|
c.save!
|
46
46
|
end
|
47
47
|
end
|
48
|
-
|
49
48
|
end
|