card 1.16.6 → 1.16.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardoc/checksums +234 -49
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/VERSION +1 -1
- data/config/initializers/mime_types.rb +3 -3
- data/config/initializers/notification.rb +1 -1
- data/db/migrate/20121118115000_update_link_type.rb +8 -8
- data/db/migrate/20130411210957_update_codenames.rb +2 -2
- data/db/migrate/20140822073704_create_new_revision_tables.rb +12 -13
- data/db/migrate/20141001105348_move_revisions_to_actions.rb +16 -16
- data/db/migrate/20141121172918_rename_card_migration_table.rb +4 -4
- data/db/migrate_core_cards/20130419215612_import_help_text.rb +3 -3
- data/db/migrate_core_cards/20130823192433_add_style_cards.rb +45 -47
- data/db/migrate_core_cards/20130910183318_move_styles_to_content.rb +1 -1
- data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +3 -3
- data/db/migrate_core_cards/20130920291703_update_stylesheets.rb +3 -3
- data/db/migrate_core_cards/20130927191728_account_events.rb +6 -6
- data/db/migrate_core_cards/20131016172445_common_css_patch.rb +1 -1
- data/db/migrate_core_cards/20140110193325_reset_account_request_type.rb +1 -1
- data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +19 -19
- data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +11 -12
- data/db/migrate_core_cards/20140512155840_add_script_cards.rb +35 -36
- data/db/migrate_core_cards/20140629222005_add_email_cards.rb +55 -55
- data/db/migrate_core_cards/20140725180118_config_card_updates.rb +1 -1
- data/db/migrate_core_cards/20141111083921_delete_machine_output.rb +2 -2
- data/db/migrate_core_cards/20141115034214_config_descriptions_etc.rb +3 -3
- data/db/migrate_core_cards/20141120120605_fix_notification_html_message.rb +2 -2
- data/db/migrate_core_cards/20141204061304_watchers_to_following.rb +8 -8
- data/db/migrate_core_cards/20141208162106_add_ace_script.rb +2 -2
- data/db/migrate_core_cards/20141216155251_add_more_following_cards.rb +16 -16
- data/db/migrate_core_cards/20141230204340_uri_codename.rb +1 -1
- data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +19 -19
- data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +3 -3
- data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +15 -15
- data/db/migrate_core_cards/20150326205655_bootswatch_themes.rb +11 -11
- data/db/migrate_core_cards/20150331135745_new_card_menu.rb +1 -1
- data/db/migrate_core_cards/20150429090551_search_card_context.rb +1 -1
- data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +3 -3
- data/db/migrate_core_cards/20150510031118_fix_skin_images.rb +1 -1
- data/db/migrate_core_cards/20150528084659_add_session_cardtype.rb +4 -4
- data/db/migrate_core_cards/20150601133433_add_recent_setting_session_card.rb +5 -5
- data/db/migrate_core_cards/20150605115802_add_performance_log_card.rb +1 -1
- data/db/migrate_core_cards/20150610171702_add_debugger_session_card.rb +2 -2
- data/db/migrate_core_cards/20150611203506_rails_inflection_updates.rb +5 -5
- data/db/migrate_core_cards/20150627205133_fix_script_bootstrap_card_type.rb +1 -1
- data/db/migrate_core_cards/20150702130543_remove_edit_toolbar_pinned.rb +1 -1
- data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +5 -5
- data/db/migrate_core_cards/20150807205221_create_references_for_search_cards.rb +1 -1
- data/db/migrate_core_cards/20150824135418_update_file_history.rb +3 -3
- data/db/migrate_core_cards/20150903130006_attachment_upload_cards.rb +2 -2
- data/db/migrate_core_cards/20150910085603_remove_performance_log_card.rb +1 -1
- data/lib/card.rb +4 -4
- data/lib/card/active_record_ext.rb +8 -8
- data/lib/card/auth.rb +6 -6
- data/lib/card/cache.rb +1 -1
- data/lib/card/chunk.rb +1 -1
- data/lib/card/content.rb +1 -1
- data/lib/card/diff.rb +10 -10
- data/lib/card/env.rb +1 -1
- data/lib/card/format.rb +12 -12
- data/lib/card/loader.rb +1 -1
- data/lib/card/migration.rb +1 -1
- data/lib/card/name.rb +4 -4
- data/lib/card/query.rb +255 -61
- data/lib/card/query/attributes.rb +310 -0
- data/lib/card/query/clause.rb +12 -15
- data/lib/card/query/join.rb +73 -0
- data/lib/card/query/reference.rb +51 -0
- data/lib/card/query/sql_statement.rb +228 -0
- data/lib/card/query/value.rb +66 -0
- data/lib/card/reference.rb +6 -6
- data/lib/card/set.rb +12 -12
- data/lib/card/set_pattern.rb +9 -9
- data/lib/card/spec_helper.rb +5 -5
- data/lib/card/success.rb +1 -1
- data/lib/cardio.rb +7 -7
- data/lib/generators/card/format/format_generator.rb +3 -3
- data/lib/generators/card/migration/migration_generator.rb +5 -5
- data/lib/generators/card/set/set_generator.rb +4 -4
- data/mod/01_core/chunk/include.rb +4 -4
- data/mod/01_core/chunk/link.rb +5 -5
- data/mod/01_core/chunk/literal.rb +2 -2
- data/mod/01_core/chunk/query_reference.rb +8 -8
- data/mod/01_core/chunk/uri.rb +18 -18
- data/mod/01_core/format/html_format.rb +4 -4
- data/mod/01_core/set/all/active_card.rb +2 -2
- data/mod/01_core/set/all/collection.rb +21 -26
- data/mod/01_core/set/all/content.rb +2 -2
- data/mod/01_core/set/all/fetch.rb +6 -6
- data/mod/01_core/set/all/initialize.rb +4 -4
- data/mod/01_core/set/all/location_history.rb +2 -2
- data/mod/01_core/set/all/name.rb +14 -14
- data/mod/01_core/set/all/pattern.rb +1 -1
- data/mod/01_core/set/all/permissions.rb +12 -12
- data/mod/01_core/set/all/phases.rb +29 -12
- data/mod/01_core/set/all/references.rb +14 -14
- data/mod/01_core/set/all/rules.rb +8 -8
- data/mod/01_core/set/all/templating.rb +10 -9
- data/mod/01_core/set/all/tracked_attributes.rb +7 -7
- data/mod/01_core/set/all/trash.rb +6 -6
- data/mod/01_core/set/all/type.rb +7 -7
- data/mod/01_core/set/all/utils.rb +4 -4
- data/mod/01_core/set/all/view_cache.rb +1 -1
- data/mod/01_core/set_pattern/02_all_plus.rb +2 -2
- data/mod/01_core/set_pattern/03_type.rb +1 -1
- data/mod/01_core/set_pattern/04_star.rb +1 -1
- data/mod/01_core/set_pattern/05_rstar.rb +2 -2
- data/mod/01_core/set_pattern/06_right.rb +4 -4
- data/mod/01_core/set_pattern/07_type_plus_right.rb +4 -4
- data/mod/01_core/set_pattern/08_self.rb +1 -1
- data/mod/01_core/spec/chunk/uri_spec.rb +73 -73
- data/mod/01_core/spec/format/html_format_spec.rb +5 -5
- data/mod/01_core/spec/set/all/attribute_tracking_spec.rb +1 -1
- data/mod/01_core/spec/set/all/collection_spec.rb +22 -22
- data/mod/01_core/spec/set/all/content_spec.rb +1 -1
- data/mod/01_core/spec/set/all/fetch_spec.rb +24 -24
- data/mod/01_core/spec/set/all/initialize_spec.rb +9 -9
- data/mod/01_core/spec/set/all/name_spec.rb +8 -8
- data/mod/01_core/spec/set/all/pattern_spec.rb +10 -10
- data/mod/01_core/spec/set/all/permissions_spec.rb +45 -45
- data/mod/01_core/spec/set/all/references_spec.rb +1 -1
- data/mod/01_core/spec/set/all/rules2_spec.rb +15 -15
- data/mod/01_core/spec/set/all/rules_spec.rb +37 -37
- data/mod/01_core/spec/set/all/templating_spec.rb +21 -21
- data/mod/01_core/spec/set/all/tracked_attributes_spec.rb +55 -55
- data/mod/01_core/spec/set/all/trash_spec.rb +4 -4
- data/mod/01_core/spec/set/all/type_spec.rb +15 -15
- data/mod/01_history/lib/card/act.rb +2 -2
- data/mod/01_history/lib/card/action.rb +22 -22
- data/mod/01_history/lib/card/change.rb +1 -1
- data/mod/01_history/set/all/actions.rb +2 -2
- data/mod/01_history/set/all/content_history.rb +4 -4
- data/mod/01_history/set/all/history.rb +46 -46
- data/mod/02_basic_types/set/all/all_css.rb +10 -10
- data/mod/02_basic_types/set/all/all_csv.rb +7 -7
- data/mod/02_basic_types/set/all/base.rb +25 -25
- data/mod/02_basic_types/set/all/json.rb +16 -16
- data/mod/02_basic_types/set/all/rss.rb +7 -7
- data/mod/02_basic_types/set/type/html.rb +2 -2
- data/mod/02_basic_types/set/type/plain_text.rb +1 -1
- data/mod/02_basic_types/set/type/pointer.rb +39 -31
- data/mod/02_basic_types/spec/set/all/all_css_spec.rb +1 -1
- data/mod/02_basic_types/spec/set/all/all_csv_spec.rb +1 -1
- data/mod/02_basic_types/spec/set/all/base_spec.rb +18 -18
- data/mod/02_basic_types/spec/set/all/json_spec.rb +4 -4
- data/mod/02_basic_types/spec/set/all/rss_spec.rb +8 -2
- data/mod/02_basic_types/spec/set/type/plain_text_spec.rb +1 -1
- data/mod/02_basic_types/spec/set/type/pointer_spec.rb +54 -44
- data/mod/03_machines/lib/card/machine.rb +46 -29
- data/mod/03_machines/lib/card/machine_input.rb +34 -10
- data/mod/03_machines/set/type/coffee_script.rb +3 -3
- data/mod/03_machines/set/type/css.rb +8 -8
- data/mod/03_machines/set/type/java_script.rb +4 -4
- data/mod/03_machines/set/type/scss.rb +2 -2
- data/mod/03_machines/set/type/skin.rb +1 -1
- data/mod/03_machines/spec/lib/shared_machine_examples.rb +27 -27
- data/mod/03_machines/spec/lib/shared_machine_input_examples.rb +8 -8
- data/mod/03_machines/spec/set/type/coffeescript_spec.rb +6 -6
- data/mod/03_machines/spec/set/type/css_spec.rb +9 -9
- data/mod/03_machines/spec/set/type/javascript_spec.rb +6 -6
- data/mod/03_machines/spec/set/type/scss_spec.rb +5 -5
- data/mod/03_machines/spec/set/type/skin_spec.rb +25 -25
- data/mod/04_settings/lib/card/setting.rb +11 -11
- data/mod/04_settings/set/abstract/permission.rb +9 -9
- data/mod/04_settings/set/right/script.rb +1 -1
- data/mod/04_settings/set/right/structure.rb +0 -5
- data/mod/04_settings/set/right/style.rb +2 -2
- data/mod/04_settings/set/self/accountable.rb +1 -1
- data/mod/04_settings/set/self/add_help.rb +1 -1
- data/mod/04_settings/set/self/autoname.rb +1 -1
- data/mod/04_settings/set/self/captcha.rb +1 -1
- data/mod/04_settings/set/self/create.rb +1 -1
- data/mod/04_settings/set/self/default.rb +1 -1
- data/mod/04_settings/set/self/delete.rb +1 -1
- data/mod/04_settings/set/self/help.rb +1 -1
- data/mod/04_settings/set/self/input.rb +1 -1
- data/mod/04_settings/set/self/layout.rb +1 -1
- data/mod/04_settings/set/self/on_create.rb +1 -1
- data/mod/04_settings/set/self/on_delete.rb +1 -1
- data/mod/04_settings/set/self/on_update.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/self/read.rb +1 -1
- data/mod/04_settings/set/self/script.rb +1 -1
- data/mod/04_settings/set/self/structure.rb +1 -1
- data/mod/04_settings/set/self/style.rb +1 -1
- data/mod/04_settings/set/self/table_of_contents.rb +1 -1
- data/mod/04_settings/set/self/thanks.rb +1 -1
- data/mod/04_settings/set/self/update.rb +1 -1
- data/mod/04_settings/set/type/setting.rb +14 -14
- data/mod/04_settings/spec/set/right/comment_spec.rb +5 -5
- data/mod/04_settings/spec/set/right/create_spec.rb +1 -1
- data/mod/04_settings/spec/set/right/script_spec.rb +5 -5
- data/mod/04_settings/spec/set/right/structure_spec.rb +4 -2
- data/mod/04_settings/spec/set/right/style_spec.rb +7 -7
- data/mod/04_settings/spec/set/type/setting_spec.rb +2 -2
- data/mod/05_email/lib/card/follow_option.rb +24 -24
- data/mod/05_email/set/all/follow.rb +24 -16
- data/mod/05_email/set/all/notify.rb +25 -23
- data/mod/05_email/set/all/observer.rb +5 -5
- data/mod/05_email/set/right/bcc.rb +8 -8
- data/mod/05_email/set/right/follow.rb +44 -17
- data/mod/05_email/set/right/follow_fields.rb +1 -1
- data/mod/05_email/set/right/following.rb +49 -40
- data/mod/05_email/set/self/always.rb +2 -2
- data/mod/05_email/set/self/created.rb +1 -1
- data/mod/05_email/set/self/edited.rb +4 -4
- data/mod/05_email/set/self/follow.rb +1 -1
- data/mod/05_email/set/self/follow_defaults.rb +9 -9
- data/mod/05_email/set/self/never.rb +1 -1
- data/mod/05_email/set/type/email_template.rb +9 -9
- data/mod/05_email/set/type_plus_right/user/follow.rb +16 -16
- data/mod/05_email/spec/set/all/follow_spec.rb +10 -10
- data/mod/05_email/spec/set/all/notify_spec.rb +82 -82
- data/mod/05_email/spec/set/all/observer_spec.rb +16 -16
- data/mod/05_email/spec/set/right/followers_spec.rb +6 -6
- data/mod/05_email/spec/set/self/follow_defaults_spec.rb +2 -2
- data/mod/05_standard/lib/carrier_wave/cardmount.rb +5 -5
- data/mod/05_standard/lib/image_uploader.rb +8 -8
- data/mod/05_standard/set/abstract/attachment.rb +18 -18
- data/mod/05_standard/set/all/account.rb +5 -5
- data/mod/05_standard/set/all/comment.rb +7 -7
- data/mod/05_standard/set/all/error.rb +25 -25
- data/mod/05_standard/set/all/event_viz.rb +1 -1
- data/mod/05_standard/set/all/links.rb +9 -9
- data/mod/05_standard/set/all/rich_html/content.rb +34 -34
- data/mod/05_standard/set/all/rich_html/editing.rb +35 -35
- data/mod/05_standard/set/all/rich_html/form.rb +20 -20
- data/mod/05_standard/set/all/rich_html/header.rb +8 -8
- data/mod/05_standard/set/all/rich_html/menu.rb +33 -33
- data/mod/05_standard/set/all/rich_html/modal.rb +16 -16
- data/mod/05_standard/set/all/rich_html/toolbar.rb +63 -63
- data/mod/05_standard/set/all/rich_html/wrapper.rb +8 -8
- data/mod/05_standard/set/right/account.rb +27 -27
- data/mod/05_standard/set/right/email.rb +5 -5
- data/mod/05_standard/set/right/password.rb +5 -5
- data/mod/05_standard/set/rstar/rules.rb +52 -52
- data/mod/05_standard/set/self/account_links.rb +27 -27
- data/mod/05_standard/set/self/all.rb +1 -1
- data/mod/05_standard/set/self/head.rb +5 -5
- data/mod/05_standard/set/self/navbox.rb +11 -11
- data/mod/05_standard/set/self/recent.rb +2 -2
- data/mod/05_standard/set/self/search.rb +13 -13
- data/mod/05_standard/set/self/signin.rb +19 -19
- data/mod/05_standard/set/self/stats.rb +2 -2
- data/mod/05_standard/set/type/basic.rb +1 -1
- data/mod/05_standard/set/type/cardtype.rb +5 -5
- data/mod/05_standard/set/type/date.rb +1 -1
- data/mod/05_standard/set/type/file.rb +7 -7
- data/mod/05_standard/set/type/image.rb +8 -8
- data/mod/05_standard/set/type/number.rb +2 -2
- data/mod/05_standard/set/type/phrase.rb +1 -1
- data/mod/05_standard/set/type/search_type.rb +27 -21
- data/mod/05_standard/set/type/session.rb +2 -2
- data/mod/05_standard/set/type/set.rb +37 -37
- data/mod/05_standard/set/type/signup.rb +25 -25
- data/mod/05_standard/set/type/uri.rb +1 -1
- data/mod/05_standard/set/type/user.rb +21 -21
- data/mod/05_standard/spec/chunk/include_spec.rb +16 -16
- data/mod/05_standard/spec/chunk/link_spec.rb +18 -18
- data/mod/05_standard/spec/chunk/query_reference_spec.rb +1 -1
- data/mod/05_standard/spec/set/all/account_spec.rb +7 -7
- data/mod/05_standard/spec/set/all/email_html_spec.rb +3 -3
- data/mod/05_standard/spec/set/all/history_spec.rb +14 -14
- data/mod/05_standard/spec/set/all/rich_html/editing_spec.rb +1 -1
- data/mod/05_standard/spec/set/all/rich_html/form_spec.rb +2 -2
- data/mod/05_standard/spec/set/right/account_spec.rb +9 -9
- data/mod/05_standard/spec/set/right/email_spec.rb +8 -8
- data/mod/05_standard/spec/set/right/password_spec.rb +9 -9
- data/mod/05_standard/spec/set/right/stats_spec.rb +1 -1
- 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 +2 -2
- data/mod/05_standard/spec/set/self/account_links_spec.rb +2 -2
- data/mod/05_standard/spec/set/self/all_spec.rb +8 -11
- data/mod/05_standard/spec/set/self/head_spec.rb +1 -1
- data/mod/05_standard/spec/set/self/navbox_spec.rb +1 -1
- data/mod/05_standard/spec/set/self/now_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 +1 -1
- data/mod/05_standard/spec/set/type/email_template_spec.rb +25 -25
- data/mod/05_standard/spec/set/type/file_spec.rb +4 -4
- data/mod/05_standard/spec/set/type/html_spec.rb +3 -3
- data/mod/05_standard/spec/set/type/image_spec.rb +6 -6
- data/mod/05_standard/spec/set/type/layout_type_spec.rb +1 -1
- data/mod/05_standard/spec/set/type/search_type_spec.rb +10 -10
- data/mod/05_standard/spec/set/type/signup_spec.rb +11 -11
- data/mod/05_standard/spec/set/type/toggle_spec.rb +2 -2
- data/mod/05_standard/spec/set/type/uri_spec.rb +9 -9
- data/mod/06_bootstrap/set/all/bootstrap/helper.rb +10 -10
- data/mod/06_bootstrap/set/all/bootstrap/wrapper.rb +4 -4
- data/mod/06_bootstrap/set/all/rich_bootstrap.rb +1 -1
- data/spec/lib/card/action_spec.rb +2 -2
- data/spec/lib/card/cache_spec.rb +7 -7
- data/spec/lib/card/content_spec.rb +31 -37
- data/spec/lib/card/diff_spec.rb +56 -56
- data/spec/lib/card/format_spec.rb +11 -11
- data/spec/lib/card/query_spec.rb +382 -265
- data/spec/lib/card/reference_spec.rb +133 -140
- data/spec/lib/card/set_pattern_spec.rb +10 -9
- data/spec/lib/card/set_spec.rb +11 -11
- data/spec/lib/card/success_spec.rb +16 -8
- data/spec/mailers/mailer_spec.rb +5 -5
- data/spec/models/card/cardtype_spec.rb +20 -20
- data/spec/models/card/create_spec.rb +6 -6
- data/spec/models/card/trash_spec.rb +20 -20
- data/spec/models/card/type_transition_spec.rb +3 -3
- data/spec/models/card/validation_spec.rb +5 -5
- data/spec/models/card_spec.rb +24 -24
- data/spec/spec_helper.rb +5 -5
- data/tmpsets/set/mod001-01_core/all/active_card.rb +2 -2
- data/tmpsets/set/mod001-01_core/all/collection.rb +23 -26
- data/tmpsets/set/mod001-01_core/all/content.rb +2 -2
- data/tmpsets/set/mod001-01_core/all/fetch.rb +6 -6
- data/tmpsets/set/mod001-01_core/all/initialize.rb +8 -4
- data/tmpsets/set/mod001-01_core/all/name.rb +14 -14
- data/tmpsets/set/mod001-01_core/all/pattern.rb +1 -1
- data/tmpsets/set/mod001-01_core/all/permissions.rb +12 -12
- data/tmpsets/set/mod001-01_core/all/phases.rb +31 -13
- data/tmpsets/set/mod001-01_core/all/references.rb +14 -14
- data/tmpsets/set/mod001-01_core/all/rules.rb +8 -10
- data/tmpsets/set/mod001-01_core/all/templating.rb +10 -9
- data/tmpsets/set/mod001-01_core/all/tracked_attributes.rb +7 -7
- data/tmpsets/set/mod001-01_core/all/trash.rb +9 -8
- data/tmpsets/set/mod001-01_core/all/type.rb +7 -7
- data/tmpsets/set/mod001-01_core/all/utils.rb +16 -4
- data/tmpsets/set/mod001-01_core/all/view_cache.rb +1 -1
- data/tmpsets/set/mod002-01_history/all/actions.rb +2 -2
- data/tmpsets/set/mod002-01_history/all/content_history.rb +11 -7
- data/tmpsets/set/mod002-01_history/all/history.rb +46 -46
- data/tmpsets/set/mod003-02_basic_types/all/all_css.rb +10 -10
- data/tmpsets/set/mod003-02_basic_types/all/all_csv.rb +7 -7
- data/tmpsets/set/mod003-02_basic_types/all/base.rb +25 -25
- data/tmpsets/set/mod003-02_basic_types/all/json.rb +16 -16
- data/tmpsets/set/mod003-02_basic_types/all/rss.rb +7 -7
- data/tmpsets/set/mod003-02_basic_types/type/html.rb +2 -2
- data/tmpsets/set/mod003-02_basic_types/type/plain_text.rb +1 -1
- data/tmpsets/set/mod003-02_basic_types/type/pointer.rb +38 -31
- data/tmpsets/set/mod004-03_machines/right/machine_output.rb +4 -0
- data/tmpsets/set/mod004-03_machines/type/coffee_script.rb +3 -3
- data/tmpsets/set/mod004-03_machines/type/css.rb +8 -8
- data/tmpsets/set/mod004-03_machines/type/java_script.rb +4 -4
- data/tmpsets/set/mod004-03_machines/type/scss.rb +2 -2
- data/tmpsets/set/mod004-03_machines/type/skin.rb +1 -1
- data/tmpsets/set/mod005-04_settings/abstract/permission.rb +9 -9
- data/tmpsets/set/mod005-04_settings/right/script.rb +1 -1
- data/tmpsets/set/mod005-04_settings/right/structure.rb +0 -5
- data/tmpsets/set/mod005-04_settings/right/style.rb +2 -2
- data/tmpsets/set/mod005-04_settings/self/accountable.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/add_help.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/autoname.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/captcha.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/create.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/default.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/delete.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/help.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/input.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/layout.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/on_create.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/on_delete.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/on_update.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/options.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/options_label.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/read.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/script.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/structure.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/style.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/table_of_contents.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/thanks.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/update.rb +1 -1
- data/tmpsets/set/mod005-04_settings/type/setting.rb +14 -14
- data/tmpsets/set/mod006-05_email/all/follow.rb +24 -16
- data/tmpsets/set/mod006-05_email/all/notify.rb +25 -23
- data/tmpsets/set/mod006-05_email/all/observer.rb +8 -8
- data/tmpsets/set/mod006-05_email/right/bcc.rb +8 -8
- data/tmpsets/set/mod006-05_email/right/follow.rb +44 -17
- data/tmpsets/set/mod006-05_email/right/follow_fields.rb +1 -1
- data/tmpsets/set/mod006-05_email/right/following.rb +49 -40
- data/tmpsets/set/mod006-05_email/self/always.rb +2 -2
- data/tmpsets/set/mod006-05_email/self/created.rb +1 -1
- data/tmpsets/set/mod006-05_email/self/edited.rb +4 -4
- data/tmpsets/set/mod006-05_email/self/follow.rb +1 -1
- data/tmpsets/set/mod006-05_email/self/follow_defaults.rb +9 -9
- data/tmpsets/set/mod006-05_email/self/never.rb +1 -1
- data/tmpsets/set/mod006-05_email/type/email_template.rb +9 -9
- data/tmpsets/set/mod006-05_email/type_plus_right/user/follow.rb +17 -17
- data/tmpsets/set/mod007-05_standard/abstract/attachment.rb +98 -46
- data/tmpsets/set/mod007-05_standard/all/account.rb +5 -5
- data/tmpsets/set/mod007-05_standard/all/comment.rb +7 -7
- data/tmpsets/set/mod007-05_standard/all/error.rb +26 -26
- data/tmpsets/set/mod007-05_standard/all/event_viz.rb +1 -1
- data/tmpsets/set/mod007-05_standard/all/links.rb +10 -9
- data/tmpsets/set/mod007-05_standard/all/rich_html/content.rb +34 -34
- data/tmpsets/set/mod007-05_standard/all/rich_html/editing.rb +35 -35
- data/tmpsets/set/mod007-05_standard/all/rich_html/form.rb +20 -20
- data/tmpsets/set/mod007-05_standard/all/rich_html/header.rb +8 -8
- data/tmpsets/set/mod007-05_standard/all/rich_html/menu.rb +33 -33
- data/tmpsets/set/mod007-05_standard/all/rich_html/modal.rb +16 -16
- data/tmpsets/set/mod007-05_standard/all/rich_html/toolbar.rb +63 -63
- data/tmpsets/set/mod007-05_standard/all/rich_html/wrapper.rb +8 -8
- data/tmpsets/set/mod007-05_standard/right/account.rb +27 -27
- data/tmpsets/set/mod007-05_standard/right/email.rb +5 -5
- data/tmpsets/set/mod007-05_standard/right/password.rb +5 -5
- data/tmpsets/set/mod007-05_standard/rstar/rules.rb +52 -52
- data/tmpsets/set/mod007-05_standard/self/account_links.rb +27 -27
- data/tmpsets/set/mod007-05_standard/self/all.rb +1 -1
- data/tmpsets/set/mod007-05_standard/self/head.rb +5 -5
- data/tmpsets/set/mod007-05_standard/self/navbox.rb +11 -11
- data/tmpsets/set/mod007-05_standard/self/recent.rb +2 -2
- data/tmpsets/set/mod007-05_standard/self/search.rb +13 -13
- data/tmpsets/set/mod007-05_standard/self/signin.rb +19 -19
- data/tmpsets/set/mod007-05_standard/self/stats.rb +2 -2
- data/tmpsets/set/mod007-05_standard/type/basic.rb +1 -1
- data/tmpsets/set/mod007-05_standard/type/cardtype.rb +5 -5
- data/tmpsets/set/mod007-05_standard/type/date.rb +1 -1
- data/tmpsets/set/mod007-05_standard/type/file.rb +23 -8
- data/tmpsets/set/mod007-05_standard/type/image.rb +10 -8
- data/tmpsets/set/mod007-05_standard/type/number.rb +2 -2
- data/tmpsets/set/mod007-05_standard/type/phrase.rb +1 -1
- data/tmpsets/set/mod007-05_standard/type/search_type.rb +21 -19
- data/tmpsets/set/mod007-05_standard/type/session.rb +2 -2
- data/tmpsets/set/mod007-05_standard/type/set.rb +37 -37
- data/tmpsets/set/mod007-05_standard/type/signup.rb +25 -25
- data/tmpsets/set/mod007-05_standard/type/uri.rb +1 -1
- data/tmpsets/set/mod007-05_standard/type/user.rb +21 -21
- data/tmpsets/set/mod008-06_bootstrap/all/bootstrap/helper.rb +10 -10
- data/tmpsets/set/mod008-06_bootstrap/all/bootstrap/wrapper.rb +4 -4
- data/tmpsets/set/mod008-06_bootstrap/all/rich_bootstrap.rb +1 -1
- data/tmpsets/set_pattern/101-all_plus.rb +2 -2
- data/tmpsets/set_pattern/102-type.rb +1 -1
- data/tmpsets/set_pattern/103-star.rb +1 -1
- data/tmpsets/set_pattern/104-rstar.rb +2 -2
- data/tmpsets/set_pattern/105-right.rb +4 -4
- data/tmpsets/set_pattern/106-type_plus_right.rb +4 -4
- data/tmpsets/set_pattern/107-self.rb +1 -1
- metadata +7 -5
- data/lib/card/query/card_clause.rb +0 -528
- data/lib/card/query/ref_clause.rb +0 -47
- data/lib/card/query/value_clause.rb +0 -65
@@ -24,19 +24,19 @@ ReadRuleSQL = %{
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def is_standard_rule?
|
27
|
-
(r = right( :
|
27
|
+
(r = right( skip_modules: true )) &&
|
28
28
|
r.type_id == Card::SettingID &&
|
29
|
-
(l = left( :
|
29
|
+
(l = left( skip_modules: true )) &&
|
30
30
|
l.type_id == Card::SetID
|
31
31
|
end
|
32
32
|
|
33
33
|
def is_user_rule?
|
34
34
|
cardname.parts.length > 2 &&
|
35
|
-
(r = right( :
|
35
|
+
(r = right( skip_modules: true )) &&
|
36
36
|
r.type_id == Card::SettingID &&
|
37
|
-
(set = self[0..-3, :
|
37
|
+
(set = self[0..-3, skip_modules: true]) &&
|
38
38
|
set.type_id == Card::SetID &&
|
39
|
-
(user = self[-2, :
|
39
|
+
(user = self[-2, skip_modules: true] ) &&
|
40
40
|
(user.type_id == Card::UserID || user.codename == 'all' )
|
41
41
|
end
|
42
42
|
|
@@ -78,7 +78,7 @@ def related_sets with_self = false
|
|
78
78
|
sets << ["#{name}+*self", Card::SelfSet.label( name) ] if with_self
|
79
79
|
sets << ["#{name}+*right", Card::RightSet.label(name) ] if known? && cardname.simple?
|
80
80
|
|
81
|
-
# Card.search(:
|
81
|
+
# Card.search(type: 'Set',left: {right: name},right: '*type plus right',return: 'name').each do |set_name|
|
82
82
|
# sets<< set_name
|
83
83
|
# end
|
84
84
|
sets
|
@@ -183,7 +183,7 @@ module ClassMethods
|
|
183
183
|
end
|
184
184
|
user_ids = user_ids_cache[key] || []
|
185
185
|
if user_ids.include? AllID # rule for all -> return all user ids
|
186
|
-
Card.where(:
|
186
|
+
Card.where(type_id: UserID).pluck(:id)
|
187
187
|
else
|
188
188
|
user_ids
|
189
189
|
end
|
@@ -191,7 +191,7 @@ module ClassMethods
|
|
191
191
|
end
|
192
192
|
|
193
193
|
def user_rule_cards user_name, setting_code
|
194
|
-
Card.search :
|
194
|
+
Card.search right: {codename: setting_code}, left: {left: {type_id: SetID}, right: user_name}
|
195
195
|
end
|
196
196
|
|
197
197
|
def rule_cache
|
@@ -15,7 +15,7 @@ def template
|
|
15
15
|
|
16
16
|
# NEW CARDS
|
17
17
|
if new_card?
|
18
|
-
default = rule_card :default, :
|
18
|
+
default = rule_card :default, skip_modules: true
|
19
19
|
|
20
20
|
dup_card = dup
|
21
21
|
dup_card.type_id = default ? default.type_id : Card.default_type_id
|
@@ -55,14 +55,14 @@ def virtual?
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def structure_rule_card
|
58
|
-
card = rule_card :structure, :
|
58
|
+
card = rule_card :structure, skip_modules: true
|
59
59
|
card && card.db_content.strip == '_self' ? nil : card
|
60
60
|
end
|
61
61
|
|
62
62
|
def structuree_names
|
63
63
|
if wql = structuree_spec
|
64
64
|
Auth.as_bot do
|
65
|
-
Card::Query.
|
65
|
+
Card::Query.run(wql.merge return: :name)
|
66
66
|
end
|
67
67
|
else
|
68
68
|
[]
|
@@ -75,7 +75,7 @@ end
|
|
75
75
|
# I'll leave the FIXME here until the need (and/or other solution) is well documented. -efm
|
76
76
|
|
77
77
|
def expire_structuree_references
|
78
|
-
update_structurees :
|
78
|
+
update_structurees references_expired: 1
|
79
79
|
end
|
80
80
|
|
81
81
|
def update_structurees args
|
@@ -84,8 +84,9 @@ def update_structurees args
|
|
84
84
|
# by a +*type plus right+*structure rule, the override would not be respected.
|
85
85
|
if query = structuree_spec
|
86
86
|
Auth.as_bot do
|
87
|
-
|
88
|
-
|
87
|
+
query[:return] = :id
|
88
|
+
Card::Query.run(query).each_slice(100) do |id_batch|
|
89
|
+
Card.where( id: id_batch ).update_all args
|
89
90
|
end
|
90
91
|
end
|
91
92
|
end
|
@@ -96,7 +97,7 @@ def assigns_type?
|
|
96
97
|
# for example, X+*type+*structure governs all cards of type X,
|
97
98
|
# but the content rule does not (in fact cannot) have the type X.
|
98
99
|
if is_structure?
|
99
|
-
if set_pattern = Card.fetch( cardname.trunk_name.tag_name, :
|
100
|
+
if set_pattern = Card.fetch( cardname.trunk_name.tag_name, skip_modules: true )
|
100
101
|
pattern_code = set_pattern.codename and
|
101
102
|
set_class = Card::SetPattern.find( pattern_code ) and
|
102
103
|
set_class.assigns_type
|
@@ -119,8 +120,8 @@ def structuree_spec
|
|
119
120
|
end
|
120
121
|
end
|
121
122
|
|
122
|
-
event :update_structurees_type, :
|
123
|
+
event :update_structurees_type, after: :store, changed: :type_id do
|
123
124
|
if assigns_type? # certain *structure templates
|
124
|
-
update_structurees :
|
125
|
+
update_structurees type_id: type_id
|
125
126
|
end
|
126
127
|
end
|
@@ -42,7 +42,7 @@ end
|
|
42
42
|
|
43
43
|
protected
|
44
44
|
|
45
|
-
event :set_content, :
|
45
|
+
event :set_content, before: :store, on: :save do
|
46
46
|
self.db_content = content || '' #necessary?
|
47
47
|
self.db_content = Card::Content.clean! self.db_content if clean_html?
|
48
48
|
@selected_action_id = @selected_content = nil
|
@@ -53,7 +53,7 @@ end
|
|
53
53
|
|
54
54
|
#fixme - the following don't really belong here, but they have to come after the reference stuff. we need to organize a bit!
|
55
55
|
|
56
|
-
event :update_ruled_cards, :
|
56
|
+
event :update_ruled_cards, after: :store do
|
57
57
|
if is_rule?
|
58
58
|
# warn "updating ruled cards for #{name}"
|
59
59
|
self.class.clear_rule_cache
|
@@ -76,7 +76,7 @@ event :update_ruled_cards, :after=>:store do
|
|
76
76
|
Auth.as_bot do
|
77
77
|
cur_index = rule_class_ids.index Card[read_rule_class].id
|
78
78
|
if rule_class_index = rule_class_ids.index( class_id )
|
79
|
-
set.item_cards(:
|
79
|
+
set.item_cards(limit: 0).each do |item_card|
|
80
80
|
in_set[item_card.key] = true
|
81
81
|
next if cur_index < rule_class_index
|
82
82
|
if cur_index >= rule_class_index
|
@@ -96,7 +96,7 @@ event :update_ruled_cards, :after=>:store do
|
|
96
96
|
|
97
97
|
#then find all cards with me as read_rule_id that were not just updated and regenerate their read_rules
|
98
98
|
if !new_record?
|
99
|
-
Card.where( :
|
99
|
+
Card.where( read_rule_id: self.id, trash: false ).reject do |w|
|
100
100
|
in_set[ w.key ]
|
101
101
|
end.each &:update_read_rule
|
102
102
|
end
|
@@ -105,14 +105,14 @@ event :update_ruled_cards, :after=>:store do
|
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
|
-
event :process_read_rule_update_queue, :
|
108
|
+
event :process_read_rule_update_queue, after: :store do
|
109
109
|
Array.wrap(@read_rule_update_queue).each { |card| card.update_read_rule }
|
110
110
|
@read_rule_update_queue = []
|
111
111
|
end
|
112
112
|
|
113
|
-
# set_callback :store, :after, :process_read_rule_update_queue, :
|
113
|
+
# set_callback :store, :after, :process_read_rule_update_queue, prepend: true
|
114
114
|
|
115
|
-
event :expire_related, :
|
115
|
+
event :expire_related, after: :store do
|
116
116
|
self.expire
|
117
117
|
|
118
118
|
if self.is_structure?
|
@@ -1,15 +1,15 @@
|
|
1
1
|
def delete
|
2
|
-
update_attributes :
|
2
|
+
update_attributes trash: true unless new_card?
|
3
3
|
end
|
4
4
|
|
5
5
|
def delete!
|
6
|
-
update_attributes! :
|
6
|
+
update_attributes! trash: true unless new_card?
|
7
7
|
end
|
8
8
|
|
9
9
|
|
10
|
-
event :pull_from_trash, :
|
10
|
+
event :pull_from_trash, before: :store, on: :create do
|
11
11
|
if trashed_card = Card.find_by_key_and_trash(key, true)
|
12
|
-
# a. (Rails way) tried Card.where(:
|
12
|
+
# a. (Rails way) tried Card.where(key: 'wagn_bot').select(:id), but it wouldn't work. This #select
|
13
13
|
# generally breaks on cards. I think our initialization process screws with something
|
14
14
|
# b. (Wagn way) we could get card directly from fetch if we add :include_trashed (eg).
|
15
15
|
# likely low ROI, but would be nice to have interface to retrieve cards from trash...
|
@@ -21,7 +21,7 @@ event :pull_from_trash, :before=>:store, :on=>:create do
|
|
21
21
|
true
|
22
22
|
end
|
23
23
|
|
24
|
-
event :validate_delete, :
|
24
|
+
event :validate_delete, before: :approve, on: :delete do
|
25
25
|
if !codename.blank?
|
26
26
|
errors.add :delete, "#{name} is is a system card. (#{codename})"
|
27
27
|
end
|
@@ -36,7 +36,7 @@ event :validate_delete, :before=>:approve, :on=>:delete do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
event :validate_delete_children, :
|
39
|
+
event :validate_delete_children, after: :approve, on: :delete do
|
40
40
|
children.each do |child|
|
41
41
|
child.supercard = self
|
42
42
|
subcards[child.name]=child
|
data/mod/01_core/set/all/type.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
|
2
2
|
module ClassMethods
|
3
3
|
def default_type_id
|
4
|
-
@@default_type_id ||= Card[:all].fetch( :
|
4
|
+
@@default_type_id ||= Card[:all].fetch( trait: :default ).type_id
|
5
5
|
end
|
6
6
|
end
|
7
7
|
|
8
8
|
def type_card
|
9
9
|
return if type_id.nil?
|
10
|
-
Card.fetch type_id.to_i, :
|
10
|
+
Card.fetch type_id.to_i, skip_modules: true
|
11
11
|
end
|
12
12
|
|
13
13
|
def type_code
|
@@ -54,13 +54,13 @@ def get_type_id args={}
|
|
54
54
|
end
|
55
55
|
|
56
56
|
|
57
|
-
event :validate_type_change, :
|
57
|
+
event :validate_type_change, before: :approve, on: :update, changed: :type_id do
|
58
58
|
if c = dup and c.action == :create and !c.valid?
|
59
59
|
errors.add :type, "of #{ name } can't be changed; errors creating new #{ type_id }: #{ c.errors.full_messages * ', ' }"
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
event :validate_type, :
|
63
|
+
event :validate_type, before: :approve, changed: :type_id do
|
64
64
|
if !type_name
|
65
65
|
errors.add :type, "No such type"
|
66
66
|
end
|
@@ -70,15 +70,15 @@ event :validate_type, :before=>:approve, :changed=>:type_id do
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
-
event :reset_type_specific_fields, :
|
73
|
+
event :reset_type_specific_fields, after: :store do
|
74
74
|
Auth.as_bot do
|
75
|
-
Card.search :
|
75
|
+
Card.search left: { left_id: type_id }, right: {codename: 'type_plus_right'} do |set_card|
|
76
76
|
set_card.reset_set_patterns
|
77
77
|
end
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
-
# Card.search :
|
81
|
+
# Card.search left_plus: [ type_name, right_plus: {codename: 'type_plus_right'}] do |right_anchor|
|
82
82
|
# Card["#{lef}"]
|
83
83
|
# set_card.reset_set_patterns
|
84
84
|
# end
|
@@ -3,7 +3,7 @@ module ClassMethods
|
|
3
3
|
|
4
4
|
def empty_trash
|
5
5
|
Card.delete_trashed_files
|
6
|
-
Card.where(:
|
6
|
+
Card.where(trash: true).delete_all
|
7
7
|
Card::Action.delete_cardless
|
8
8
|
Card::Reference.repair_missing_referees
|
9
9
|
Card::Reference.delete_missing_referers
|
@@ -18,7 +18,7 @@ module ClassMethods
|
|
18
18
|
file_ids.each do |file_id|
|
19
19
|
if trashed_card_ids.member?(file_id)
|
20
20
|
raise Card::Error, "Narrowly averted deleting current file" if Card.exists?(file_id) #double check!
|
21
|
-
FileUtils.rm_rf "#{dir}/#{file_id}", :
|
21
|
+
FileUtils.rm_rf "#{dir}/#{file_id}", secure: true
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -64,7 +64,7 @@ module ClassMethods
|
|
64
64
|
|
65
65
|
def merge name, attribs={}, opts={}
|
66
66
|
puts "merging #{ name }"
|
67
|
-
card = fetch name, :
|
67
|
+
card = fetch name, new: {}
|
68
68
|
|
69
69
|
if opts[:pristine] && !card.pristine?
|
70
70
|
false
|
@@ -134,7 +134,7 @@ format :html do
|
|
134
134
|
accordions << accordion(title, content, "#{collapse_id}-#{index}")
|
135
135
|
index += 1
|
136
136
|
end
|
137
|
-
content_tag :div, accordions.html_safe, :
|
137
|
+
content_tag :div, accordions.html_safe, class: "panel-group", id: "accordion-#{collapse_id}", role: "tablist", 'aria-multiselectable'=>"true"
|
138
138
|
end
|
139
139
|
|
140
140
|
def accordion title, content, collapse_id=card.cardname.safe_key
|
@@ -1,6 +1,6 @@
|
|
1
|
-
@@options = {
|
2
|
-
:
|
3
|
-
:
|
1
|
+
@@options = {
|
2
|
+
junction_only: true,
|
3
|
+
assigns_type: true
|
4
4
|
}
|
5
5
|
|
6
6
|
def label name
|
@@ -8,7 +8,7 @@ def label name
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def prototype_args anchor
|
11
|
-
{ :
|
11
|
+
{ name: "*dummy+#{anchor}" }
|
12
12
|
end
|
13
13
|
|
14
14
|
def anchor_name card
|
@@ -1,7 +1,7 @@
|
|
1
1
|
@@options = {
|
2
|
-
:
|
3
|
-
:
|
4
|
-
:
|
2
|
+
junction_only: true,
|
3
|
+
assigns_type: true,
|
4
|
+
anchor_parts_count: 2
|
5
5
|
}
|
6
6
|
|
7
7
|
def label name
|
@@ -9,7 +9,7 @@ def label name
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def prototype_args anchor
|
12
|
-
{ :
|
12
|
+
{ name: "+#{anchor.tag}", supercard: Card.new( name: '*dummy', type: anchor.trunk_name ) }
|
13
13
|
end
|
14
14
|
|
15
15
|
def anchor_name card
|
@@ -10,128 +10,128 @@ describe Card::Chunk::URI, "URI chunk tests" do
|
|
10
10
|
it "should test_simple_uri" do
|
11
11
|
# Simplest case
|
12
12
|
match_chunk(Card::Chunk::URI, 'http://www.example.com',
|
13
|
-
:
|
14
|
-
:
|
13
|
+
scheme: 'http', host: 'www.example.com', path: '',
|
14
|
+
link_text: 'http://www.example.com'
|
15
15
|
)
|
16
16
|
end
|
17
17
|
it "should work with trailing slash" do
|
18
18
|
match_chunk(Card::Chunk::URI, 'http://www.example.com/',
|
19
|
-
:
|
20
|
-
:
|
19
|
+
scheme: 'http', host: 'www.example.com', path: '/',
|
20
|
+
link_text: 'http://www.example.com/'
|
21
21
|
)
|
22
22
|
end
|
23
23
|
it "should work with trailing slash inside html tags" do
|
24
24
|
match_chunk(Card::Chunk::URI, '<p>http://www.example.com/</p>',
|
25
|
-
:
|
26
|
-
:
|
25
|
+
scheme: 'http', host: 'www.example.com', path: '/',
|
26
|
+
link_text: 'http://www.example.com/'
|
27
27
|
)
|
28
28
|
end
|
29
29
|
it "should work with trailing period (no longer suppressed .. spec?)" do
|
30
30
|
match_chunk(Card::Chunk::URI, 'http://www.example.com/. ',
|
31
|
-
:
|
32
|
-
:
|
31
|
+
scheme: 'http', host: 'www.example.com', path: '/',
|
32
|
+
link_text: 'http://www.example.com/'
|
33
33
|
)
|
34
34
|
end
|
35
35
|
it "should work with trailing period inside html tags (dot change?)" do
|
36
36
|
match_chunk(Card::Chunk::URI, '<p>http://www.example.com/.</p>',
|
37
|
-
:
|
38
|
-
:
|
37
|
+
scheme: 'http', host: 'www.example.com', path: '/',
|
38
|
+
link_text: 'http://www.example.com/'
|
39
39
|
)
|
40
40
|
end
|
41
41
|
it "should work with trailing " do
|
42
42
|
match_chunk(Card::Chunk::URI, 'http://www.example.com/ ',
|
43
|
-
:
|
44
|
-
:
|
43
|
+
scheme: 'http', host: 'www.example.com', path: '/',
|
44
|
+
link_text: 'http://www.example.com/'
|
45
45
|
)
|
46
46
|
end
|
47
47
|
it "should work without http://" do
|
48
48
|
match_chunk(Card::Chunk::URI, 'www.example.com',
|
49
|
-
:
|
49
|
+
scheme: 'http', host: 'www.example.com', text: 'www.example.com', link_text: 'http://www.example.com'
|
50
50
|
)
|
51
51
|
match_chunk(Card::Chunk::URI, 'example.com',
|
52
|
-
:
|
52
|
+
scheme: 'http',host: 'example.com', text: 'example.com', link_text: 'http://example.com'
|
53
53
|
)
|
54
54
|
end
|
55
55
|
it "should match \"unusual\" base domain (was a bug in an early version)" do
|
56
56
|
match_chunk(Card::Chunk::URI, 'http://example.com.au/',
|
57
|
-
:
|
57
|
+
scheme: 'http', host: 'example.com.au', link_text: 'http://example.com.au/'
|
58
58
|
)
|
59
59
|
end
|
60
60
|
it 'should work with "unusual" base domain without http://' do
|
61
61
|
match_chunk(Card::Chunk::URI, 'example.com.au',
|
62
|
-
:
|
62
|
+
scheme: 'http', host: 'example.com.au', text: 'example.com.au', link_text: 'http://example.com.au'
|
63
63
|
)
|
64
64
|
end
|
65
65
|
it 'should work with another "unusual" base domain' do
|
66
66
|
match_chunk(Card::Chunk::URI, 'http://www.example.co.uk/',
|
67
|
-
:
|
68
|
-
:
|
67
|
+
scheme: 'http', host: 'www.example.co.uk',
|
68
|
+
link_text: 'http://www.example.co.uk/'
|
69
69
|
)
|
70
70
|
match_chunk(Card::Chunk::URI, 'example.co.uk',
|
71
|
-
:
|
71
|
+
scheme: 'http', host: 'example.co.uk', link_text: 'http://example.co.uk', text: 'example.co.uk'
|
72
72
|
)
|
73
73
|
end
|
74
74
|
it "should work with some path at the end" do
|
75
75
|
match_chunk(Card::Chunk::URI, 'http://moinmoin.wikiwikiweb.de/HelpOnNavigation',
|
76
|
-
:
|
77
|
-
:
|
76
|
+
scheme: 'http', host: 'moinmoin.wikiwikiweb.de', path: '/HelpOnNavigation',
|
77
|
+
link_text: 'http://moinmoin.wikiwikiweb.de/HelpOnNavigation'
|
78
78
|
)
|
79
79
|
end
|
80
80
|
it "should work with some path at the end, and withot http:// prefix (@link_text has prefix added)" do
|
81
81
|
match_chunk(Card::Chunk::URI, 'moinmoin.wikiwikiweb.de/HelpOnNavigation',
|
82
|
-
:
|
83
|
-
:
|
84
|
-
:
|
82
|
+
scheme: 'http', host: 'moinmoin.wikiwikiweb.de', path: '/HelpOnNavigation',
|
83
|
+
text: 'moinmoin.wikiwikiweb.de/HelpOnNavigation',
|
84
|
+
link_text: 'http://moinmoin.wikiwikiweb.de/HelpOnNavigation'
|
85
85
|
)
|
86
86
|
end
|
87
87
|
it "should work with a port number" do
|
88
88
|
match_chunk(Card::Chunk::URI, 'http://www.example.com:80',
|
89
|
-
:
|
90
|
-
:
|
89
|
+
scheme: 'http', host: 'www.example.com', port: 80, path: '',
|
90
|
+
link_text: 'http://www.example.com:80')
|
91
91
|
end
|
92
92
|
it "should work with a port number and a path" do
|
93
93
|
match_chunk(Card::Chunk::URI, 'http://www.example.com.tw:80/HelpOnNavigation',
|
94
|
-
:
|
95
|
-
:
|
94
|
+
scheme: 'http', host: 'www.example.com.tw', port: 80, path: '/HelpOnNavigation',
|
95
|
+
link_text: 'http://www.example.com.tw:80/HelpOnNavigation')
|
96
96
|
end
|
97
97
|
it "should work with a query" do
|
98
98
|
match_chunk(Card::Chunk::URI, 'http://www.example.com.tw:80/HelpOnNavigation?arg=val',
|
99
|
-
:
|
100
|
-
:
|
101
|
-
:
|
99
|
+
scheme: 'http', host: 'www.example.com.tw', port: 80, path: '/HelpOnNavigation',
|
100
|
+
query: 'arg=val',
|
101
|
+
link_text: 'http://www.example.com.tw:80/HelpOnNavigation?arg=val')
|
102
102
|
end
|
103
103
|
it "should work on Query with two arguments" do
|
104
104
|
match_chunk(Card::Chunk::URI, 'http://www.example.com.tw:80/HelpOnNavigation?arg=val&arg2=val2',
|
105
|
-
:
|
106
|
-
:
|
107
|
-
:
|
105
|
+
scheme: 'http', host: 'www.example.com.tw', port: 80, path: '/HelpOnNavigation',
|
106
|
+
query: 'arg=val&arg2=val2',
|
107
|
+
link_text: 'http://www.example.com.tw:80/HelpOnNavigation?arg=val&arg2=val2')
|
108
108
|
end
|
109
109
|
it "should work with IRC" do
|
110
110
|
match_chunk(Card::Chunk::URI, 'irc://irc.freenode.net#recentchangescamp',
|
111
|
-
:
|
112
|
-
:
|
113
|
-
:
|
111
|
+
scheme: 'irc', host: 'irc.freenode.net',
|
112
|
+
fragment: 'recentchangescamp',
|
113
|
+
link_text: 'irc://irc.freenode.net#recentchangescamp')
|
114
114
|
end
|
115
115
|
|
116
116
|
it "should see HTTPS" do
|
117
117
|
match_chunk(Card::Chunk::URI, 'https://www.example.com',
|
118
|
-
:
|
119
|
-
:
|
118
|
+
scheme: 'https', host: 'www.example.com', port: 443, path: '', query: nil,
|
119
|
+
link_text: 'https://www.example.com')
|
120
120
|
end
|
121
121
|
it "should see FTP" do
|
122
122
|
match_chunk(Card::Chunk::URI, 'ftp://www.example.com',
|
123
|
-
:
|
124
|
-
:
|
123
|
+
scheme: 'ftp', host: 'www.example.com', port: 21, path: '', query: nil,
|
124
|
+
link_text: 'ftp://www.example.com')
|
125
125
|
end
|
126
126
|
it "should handle mailto:" do
|
127
127
|
match_chunk(Card::Chunk::URI, 'mailto:jdoe123@example.com',
|
128
|
-
:
|
129
|
-
:
|
128
|
+
scheme: 'mailto', host: nil, port: nil, path: nil, query: nil,
|
129
|
+
to: 'jdoe123@example.com', link_text: 'mailto:jdoe123@example.com')
|
130
130
|
end
|
131
131
|
# something nonexistant (pending spec? this is no longer recognized, the sheme has to be listed)
|
132
132
|
#match_chunk(Card::Chunk::URI, 'foobar://www.example.com',
|
133
|
-
# :
|
134
|
-
# :
|
133
|
+
# scheme: 'foobar', host: 'www.example.com', port: '', path: '', query: nil,
|
134
|
+
# link_text: 'foobar://www.example.com')
|
135
135
|
|
136
136
|
it "should run more basic cases" do
|
137
137
|
|
@@ -141,30 +141,30 @@ describe Card::Chunk::URI, "URI chunk tests" do
|
|
141
141
|
|
142
142
|
# Soap opera (the most complex case imaginable... well, not really, there should be more evil)
|
143
143
|
match_chunk(Card::Chunk::URI, 'http://www.example.com.tw:80/~jdoe123/Help%20Me%20?arg=val&arg2=val2',
|
144
|
-
:
|
145
|
-
:
|
146
|
-
:
|
144
|
+
scheme: 'http', host: 'www.example.com.tw', port: 80,
|
145
|
+
path: '/~jdoe123/Help%20Me%20', query: 'arg=val&arg2=val2',
|
146
|
+
link_text: 'http://www.example.com.tw:80/~jdoe123/Help%20Me%20?arg=val&arg2=val2')
|
147
147
|
|
148
148
|
# from 0.9 bug reports
|
149
149
|
match_chunk(Card::Chunk::URI, 'http://www2.pos.to/~tosh/ruby/rdtool/en/doc/rd-draft.html',
|
150
|
-
:
|
151
|
-
:
|
150
|
+
scheme: 'http', host: 'www2.pos.to',
|
151
|
+
path: '/~tosh/ruby/rdtool/en/doc/rd-draft.html')
|
152
152
|
|
153
153
|
match_chunk(Card::Chunk::URI, 'http://support.microsoft.com/default.aspx?scid=kb;en-us;234562',
|
154
|
-
:
|
155
|
-
:
|
154
|
+
scheme: 'http', host: 'support.microsoft.com', path: '/default.aspx',
|
155
|
+
query: 'scid=kb;en-us;234562')
|
156
156
|
|
157
157
|
end
|
158
158
|
|
159
159
|
it "should test_email_uri" do
|
160
160
|
match_chunk(Card::Chunk::URI, 'mail@example.com',
|
161
|
-
:
|
161
|
+
to: 'mail@example.com', host: nil, text: 'mail@example.com', link_text: 'mailto:mail@example.com'
|
162
162
|
)
|
163
163
|
end
|
164
164
|
|
165
165
|
it "should test_non_email" do
|
166
166
|
# The @ is part of the normal text, but 'example.com' is marked up.
|
167
|
-
match_chunk(Card::Chunk::URI, 'Not an email: @example.com', :
|
167
|
+
match_chunk(Card::Chunk::URI, 'Not an email: @example.com', uri: 'http://example.com')
|
168
168
|
end
|
169
169
|
|
170
170
|
it "should test_textile_image" do
|
@@ -177,7 +177,7 @@ describe Card::Chunk::URI, "URI chunk tests" do
|
|
177
177
|
'This "hobix (hobix)":http://hobix.com/sample.jpg is a Textile link.')
|
178
178
|
# just to be sure ...
|
179
179
|
match_chunk(Card::Chunk::URI, 'This http://hobix.com/sample.jpg should match',
|
180
|
-
:
|
180
|
+
link_text: 'http://hobix.com/sample.jpg')
|
181
181
|
end
|
182
182
|
|
183
183
|
it "should test_inline_html" do
|
@@ -187,7 +187,7 @@ describe Card::Chunk::URI, "URI chunk tests" do
|
|
187
187
|
|
188
188
|
it "should test_non_uri" do
|
189
189
|
# "so" is a valid country code; "libproxy.so" is a valid url
|
190
|
-
match_chunk(Card::Chunk::URI, 'libproxy.so', :
|
190
|
+
match_chunk(Card::Chunk::URI, 'libproxy.so', host: 'libproxy.so', text: 'libproxy.so', link_text: 'http://libproxy.so')
|
191
191
|
|
192
192
|
no_match Card::Chunk::URI, 'httpd.conf'
|
193
193
|
# THIS ONE'S BUSTED.. Ethan fix??
|
@@ -202,23 +202,23 @@ describe Card::Chunk::URI, "URI chunk tests" do
|
|
202
202
|
end
|
203
203
|
|
204
204
|
it "should test_uri_in_text" do
|
205
|
-
match_chunk(Card::Chunk::URI, 'Go to: http://www.example.com/', :
|
206
|
-
match_chunk(Card::Chunk::URI, 'http://www.example.com/ is a link.', :
|
205
|
+
match_chunk(Card::Chunk::URI, 'Go to: http://www.example.com/', host: 'www.example.com', path: '/')
|
206
|
+
match_chunk(Card::Chunk::URI, 'http://www.example.com/ is a link.', host: 'www.example.com')
|
207
207
|
match_chunk(Card::Chunk::URI,
|
208
208
|
'Email david@loudthinking.com',
|
209
|
-
:
|
209
|
+
scheme: 'mailto', to: 'david@loudthinking.com', host: nil)
|
210
210
|
# check that trailing punctuation is not included in the hostname
|
211
|
-
match_chunk(Card::Chunk::URI, 'Hey dude, http://fake.link.com.', :
|
211
|
+
match_chunk(Card::Chunk::URI, 'Hey dude, http://fake.link.com.', scheme: 'http', host: 'fake.link.com')
|
212
212
|
# this is a textile link, no match please.
|
213
213
|
no_match(Card::Chunk::URI, '"link":http://fake.link.com.')
|
214
214
|
end
|
215
215
|
|
216
216
|
it "should test_uri_in_parentheses" do
|
217
|
-
match_chunk(Card::Chunk::URI, 'URI (http://brackets.com.de) in brackets', :
|
218
|
-
match_chunk(Card::Chunk::URI, 'because (as shown at research.net) the results', :
|
217
|
+
match_chunk(Card::Chunk::URI, 'URI (http://brackets.com.de) in brackets', host: 'brackets.com.de')
|
218
|
+
match_chunk(Card::Chunk::URI, 'because (as shown at research.net) the results', host: 'research.net')
|
219
219
|
match_chunk(Card::Chunk::URI,
|
220
220
|
'A wiki (http://wiki.org/wiki.cgi?WhatIsWiki) card',
|
221
|
-
:
|
221
|
+
scheme: 'http', host: 'wiki.org', path: '/wiki.cgi', query: 'WhatIsWiki'
|
222
222
|
)
|
223
223
|
end
|
224
224
|
|
@@ -226,7 +226,7 @@ describe Card::Chunk::URI, "URI chunk tests" do
|
|
226
226
|
match_chunk(
|
227
227
|
Card::Chunk::URI,
|
228
228
|
'* http://www.btinternet.com/~mail2minh/SonyEricssonP80xPlatform.sis',
|
229
|
-
:
|
229
|
+
path: '/~mail2minh/SonyEricssonP80xPlatform.sis'
|
230
230
|
)
|
231
231
|
end
|
232
232
|
|
@@ -238,31 +238,31 @@ describe Card::Chunk::URI, "URI chunk tests" do
|
|
238
238
|
match_chunk(
|
239
239
|
Card::Chunk::URI,
|
240
240
|
"This text contains a URL http://someplace.org:8080/~person/stuff.cgi?arg=val, doesn't it?",
|
241
|
-
:
|
242
|
-
:
|
241
|
+
scheme: 'http', host: 'someplace.org', port: 8080, path: '/~person/stuff.cgi',
|
242
|
+
query: 'arg=val')
|
243
243
|
end
|
244
244
|
|
245
245
|
describe Card::Chunk::URI, "URI chunk tests" do
|
246
246
|
it "should test_local_urls" do
|
247
247
|
# normal
|
248
248
|
match_chunk(Card::Chunk::URI, 'http://perforce:8001/toto.html',
|
249
|
-
:
|
250
|
-
:
|
249
|
+
scheme: 'http', host: 'perforce',
|
250
|
+
port: 8001, link_text: 'http://perforce:8001/toto.html')
|
251
251
|
|
252
252
|
# in parentheses
|
253
253
|
match_chunk(Card::Chunk::URI, 'URI (http://localhost:2500) in brackets',
|
254
|
-
:
|
254
|
+
host: 'localhost', port: 2500)
|
255
255
|
match_chunk(Card::Chunk::URI, 'because (as shown at http://perforce:8001) the results',
|
256
|
-
:
|
256
|
+
host: 'perforce', port: 8001)
|
257
257
|
match_chunk(Card::Chunk::URI,
|
258
258
|
'A wiki (http://localhost:2500/wiki.cgi?WhatIsWiki) card',
|
259
|
-
:
|
260
|
-
:
|
259
|
+
scheme: 'http', host: 'localhost', path: '/wiki.cgi',
|
260
|
+
port: 2500, query: 'WhatIsWiki')
|
261
261
|
end
|
262
262
|
end
|
263
263
|
|
264
264
|
private
|
265
|
-
DUMMY_CARD = Card.new(:
|
265
|
+
DUMMY_CARD = Card.new(name: 'dummy')
|
266
266
|
|
267
267
|
# Asserts a number of tests for the given type and text.
|
268
268
|
def no_match(type, test_text)
|