card 1.91 → 1.92
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/README.rdoc +80 -0
- data/VERSION +1 -1
- data/card.gemspec +29 -22
- data/config/i18n-tasks.yml +8 -1
- data/config/initializers/01_core_extensions/module.rb +46 -4
- data/config/initializers/02_patches/action_dispatch.rb +16 -0
- data/config/initializers/02_patches/active_job.rb +35 -0
- data/config/initializers/patches.rb +12 -0
- data/config/initializers/recaptcha.rb +8 -2
- data/config/locales/de.yml +36 -23
- data/config/locales/en.yml +508 -15
- data/db/migrate/20110511221913_require_earlier_migrations.rb +1 -1
- data/db/migrate/20120105203350_require_1_8_migrations.rb +1 -1
- data/db/migrate/20121111025347_require_1_10_migrations.rb +1 -1
- data/db/migrate/20121118114000_split_link_type.rb +1 -1
- data/db/migrate/20121118115000_update_link_type.rb +2 -2
- data/db/migrate/20130106052640_table_cleanup.rb +1 -1
- data/db/migrate/20130109015336_trunk_left.rb +1 -1
- data/db/migrate/20130411210957_update_codenames.rb +1 -1
- data/db/migrate/20140822073704_create_new_revision_tables.rb +1 -1
- data/db/migrate/20141001105348_move_revisions_to_actions.rb +6 -6
- data/db/migrate/20141121172918_rename_card_migration_table.rb +1 -1
- data/db/migrate/20141208132159_remove_present_from_reference_table.rb +1 -1
- data/db/migrate/20141216053032_better_index_names.rb +1 -1
- data/db/migrate/20150724210803_add_comment_to_actions.rb +1 -1
- data/db/migrate/20151105225559_more_space_for_db_content.rb +1 -1
- data/db/migrate/20160122153608_new_indeces.rb +1 -1
- data/db/migrate/20170908114442_create_delayed_jobs.rb +22 -0
- data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +1 -1
- data/db/migrate_core_cards/20140512155840_add_script_cards.rb +2 -2
- data/db/migrate_core_cards/20140629222005_add_email_cards.rb +1 -1
- data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +1 -1
- data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +1 -1
- data/db/migrate_core_cards/20150429090551_search_card_context.rb +1 -0
- data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +1 -1
- data/db/migrate_core_cards/20150824135418_update_file_history.rb +1 -0
- data/db/migrate_core_cards/20161103154836_update_keys.rb +1 -1
- data/db/migrate_core_cards/20170209132834_email_test_context.rb +1 -1
- data/db/migrate_core_cards/20170830210517_correct_signup_success_message.rb +10 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/bootstrap_default/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/bootstrap_default/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cerulean/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cerulean/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cerulean/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cosmo/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cosmo/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cosmo/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cyborg/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cyborg/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cyborg/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/darkly/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/darkly/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/darkly/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/flatly/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/flatly/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/flatly/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/journal/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/journal/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/journal/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/litera/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/litera/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/litera/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lumen/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lumen/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lumen/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lux/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lux/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lux/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/materia/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/materia/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/materia/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/minty/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/minty/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/minty/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/paper/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/paper/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/pulse/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/pulse/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/pulse/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/readable/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/readable/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/sandstone/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/sandstone/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/sandstone/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/simplex/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/simplex/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/simplex/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/slate/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/slate/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/slate/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/solar/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/solar/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/solar/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/spacelab/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/spacelab/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/spacelab/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/superhero/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/superhero/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/superhero/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/united/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/united/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/united/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/yeti/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/yeti/_full.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/yeti/_variables.scss +0 -0
- data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/yeti/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/bootstrap_default/_bootswatch.scss +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/bootstrap_default/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/cerulean/_bootswatch.scss +67 -0
- data/db/migrate_core_cards/data/b4_beta_themes/cerulean/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/cerulean/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/cosmo/_bootswatch.scss +45 -0
- data/db/migrate_core_cards/data/b4_beta_themes/cosmo/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/cosmo/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/cyborg/_bootswatch.scss +141 -0
- data/db/migrate_core_cards/data/b4_beta_themes/cyborg/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/cyborg/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/darkly/_bootswatch.scss +142 -0
- data/db/migrate_core_cards/data/b4_beta_themes/darkly/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/darkly/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/flatly/_bootswatch.scss +107 -0
- data/db/migrate_core_cards/data/b4_beta_themes/flatly/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/flatly/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/journal/_bootswatch.scss +69 -0
- data/db/migrate_core_cards/data/b4_beta_themes/journal/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/journal/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/litera/_bootswatch.scss +130 -0
- data/db/migrate_core_cards/data/b4_beta_themes/litera/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/litera/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/lumen/_bootswatch.scss +294 -0
- data/db/migrate_core_cards/data/b4_beta_themes/lumen/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/lumen/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/lux/_bootswatch.scss +111 -0
- data/db/migrate_core_cards/data/b4_beta_themes/lux/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/lux/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/materia/_bootswatch.scss +610 -0
- data/db/migrate_core_cards/data/b4_beta_themes/materia/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/materia/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/minty/_bootswatch.scss +85 -0
- data/db/migrate_core_cards/data/b4_beta_themes/minty/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/minty/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/paper/_bootswatch.scss +607 -0
- data/db/migrate_core_cards/data/b4_beta_themes/paper/_variables.scss +861 -0
- data/db/migrate_core_cards/data/b4_beta_themes/pulse/_bootswatch.scss +122 -0
- data/db/migrate_core_cards/data/b4_beta_themes/pulse/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/pulse/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/readable/_bootswatch.scss +174 -0
- data/db/migrate_core_cards/data/b4_beta_themes/readable/_variables.scss +861 -0
- data/db/migrate_core_cards/data/b4_beta_themes/sandstone/_bootswatch.scss +152 -0
- data/db/migrate_core_cards/data/b4_beta_themes/sandstone/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/sandstone/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/simplex/_bootswatch.scss +103 -0
- data/db/migrate_core_cards/data/b4_beta_themes/simplex/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/simplex/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/slate/_bootswatch.scss +274 -0
- data/db/migrate_core_cards/data/b4_beta_themes/slate/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/slate/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/solar/_bootswatch.scss +45 -0
- data/db/migrate_core_cards/data/b4_beta_themes/solar/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/solar/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/spacelab/_bootswatch.scss +125 -0
- data/db/migrate_core_cards/data/b4_beta_themes/spacelab/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/spacelab/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/superhero/_bootswatch.scss +136 -0
- data/db/migrate_core_cards/data/b4_beta_themes/superhero/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/superhero/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/united/_bootswatch.scss +32 -0
- data/db/migrate_core_cards/data/b4_beta_themes/united/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/united/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/variables/_variables.scss +0 -0
- data/db/migrate_core_cards/data/b4_beta_themes/yeti/_bootswatch.scss +304 -0
- data/db/migrate_core_cards/data/b4_beta_themes/yeti/_full.scss +9921 -0
- data/db/migrate_core_cards/data/b4_beta_themes/yeti/_variables.scss +961 -0
- data/db/migrate_core_cards/data/b4_beta_themes/yeti/thumbnail.png +0 -0
- data/db/migrate_core_cards/data/cards.yml +2 -2
- data/db/migrate_core_cards/data/cards/*header +2 -2
- data/db/schema.rb +89 -106
- data/db/seed/new/card_actions.yml +2146 -1922
- data/db/seed/new/card_acts.yml +2 -248
- data/db/seed/new/card_changes.yml +1 -32341
- data/db/seed/new/card_references.yml +1162 -980
- data/db/seed/new/cards.yml +23244 -14385
- data/db/seed/test/fixtures/card_actions.yml +3459 -3011
- data/db/seed/test/fixtures/card_acts.yml +470 -608
- data/db/seed/test/fixtures/card_changes.yml +109 -37619
- data/db/seed/test/fixtures/card_references.yml +2264 -1865
- data/db/seed/test/fixtures/cards.yml +26422 -16915
- data/db/seed/test/seed.rb +247 -179
- data/db/seed_consts.rb +10 -0
- data/db/seeds.rb +1 -6
- data/db/version.txt +1 -1
- data/db/version_core_cards.txt +1 -1
- data/lib/active_record/connection_adapters_ext.rb +1 -1
- data/lib/application_job.rb +2 -0
- data/lib/application_record.rb +3 -0
- data/lib/card.rb +77 -13
- data/lib/card/act_manager.rb +3 -0
- data/lib/card/act_manager/stage_director.rb +3 -38
- data/lib/card/act_manager/stage_director/phases.rb +39 -0
- data/lib/card/codename.rb +15 -9
- data/lib/card/content.rb +4 -0
- data/lib/card/content/chunk.rb +4 -0
- data/lib/card/env.rb +6 -2
- data/lib/card/env/location_history.rb +1 -1
- data/lib/card/env/success.rb +5 -2
- data/lib/card/error.rb +3 -2
- data/lib/card/format.rb +13 -21
- data/lib/card/format/context_names.rb +40 -0
- data/lib/card/format/error.rb +8 -4
- data/lib/card/format/nest.rb +7 -7
- data/lib/card/format/nest/fetch.rb +1 -1
- data/lib/card/format/nest/mode.rb +75 -0
- data/lib/card/format/nest/subformat.rb +18 -5
- data/lib/card/format/permission.rb +1 -1
- data/lib/card/format/registration.rb +18 -12
- data/lib/card/format/render.rb +22 -11
- data/lib/card/migration.rb +1 -1
- data/lib/card/mod.rb +63 -0
- data/lib/card/mod/dirs.rb +73 -4
- data/lib/card/mod/load_strategy.rb +64 -0
- data/lib/card/mod/load_strategy/eval.rb +16 -0
- data/lib/card/mod/load_strategy/pattern_tmp_files.rb +29 -0
- data/lib/card/mod/load_strategy/set_binding_magic.rb +48 -0
- data/lib/card/mod/load_strategy/set_tmp_files.rb +33 -0
- data/lib/card/mod/load_strategy/tmp_files.rb +38 -0
- data/lib/card/mod/loader.rb +44 -129
- data/lib/card/mod/loader/set_loader.rb +85 -0
- data/lib/card/mod/loader/set_pattern_loader.rb +58 -0
- data/lib/card/mod/module_template.rb +67 -0
- data/lib/card/model/save_helper.rb +27 -4
- data/lib/card/name.rb +8 -10
- data/lib/card/name/fields_and_traits.rb +7 -5
- data/lib/card/name/view_name.rb +4 -4
- data/lib/card/query.rb +11 -5
- data/lib/card/query/attributes.rb +1 -1
- data/lib/card/query/interpretation.rb +3 -3
- data/lib/card/reference.rb +2 -2
- data/lib/card/set.rb +6 -28
- data/lib/card/set/advanced_api.rb +2 -2
- data/lib/card/set/event.rb +39 -14
- data/lib/card/set/helpers.rb +8 -7
- data/lib/card/set/i18n_scanner.rb +22 -0
- data/lib/card/set/i18n_scope.rb +41 -7
- data/lib/card/set/loader.rb +3 -52
- data/lib/card/set_pattern.rb +22 -38
- data/lib/card/subcards.rb +1 -1
- data/lib/card/tasks/card.rake +43 -3
- data/lib/card/tasks/card/migrate.rake +77 -0
- data/lib/card/view.rb +34 -5
- data/lib/card/view/cache.rb +69 -32
- data/lib/card/view/cache_action.rb +158 -0
- data/lib/card/view/options.rb +107 -57
- data/lib/card/view/stub.rb +46 -12
- data/lib/card/view/visibility.rb +3 -3
- data/lib/cardio.rb +9 -5
- data/mod/account/set/right/account.rb +2 -3
- data/mod/account/set/right/email.rb +4 -5
- data/mod/account/set/right/password.rb +2 -2
- data/mod/account/set/right/salt.rb +1 -1
- data/mod/account/set/right/status.rb +1 -1
- data/mod/account/set/right/token.rb +5 -5
- data/mod/account/set/self/account_links.rb +1 -1
- data/mod/account/set/self/signin.rb +7 -7
- data/mod/account/set/type/signup.rb +6 -4
- data/mod/account/set/type/user.rb +16 -15
- data/mod/account/spec/set/all/account_spec.rb +96 -103
- data/mod/account/spec/set/right/account_spec.rb +1 -1
- data/mod/account/spec/set/self/account_links_spec.rb +2 -2
- data/mod/account/spec/set/self/signin_spec.rb +1 -1
- data/mod/account/template/type/signup/core.haml +22 -0
- data/mod/admin/set/self/admin.rb +26 -4
- data/mod/admin/set/self/admin_info.rb +7 -2
- data/mod/admin/spec/set/self/admin_spec.rb +47 -30
- data/mod/admin/spec/set/self/version_spec.rb +2 -2
- data/mod/basic_formats/format/css_format.rb +9 -0
- data/mod/basic_formats/format/csv_format.rb +10 -0
- data/mod/basic_formats/format/js_format.rb +4 -0
- data/mod/basic_formats/format/json_format.rb +15 -0
- data/mod/basic_formats/format/xml_format.rb +4 -0
- data/mod/basic_formats/set/all/all_csv.rb +1 -1
- data/mod/basic_formats/set/all/base.rb +17 -9
- data/mod/basic_formats/set/all/json.rb +1 -1
- data/mod/basic_formats/set/self/01_head/javascript.rb +11 -7
- data/mod/basic_formats/set/self/head.rb +3 -2
- data/{db/migrate_core_cards/20170719163708_update_bootswatch_themes.rb → mod/bootstrap/db/migrate_cards/20170719163701_update_bootswatch_themes.rb} +1 -1
- data/{db/migrate_core_cards → mod/bootstrap/db/migrate_cards}/20170726111053_add_bootstrap_mixins.rb +0 -0
- data/{db/migrate_core_cards → mod/bootstrap/db/migrate_cards}/20170726145012_select2.rb +0 -0
- data/mod/bootstrap/file/cerulean_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/cerulean_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/cerulean_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/cerulean_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/cosmo_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/cosmo_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/cosmo_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/cosmo_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/cyborg_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/cyborg_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/cyborg_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/cyborg_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/darkly_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/darkly_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/darkly_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/darkly_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/flatly_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/flatly_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/flatly_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/flatly_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/journal_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/journal_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/journal_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/journal_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/litera_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/litera_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/litera_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/litera_skin_image/image-original.png +0 -0
- data/mod/bootstrap/file/litera_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/lumen_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/lumen_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/lumen_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/lumen_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/lux_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/lux_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/lux_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/lux_skin_image/image-original.png +0 -0
- data/mod/bootstrap/file/lux_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/materia_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/materia_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/materia_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/materia_skin_image/image-original.png +0 -0
- data/mod/bootstrap/file/materia_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/minty_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/minty_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/minty_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/minty_skin_image/image-original.png +0 -0
- data/mod/bootstrap/file/minty_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/pulse_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/pulse_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/pulse_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/pulse_skin_image/image-original.png +0 -0
- data/mod/bootstrap/file/pulse_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/sandstone_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/sandstone_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/sandstone_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/sandstone_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/simplex_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/simplex_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/simplex_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/simplex_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/slate_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/slate_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/slate_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/slate_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/solar_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/solar_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/solar_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/solar_skin_image/image-original.png +0 -0
- data/mod/bootstrap/file/solar_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/spacelab_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/spacelab_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/spacelab_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/spacelab_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/superhero_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/superhero_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/superhero_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/superhero_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/united_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/united_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/united_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/united_skin_image/image-small.png +0 -0
- data/mod/bootstrap/file/yeti_skin_image/image-icon.png +0 -0
- data/mod/bootstrap/file/yeti_skin_image/image-large.png +0 -0
- data/mod/bootstrap/file/yeti_skin_image/image-medium.png +0 -0
- data/mod/bootstrap/file/yeti_skin_image/image-small.png +0 -0
- data/mod/bootstrap/lib/bootstrap/basic_tags.rb +3 -3
- data/mod/bootstrap/lib/bootstrap/component.rb +124 -37
- data/mod/bootstrap/lib/bootstrap/component/carousel.rb +68 -0
- data/mod/bootstrap/lib/bootstrap/component/form.rb +49 -16
- data/mod/bootstrap/lib/bootstrap/component/horizontal_form.rb +35 -10
- data/mod/bootstrap/lib/bootstrap/component/layout.rb +10 -2
- data/mod/bootstrap/lib/bootstrap/component/panel.rb +4 -4
- data/mod/bootstrap/lib/bootstrap/old_component.rb +182 -0
- data/mod/bootstrap/lib/javascript/bootstrap_modal_wagn.js +1 -1
- data/mod/bootstrap/set/all/bootstrap/accordion.rb +10 -10
- data/mod/bootstrap/set/all/bootstrap/helper.rb +2 -0
- data/mod/bootstrap/set/all/bootstrap/tabs.rb +1 -1
- data/mod/bootstrap/spec/set/all/bootstrap/bootstrap_builder_spec.rb +24 -14
- data/mod/bootstrap/spec/set/all/bootstrap/bootstrap_spec.rb +2 -2
- data/mod/bootstrap/spec/set/all/bootstrap/carousel_spec.rb +65 -0
- data/mod/bootstrap/spec/set/all/bootstrap/form_spec.rb +4 -44
- data/mod/bootstrap/spec/set/all/bootstrap/horizontal_form_spec.rb +46 -0
- data/mod/bootstrap/spec/set/all/bootstrap/layout_spec.rb +85 -91
- data/mod/carrierwave/lib/carrier_wave/file_card_uploader.rb +7 -1
- data/mod/carrierwave/set/abstract/attachment/paths.rb +2 -2
- data/mod/carrierwave/set/abstract/attachment/upload_cache.rb +10 -3
- data/mod/carrierwave/set/type/file.rb +5 -5
- data/mod/carrierwave/set/type/image.rb +4 -4
- data/mod/carrierwave/spec/lib/carrier_wave/file_card_uploader_spec.rb +1 -0
- data/mod/carrierwave/spec/set/type/file/bucket_config_spec.rb +90 -0
- data/mod/carrierwave/spec/set/type/file_spec.rb +41 -99
- data/mod/core/chunk/link.rb +1 -2
- data/mod/core/chunk/nest.rb +1 -1
- data/mod/core/chunk/reference.rb +1 -1
- data/mod/core/chunk/view_stub.rb +8 -0
- data/mod/core/format/html_format.rb +9 -3
- data/mod/core/set/abstract/code_file.rb +1 -1
- data/mod/core/set/all/actify.rb +34 -0
- data/mod/core/set/all/assign_attributes.rb +13 -0
- data/mod/core/set/all/cache.rb +96 -0
- data/mod/core/set/all/collection.rb +16 -8
- data/mod/core/set/all/{event.rb → event_conditions.rb} +1 -1
- data/mod/core/set/all/fetch.rb +43 -315
- data/mod/core/set/all/fetch_helper.rb +130 -0
- data/mod/core/set/all/haml.rb +13 -0
- data/mod/core/set/all/i18n.rb +5 -4
- data/mod/core/set/all/mark.rb +66 -0
- data/mod/core/set/all/name.rb +35 -57
- data/mod/core/set/all/permissions.rb +6 -3
- data/mod/core/set/all/references.rb +5 -5
- data/mod/core/set/all/rename.rb +34 -0
- data/mod/core/set/all/rules.rb +1 -1
- data/mod/core/set/all/states.rb +12 -0
- data/mod/core/set/all/trash.rb +4 -3
- data/mod/core/set/all/type.rb +4 -0
- data/mod/core/set/all/update_read_rules.rb +1 -1
- data/mod/core/spec/set/all/actify_spec.rb +9 -8
- data/mod/core/spec/set/all/assign_attributes_spec.rb +33 -299
- data/mod/core/spec/set/all/collection_spec.rb +2 -2
- data/mod/core/spec/set/all/event_conditions_spec.rb +54 -0
- data/mod/core/spec/set/all/fetch_spec.rb +21 -29
- data/mod/core/spec/set/all/i18n_spec.rb +17 -0
- data/mod/core/spec/set/all/name_spec.rb +39 -3
- data/mod/core/spec/set/all/name_validations_spec.rb +21 -0
- data/mod/core/spec/set/all/permissions/reader_rules_spec.rb +166 -0
- data/mod/core/spec/set/all/permissions_spec.rb +25 -171
- data/mod/core/spec/set/all/rename_spec.rb +171 -0
- data/mod/core/spec/set/all/rules2_spec.rb +45 -49
- data/mod/core/spec/set/all/trash_spec.rb +84 -61
- data/mod/history/lib/card/act.rb +5 -4
- data/mod/history/lib/card/act/act_renderer.rb +55 -28
- data/mod/history/lib/card/act/act_renderer/absolute_act_renderer.rb +10 -2
- data/mod/history/lib/card/act/act_renderer/relative_act_renderer.rb +8 -1
- data/mod/history/lib/card/action.rb +35 -3
- data/mod/history/lib/card/action/action_renderer.rb +3 -3
- data/mod/history/lib/card/action/admin.rb +17 -0
- data/mod/history/lib/card/change.rb +1 -1
- data/mod/history/set/all/act_view.rb +16 -9
- data/mod/history/set/all/actions.rb +35 -9
- data/mod/history/set/all/content_history.rb +22 -14
- data/mod/history/set/all/history.rb +52 -19
- data/mod/machines/file/all_script_machine_output/file.js +34 -16
- data/mod/machines/file/script_html5shiv_printshiv_machine_output/file.js +2 -0
- data/mod/machines/lib/card/machine.rb +49 -0
- data/mod/machines/lib/javascript/decko.js.coffee +9 -0
- data/mod/machines/lib/javascript/decko_mod.js.coffee +3 -0
- data/mod/machines/lib/stylesheets/style_cards.scss +10 -14
- data/mod/machines/set/abstract/machine.rb +1 -1
- data/mod/machines/spec/set/abstract/machine_spec.rb +1 -1
- data/mod/machines/spec/set/type/scss_spec.rb +5 -7
- data/mod/machines/spec/shared_examples/machine.rb +3 -3
- data/mod/notifications/set/all/follow.rb +2 -2
- data/mod/notifications/set/all/send_notifications.rb +21 -15
- data/mod/notifications/set/right/bcc.rb +1 -1
- data/mod/notifications/set/right/follow.rb +1 -1
- data/mod/notifications/set/right/html_message.rb +6 -0
- data/mod/notifications/set/right/text_message.rb +6 -0
- data/mod/notifications/spec/set/all/notify_spec.rb +87 -166
- data/mod/notifications/spec/set/type/notification_template_spec.rb +3 -2
- data/mod/pointer/set/abstract/02_pointer.rb +4 -4
- data/mod/pointer/set/abstract/02_pointer/edit.rb +41 -14
- data/mod/pointer/spec/set/type/pointer_spec.rb +10 -9
- data/mod/prosemirror_editor/lib/javascript/script_prosemirror.js +305 -143
- data/mod/settings/set/abstract/permission.rb +1 -1
- data/mod/settings/set/right/structure.rb +0 -1
- data/mod/settings/set/self/recent_settings.rb +4 -0
- data/mod/standard/file/credit_image/image-icon.png +0 -0
- data/mod/standard/file/credit_image/image-large.png +0 -0
- data/mod/standard/file/credit_image/image-medium.png +0 -0
- data/mod/standard/file/credit_image/image-small.png +0 -0
- data/mod/standard/file/favicon/image-icon.png +0 -0
- data/mod/standard/file/favicon/image-large.png +0 -0
- data/mod/standard/file/favicon/image-medium.png +0 -0
- data/mod/standard/file/favicon/image-small.png +0 -0
- data/mod/standard/file/logo/image-icon.png +0 -0
- data/mod/standard/file/logo/image-large.png +0 -0
- data/mod/standard/file/logo/image-medium.png +0 -0
- data/mod/standard/file/logo/image-small.png +0 -0
- data/mod/standard/set/abstract/search.rb +1 -1
- data/mod/standard/set/all/error.rb +5 -5
- data/mod/standard/set/all/links.rb +1 -2
- data/mod/standard/set/all/list_changes.rb +1 -1
- data/mod/standard/set/all/rich_html/content.rb +20 -14
- data/mod/standard/set/all/rich_html/editing.rb +9 -7
- data/mod/standard/set/all/rich_html/form.rb +24 -27
- data/mod/standard/set/all/rich_html/header.rb +1 -1
- data/mod/standard/set/all/rich_html/new.rb +12 -10
- data/mod/standard/set/all/rich_html/toolbar.rb +2 -2
- data/mod/standard/set/all/rich_html/wrapper.rb +4 -4
- data/mod/standard/set/self/activity_toolbar_button.rb +1 -1
- data/mod/standard/set/self/recent.rb +4 -2
- data/mod/standard/set/type/basic.rb +2 -2
- data/mod/standard/set/type/cardtype.rb +11 -8
- data/mod/standard/set/type/list.rb +4 -4
- data/mod/standard/set/type/search_type.rb +4 -4
- data/mod/standard/set/type/session.rb +4 -0
- data/mod/standard/set/type/set.rb +1 -1
- data/mod/standard/set/type/toggle.rb +2 -2
- data/mod/standard/spec/chunk/link_spec.rb +1 -1
- data/mod/standard/spec/set/all/history_spec.rb +31 -12
- data/mod/standard/spec/set/all/rich_html/form_spec.rb +2 -2
- data/mod/standard/spec/set/all/rich_html/toolbar_spec.rb +1 -0
- data/mod/standard/spec/set/type/cardtype_spec.rb +44 -1
- data/mod/standard/spec/set/type/email_template/email_config_spec.rb +2 -1
- data/mod/standard/spec/set/type/list_spec.rb +8 -3
- data/mod/standard/spec/set/type/listed_by_spec.rb +0 -6
- data/spec/config/initializers/patches/active_job_spec.rb +7 -0
- data/spec/lib/card/action_spec.rb +3 -2
- data/spec/lib/card/codename_spec.rb +7 -2
- data/spec/lib/card/content_spec.rb +19 -1
- data/spec/lib/card/format/render_spec.rb +5 -5
- data/spec/lib/card/i18n_spec.rb +5 -20
- data/spec/lib/card/{loader → mod/loader}/mod_dirs.rb +0 -0
- data/spec/lib/card/mod/loader/set_loader_spec.rb +19 -0
- data/spec/lib/card/mod/loader/set_pattern_loader_spec.rb +19 -0
- data/spec/lib/card/name/fields_and_traits_spec.rb +18 -0
- data/spec/lib/card/name_spec.rb +3 -3
- data/spec/lib/card/query/sorting_spec.rb +1 -1
- data/spec/lib/card/query_spec.rb +16 -9
- data/spec/lib/card/reference_spec.rb +5 -6
- data/spec/lib/card/set_pattern_spec.rb +4 -0
- data/spec/lib/card/view_cache_spec.rb +17 -0
- data/spec/models/card/create_spec.rb +40 -22
- data/spec/models/card/trash_spec.rb +8 -70
- data/spec/models/card_spec.rb +16 -46
- data/spec/spec_helper.rb +1 -3
- data/spec/support/card_spec_helper.rb +5 -2
- data/spec/support/card_spec_loader.rb +34 -6
- data/spec/support/helper/event_helper.rb +1 -1
- data/spec/support/helper/save_helper.rb +4 -0
- data/spec/support/helper/set_helper.rb +1 -1
- data/spec/support/matchers/card_matchers.rb +136 -0
- data/spec/support/matchers/expectations.rb +5 -0
- data/spec/support/matchers/file_matchers.rb +71 -0
- data/spec/support/matchers/negated_matchers.rb +2 -0
- data/spec/support/test_mods/mod1/set/all/test_set.rb +3 -0
- data/spec/support/test_mods/mod2/set_pattern/test_pattern.rb +0 -0
- data/tmpsets/set/mod001-admin/self/admin.rb +130 -0
- data/tmpsets/set/mod001-admin/self/admin_info.rb +110 -0
- data/tmpsets/set/mod001-admin/self/version.rb +15 -0
- data/tmpsets/set/mod002-core/abstract/code_file.rb +79 -0
- data/tmpsets/set/mod002-core/all/actify.rb +101 -0
- data/tmpsets/set/mod002-core/all/active_card.rb +42 -0
- data/tmpsets/set/mod002-core/all/collection.rb +313 -0
- data/tmpsets/set/mod002-core/all/content.rb +69 -0
- data/tmpsets/set/mod002-core/all/debug.rb +30 -0
- data/tmpsets/set/mod002-core/all/erb.rb +18 -0
- data/tmpsets/set/mod002-core/all/event.rb +62 -0
- data/tmpsets/set/mod002-core/all/export.rb +49 -0
- data/tmpsets/set/mod002-core/all/fetch.rb +335 -0
- data/tmpsets/set/mod002-core/all/haml.rb +14 -0
- data/tmpsets/set/mod002-core/all/initialize.rb +42 -0
- data/tmpsets/set/mod002-core/all/location_history.rb +15 -0
- data/tmpsets/set/mod002-core/all/name.rb +282 -0
- data/tmpsets/set/mod002-core/all/name_validations.rb +65 -0
- data/tmpsets/set/mod002-core/all/pattern.rb +67 -0
- data/tmpsets/set/mod002-core/all/permissions.rb +319 -0
- data/tmpsets/set/mod002-core/all/phases.rb +23 -0
- data/tmpsets/set/mod002-core/all/references.rb +187 -0
- data/tmpsets/set/mod002-core/all/rules.rb +311 -0
- data/tmpsets/set/mod002-core/all/stages.rb +31 -0
- data/tmpsets/set/mod002-core/all/states.rb +31 -0
- data/tmpsets/set/mod002-core/all/subcards.rb +85 -0
- data/tmpsets/set/mod002-core/all/templating.rb +78 -0
- data/tmpsets/set/mod002-core/all/tracked_attributes.rb +78 -0
- data/tmpsets/set/mod002-core/all/trash.rb +113 -0
- data/tmpsets/set/mod002-core/all/type.rb +60 -0
- data/tmpsets/set/mod002-core/all/update_read_rules.rb +91 -0
- data/tmpsets/set/mod002-core/all/utils.rb +62 -0
- data/tmpsets/set/mod002-core/all/view_cache.rb +16 -0
- data/tmpsets/set/mod003-history/all/actions.rb +60 -0
- data/tmpsets/set/mod003-history/all/content_history.rb +168 -0
- data/tmpsets/set/mod003-history/all/history.rb +408 -0
- data/tmpsets/set/mod004-basic_formats/all/all_css.rb +45 -0
- data/tmpsets/set/mod004-basic_formats/all/all_csv.rb +56 -0
- data/tmpsets/set/mod004-basic_formats/all/all_js.rb +13 -0
- data/tmpsets/set/mod004-basic_formats/all/base.rb +155 -0
- data/tmpsets/set/mod004-basic_formats/all/file.rb +16 -0
- data/tmpsets/set/mod004-basic_formats/all/json.rb +76 -0
- data/tmpsets/set/mod004-basic_formats/all/rss.rb +77 -0
- data/tmpsets/set/mod004-basic_formats/all/text.rb +13 -0
- data/tmpsets/set/mod004-basic_formats/self/01_head/javascript.rb +79 -0
- data/tmpsets/set/mod004-basic_formats/self/head.rb +101 -0
- data/tmpsets/set/mod005-pointer/abstract/01_pointer.rb +193 -0
- data/tmpsets/set/mod005-pointer/abstract/01_pointer/edit.rb +224 -0
- data/tmpsets/set/mod005-pointer/abstract/code_pointer.rb +16 -0
- data/tmpsets/set/mod005-pointer/self/script_editors.rb +8 -0
- data/tmpsets/set/mod005-pointer/self/script_mods.rb +8 -0
- data/tmpsets/set/mod005-pointer/self/script_pointer_config.rb +10 -0
- data/tmpsets/set/mod005-pointer/type/pointer.rb +8 -0
- data/tmpsets/set/mod006-ace_editor/abstract/ace_editor.rb +18 -0
- data/tmpsets/set/mod006-ace_editor/self/script_ace.rb +10 -0
- data/tmpsets/set/mod006-ace_editor/self/script_ace_config.rb +12 -0
- data/tmpsets/set/mod007-prosemirror_editor/abstract/prosemirror_editor.rb +14 -0
- data/tmpsets/set/mod007-prosemirror_editor/self/script_prosemirror.rb +10 -0
- data/tmpsets/set/mod007-prosemirror_editor/self/script_prosemirror_config.rb +13 -0
- data/tmpsets/set/mod009-solid_cache/abstract/solid_cache.rb +106 -0
- data/tmpsets/set/mod009-solid_cache/all/solid_cache.rb +21 -0
- data/tmpsets/set/mod009-solid_cache/right/solid_cache.rb +39 -0
- data/tmpsets/set/mod010-basic_types/type/html.rb +26 -0
- data/tmpsets/set/mod010-basic_types/type/plain_text.rb +19 -0
- data/tmpsets/set/mod011-machines/abstract/machine.rb +277 -0
- data/tmpsets/set/mod011-machines/abstract/machine_input.rb +83 -0
- data/tmpsets/set/mod011-machines/abstract/script.rb +49 -0
- data/tmpsets/set/mod011-machines/all/reset_machines.rb +19 -0
- data/tmpsets/set/mod011-machines/right/machine_cache.rb +18 -0
- data/tmpsets/set/mod011-machines/right/machine_input.rb +10 -0
- data/tmpsets/set/mod011-machines/right/machine_output.rb +47 -0
- data/tmpsets/set/mod011-machines/self/script_card_menu.rb +8 -0
- data/tmpsets/set/mod011-machines/self/script_html5shiv_printshiv.rb +8 -0
- data/tmpsets/set/mod011-machines/self/script_jquery.rb +8 -0
- data/tmpsets/set/mod011-machines/self/script_jquery_helper.rb +16 -0
- data/tmpsets/set/mod011-machines/self/script_slot.rb +14 -0
- data/tmpsets/set/mod011-machines/self/style_bootstrap_compatible.rb +8 -0
- data/tmpsets/set/mod011-machines/self/style_cards.rb +8 -0
- data/tmpsets/set/mod011-machines/self/style_jquery_ui_smoothness.rb +8 -0
- data/tmpsets/set/mod011-machines/type/coffee_script.rb +43 -0
- data/tmpsets/set/mod011-machines/type/css.rb +67 -0
- data/tmpsets/set/mod011-machines/type/java_script.rb +36 -0
- data/tmpsets/set/mod011-machines/type/scss.rb +21 -0
- data/tmpsets/set/mod011-machines/type/skin.rb +13 -0
- data/tmpsets/set/mod012-settings/abstract/permission.rb +119 -0
- data/tmpsets/set/mod012-settings/right/add_help.rb +18 -0
- data/tmpsets/set/mod012-settings/right/comment.rb +8 -0
- data/tmpsets/set/mod012-settings/right/create.rb +8 -0
- data/tmpsets/set/mod012-settings/right/default.rb +14 -0
- data/tmpsets/set/mod012-settings/right/delete.rb +8 -0
- data/tmpsets/set/mod012-settings/right/help.rb +10 -0
- data/tmpsets/set/mod012-settings/right/read.rb +10 -0
- data/tmpsets/set/mod012-settings/right/script.rb +16 -0
- data/tmpsets/set/mod012-settings/right/structure.rb +68 -0
- data/tmpsets/set/mod012-settings/right/style.rb +17 -0
- data/tmpsets/set/mod012-settings/right/update.rb +8 -0
- data/tmpsets/set/mod012-settings/self/accountable.rb +10 -0
- data/tmpsets/set/mod012-settings/self/add_help.rb +9 -0
- data/tmpsets/set/mod012-settings/self/autoname.rb +9 -0
- data/tmpsets/set/mod012-settings/self/captcha.rb +9 -0
- data/tmpsets/set/mod012-settings/self/create.rb +9 -0
- data/tmpsets/set/mod012-settings/self/default.rb +9 -0
- data/tmpsets/set/mod012-settings/self/default_html_view.rb +9 -0
- data/tmpsets/set/mod012-settings/self/delete.rb +9 -0
- data/tmpsets/set/mod012-settings/self/follow_fields.rb +9 -0
- data/tmpsets/set/mod012-settings/self/help.rb +9 -0
- data/tmpsets/set/mod012-settings/self/input.rb +11 -0
- data/tmpsets/set/mod012-settings/self/layout.rb +9 -0
- data/tmpsets/set/mod012-settings/self/on_create.rb +9 -0
- data/tmpsets/set/mod012-settings/self/on_delete.rb +9 -0
- data/tmpsets/set/mod012-settings/self/on_update.rb +9 -0
- data/tmpsets/set/mod012-settings/self/options.rb +11 -0
- data/tmpsets/set/mod012-settings/self/options_label.rb +11 -0
- data/tmpsets/set/mod012-settings/self/read.rb +9 -0
- data/tmpsets/set/mod012-settings/self/recent_settings.rb +10 -0
- data/tmpsets/set/mod012-settings/self/script.rb +9 -0
- data/tmpsets/set/mod012-settings/self/structure.rb +9 -0
- data/tmpsets/set/mod012-settings/self/style.rb +9 -0
- data/tmpsets/set/mod012-settings/self/table_of_contents.rb +9 -0
- data/tmpsets/set/mod012-settings/self/thanks.rb +9 -0
- data/tmpsets/set/mod012-settings/self/update.rb +9 -0
- data/tmpsets/set/mod012-settings/type/setting.rb +111 -0
- data/tmpsets/set/mod013-email/all/email_html.rb +11 -0
- data/tmpsets/set/mod013-email/all/email_text.rb +12 -0
- data/tmpsets/set/mod013-email/all/follow.rb +253 -0
- data/tmpsets/set/mod013-email/all/notify.rb +271 -0
- data/tmpsets/set/mod013-email/all/observer.rb +33 -0
- data/tmpsets/set/mod013-email/right/bcc.rb +47 -0
- data/tmpsets/set/mod013-email/right/cc.rb +10 -0
- data/tmpsets/set/mod013-email/right/follow.rb +106 -0
- data/tmpsets/set/mod013-email/right/follow_fields.rb +10 -0
- data/tmpsets/set/mod013-email/right/followers.rb +41 -0
- data/tmpsets/set/mod013-email/right/following.rb +65 -0
- data/tmpsets/set/mod013-email/right/from.rb +10 -0
- data/tmpsets/set/mod013-email/right/html_message.rb +10 -0
- data/tmpsets/set/mod013-email/right/to.rb +10 -0
- data/tmpsets/set/mod013-email/self/always.rb +20 -0
- data/tmpsets/set/mod013-email/self/created.rb +26 -0
- data/tmpsets/set/mod013-email/self/edited.rb +27 -0
- data/tmpsets/set/mod013-email/self/follow.rb +9 -0
- data/tmpsets/set/mod013-email/self/follow_defaults.rb +75 -0
- data/tmpsets/set/mod013-email/self/never.rb +20 -0
- data/tmpsets/set/mod013-email/type/email_template.rb +133 -0
- data/tmpsets/set/mod013-email/type_plus_right/user/follow.rb +180 -0
- data/tmpsets/set/mod014-developer/all/event_viz.rb +59 -0
- data/tmpsets/set/mod014-developer/all/view_viz.rb +30 -0
- data/tmpsets/set/mod014-developer/right/debug.rb +96 -0
- data/tmpsets/set/mod015-carrierwave/abstract/attachment.rb +118 -0
- data/tmpsets/set/mod015-carrierwave/abstract/attachment/paths.rb +57 -0
- data/tmpsets/set/mod015-carrierwave/abstract/attachment/storage_type.rb +326 -0
- data/tmpsets/set/mod015-carrierwave/abstract/attachment/upload_cache.rb +84 -0
- data/tmpsets/set/mod015-carrierwave/all/file_utils.rb +35 -0
- data/tmpsets/set/mod015-carrierwave/self/admin.rb +30 -0
- data/tmpsets/set/mod015-carrierwave/type/file.rb +158 -0
- data/tmpsets/set/mod015-carrierwave/type/image.rb +97 -0
- data/tmpsets/set/mod016-standard/all/comment.rb +67 -0
- data/tmpsets/set/mod016-standard/all/error.rb +229 -0
- data/tmpsets/set/mod016-standard/all/links.rb +165 -0
- data/tmpsets/set/mod016-standard/all/list_changes.rb +53 -0
- data/tmpsets/set/mod016-standard/all/rich_html/content.rb +261 -0
- data/tmpsets/set/mod016-standard/all/rich_html/editing.rb +247 -0
- data/tmpsets/set/mod016-standard/all/rich_html/form.rb +298 -0
- data/tmpsets/set/mod016-standard/all/rich_html/header.rb +78 -0
- data/tmpsets/set/mod016-standard/all/rich_html/menu.rb +154 -0
- data/tmpsets/set/mod016-standard/all/rich_html/modal.rb +58 -0
- data/tmpsets/set/mod016-standard/all/rich_html/toolbar.rb +312 -0
- data/tmpsets/set/mod016-standard/all/rich_html/wrapper.rb +191 -0
- data/tmpsets/set/mod016-standard/right/discussion.rb +10 -0
- data/tmpsets/set/mod016-standard/right/when_created.rb +14 -0
- data/tmpsets/set/mod016-standard/right/when_last_edited.rb +14 -0
- data/tmpsets/set/mod016-standard/rstar/rules.rb +107 -0
- data/tmpsets/set/mod016-standard/rstar/rules_editor.rb +371 -0
- data/tmpsets/set/mod016-standard/self/alerts.rb +12 -0
- data/tmpsets/set/mod016-standard/self/codenames.rb +7 -0
- data/tmpsets/set/mod016-standard/self/foot.rb +15 -0
- data/tmpsets/set/mod016-standard/self/navbox.rb +36 -0
- data/tmpsets/set/mod016-standard/self/now.rb +14 -0
- data/tmpsets/set/mod016-standard/self/recent.rb +34 -0
- data/tmpsets/set/mod016-standard/self/search.rb +71 -0
- data/tmpsets/set/mod016-standard/type/basic.rb +59 -0
- data/tmpsets/set/mod016-standard/type/cardtype.rb +81 -0
- data/tmpsets/set/mod016-standard/type/date.rb +15 -0
- data/tmpsets/set/mod016-standard/type/layout_type.rb +17 -0
- data/tmpsets/set/mod016-standard/type/list.rb +120 -0
- data/tmpsets/set/mod016-standard/type/listed_by.rb +85 -0
- data/tmpsets/set/mod016-standard/type/number.rb +25 -0
- data/tmpsets/set/mod016-standard/type/phrase.rb +10 -0
- data/tmpsets/set/mod016-standard/type/search_type.rb +339 -0
- data/tmpsets/set/mod016-standard/type/session.rb +42 -0
- data/tmpsets/set/mod016-standard/type/set.rb +371 -0
- data/tmpsets/set/mod016-standard/type/toggle.rb +19 -0
- data/tmpsets/set/mod016-standard/type/uri.rb +18 -0
- data/tmpsets/set/mod017-account/all/account.rb +72 -0
- data/tmpsets/set/mod017-account/right/account.rb +196 -0
- data/tmpsets/set/mod017-account/right/email.rb +61 -0
- data/tmpsets/set/mod017-account/right/password.rb +54 -0
- data/tmpsets/set/mod017-account/right/salt.rb +12 -0
- data/tmpsets/set/mod017-account/right/status.rb +16 -0
- data/tmpsets/set/mod017-account/right/token.rb +57 -0
- data/tmpsets/set/mod017-account/self/account_links.rb +72 -0
- data/tmpsets/set/mod017-account/self/signin.rb +165 -0
- data/tmpsets/set/mod017-account/type/signup.rb +175 -0
- data/tmpsets/set/mod017-account/type/user.rb +88 -0
- data/tmpsets/set/mod018-bootstrap/all/bootstrap/form.rb +42 -0
- data/tmpsets/set/mod018-bootstrap/all/bootstrap/helper.rb +236 -0
- data/tmpsets/set/mod018-bootstrap/all/bootstrap/table.rb +68 -0
- data/tmpsets/set/mod018-bootstrap/all/bootstrap/tabs.rb +88 -0
- data/tmpsets/set/mod018-bootstrap/all/bootstrap/wrapper.rb +18 -0
- data/tmpsets/set/mod018-bootstrap/all/rich_bootstrap.rb +13 -0
- data/tmpsets/set/mod018-bootstrap/self/bootstrap_cards.rb +8 -0
- data/tmpsets/set/mod018-bootstrap/self/bootstrap_js.rb +12 -0
- data/tmpsets/set/mod018-bootstrap/self/bootswatch_shared.rb +47 -0
- data/tmpsets/set/mod018-bootstrap/self/script_mods.rb +7 -0
- data/tmpsets/set/mod018-bootstrap/self/smartmenu_css.rb +12 -0
- data/tmpsets/set/mod018-bootstrap/self/smartmenu_js.rb +12 -0
- data/tmpsets/set_pattern/100-all.rb +24 -0
- data/tmpsets/set_pattern/101-all_plus.rb +26 -0
- data/tmpsets/set_pattern/102-type.rb +36 -0
- data/tmpsets/set_pattern/103-star.rb +28 -0
- data/tmpsets/set_pattern/104-rstar.rb +30 -0
- data/tmpsets/set_pattern/105-right.rb +33 -0
- data/tmpsets/set_pattern/106-type_plus_right.rb +39 -0
- data/tmpsets/set_pattern/107-self.rb +32 -0
- metadata +494 -167
- data/README_Developers.rdoc +0 -100
- data/lib/card/format/names.rb +0 -43
- data/lib/card/format/nest/view.rb +0 -65
- data/lib/card/view/fetch.rb +0 -121
- data/mod/core/spec/set/all/attribute_tracking_spec.rb +0 -21
- data/spec/models/card/cardtype_spec.rb +0 -189
- data/spec/models/card/type_transition_spec.rb +0 -132
- data/spec/models/card/validation_spec.rb +0 -34
- data/spec/support/matchers.rb +0 -74
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Abstract; module CodePointer; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/pointer/set/abstract/code_pointer.rb ~~
|
|
4
|
+
include_set Abstract::Pointer
|
|
5
|
+
|
|
6
|
+
abstract_basket :item_codenames
|
|
7
|
+
|
|
8
|
+
def raw_content
|
|
9
|
+
item_codenames.map do |codename|
|
|
10
|
+
Card[codename] && Card[codename].name
|
|
11
|
+
end.compact.to_pointer_content
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/pointer/set/abstract/code_pointer.rb ~~
|
|
16
|
+
end;end;end;end;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Self; module ScriptEditors; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/pointer/set/self/script_editors.rb ~~
|
|
4
|
+
include_set Abstract::CodePointer
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/pointer/set/self/script_editors.rb ~~
|
|
8
|
+
end;end;end;end;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Self; module ScriptMods; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/pointer/set/self/script_mods.rb ~~
|
|
4
|
+
include_set Abstract::CodePointer
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/pointer/set/self/script_mods.rb ~~
|
|
8
|
+
end;end;end;end;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Self; module ScriptPointerConfig; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/pointer/set/self/script_pointer_config.rb ~~
|
|
4
|
+
include_set Abstract::CodeFile
|
|
5
|
+
|
|
6
|
+
Self::ScriptEditors.add_to_basket :item_codenames, :script_pointer_config
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/pointer/set/self/script_pointer_config.rb ~~
|
|
10
|
+
end;end;end;end;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Type; module Pointer; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/pointer/set/type/pointer.rb ~~
|
|
4
|
+
include_set Abstract::Pointer
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/pointer/set/type/pointer.rb ~~
|
|
8
|
+
end;end;end;end;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Abstract; module AceEditor; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/ace_editor/set/abstract/ace_editor.rb ~~
|
|
4
|
+
format :html do
|
|
5
|
+
def default_editor_args args
|
|
6
|
+
args[:ace_mode] ||= "html"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
view :editor do |args|
|
|
10
|
+
text_area :content, rows: 5,
|
|
11
|
+
class: "card-content ace-editor-textarea",
|
|
12
|
+
"data-ace-mode" => args[:ace_mode]
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/ace_editor/set/abstract/ace_editor.rb ~~
|
|
18
|
+
end;end;end;end;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Self; module ScriptAce; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/ace_editor/set/self/script_ace.rb ~~
|
|
4
|
+
include_set Abstract::CodeFile
|
|
5
|
+
|
|
6
|
+
Self::ScriptMods.add_to_basket :item_codenames, :script_ace
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/ace_editor/set/self/script_ace.rb ~~
|
|
10
|
+
end;end;end;end;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Self; module ScriptAceConfig; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/ace_editor/set/self/script_ace_config.rb ~~
|
|
4
|
+
include_set Abstract::CodeFile
|
|
5
|
+
|
|
6
|
+
Self::ScriptEditors.add_to_basket :item_codenames, :script_ace_config
|
|
7
|
+
Self::Head::Javascript::HtmlFormat.add_to_basket :mod_js_config,
|
|
8
|
+
[:ace, "setAceConfig"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/ace_editor/set/self/script_ace_config.rb ~~
|
|
12
|
+
end;end;end;end;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Abstract; module ProsemirrorEditor; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/prosemirror_editor/set/abstract/prosemirror_editor.rb ~~
|
|
4
|
+
format :html do
|
|
5
|
+
view :editor do |_args|
|
|
6
|
+
wrap_with(:div, id: unique_id, class: "prosemirror-editor") do
|
|
7
|
+
hidden_field(:content, class: "card-content", value: card.raw_content)
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/prosemirror_editor/set/abstract/prosemirror_editor.rb ~~
|
|
14
|
+
end;end;end;end;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Self; module ScriptProsemirror; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/prosemirror_editor/set/self/script_prosemirror.rb ~~
|
|
4
|
+
include_set Abstract::CodeFile
|
|
5
|
+
|
|
6
|
+
Self::ScriptMods.add_to_basket :item_codenames, :script_prosemirror
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/prosemirror_editor/set/self/script_prosemirror.rb ~~
|
|
10
|
+
end;end;end;end;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Self; module ScriptProsemirrorConfig; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/prosemirror_editor/set/self/script_prosemirror_config.rb ~~
|
|
4
|
+
include_set Abstract::CodeFile
|
|
5
|
+
|
|
6
|
+
Self::ScriptEditors.add_to_basket :item_codenames, :script_prosemirror_config
|
|
7
|
+
Self::Head::Javascript::HtmlFormat.add_to_basket(
|
|
8
|
+
:mod_js_config, [:prose_mirror, "setProseMirrorConfig"]
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/prosemirror_editor/set/self/script_prosemirror_config.rb ~~
|
|
13
|
+
end;end;end;end;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Abstract; module SolidCache; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/solid_cache/set/abstract/solid_cache.rb ~~
|
|
4
|
+
# -*- encoding : utf-8 -*-
|
|
5
|
+
|
|
6
|
+
# A card that includes Abstract::SolidCache caches its core view
|
|
7
|
+
# in a '+*solid cache' card.
|
|
8
|
+
# If that card exists the core view returns its content as rendered view.
|
|
9
|
+
# If it doesn't exist the usual core view is rendered and saved in that card.
|
|
10
|
+
#
|
|
11
|
+
# The cache expiration can be controlled with the cache_update_trigger and
|
|
12
|
+
# cache_expire_trigger methods.
|
|
13
|
+
|
|
14
|
+
card_accessor :solid_cache, type: :html
|
|
15
|
+
|
|
16
|
+
format :html do
|
|
17
|
+
def default_core_args args
|
|
18
|
+
args[:solid_cache] = true unless args.key?(:solid_cache)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
view :core do |args|
|
|
22
|
+
return super(args) unless args[:solid_cache]
|
|
23
|
+
|
|
24
|
+
subformat(card.solid_cache_card)._render_core args
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
module ClassMethods
|
|
29
|
+
# If a card of the set given by 'set_of_changed_card' is updated
|
|
30
|
+
# the given block is executed. It is supposed to return an array of
|
|
31
|
+
# cards whose solid caches are expired because of the update.
|
|
32
|
+
# @param set_of_changed_card [set constant] a set of cards that triggers
|
|
33
|
+
# a cache update
|
|
34
|
+
# @params args [Hash]
|
|
35
|
+
# @option args [Symbol, Array of symbols] :on the action(s)
|
|
36
|
+
# (:create, :update, or :delete) on which the cache update
|
|
37
|
+
# should be triggered. Default is all actions.
|
|
38
|
+
# @option args [Stage] :in_stage the stage when the update is executed.
|
|
39
|
+
# Default is :integrate
|
|
40
|
+
# @yield return an array of cards with solid cache that need to be updated
|
|
41
|
+
def cache_update_trigger set_of_changed_card, args={}, &block
|
|
42
|
+
define_event_to_update_expired_cached_cards(
|
|
43
|
+
set_of_changed_card, args, :update_solid_cache, &block
|
|
44
|
+
)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Same as 'cache_update_trigger' but expires instead of updates the
|
|
48
|
+
# outdated solid caches
|
|
49
|
+
def cache_expire_trigger set_of_changed_card, args={}, &block
|
|
50
|
+
define_event_to_update_expired_cached_cards(
|
|
51
|
+
set_of_changed_card, args, :expire_solid_cache, &block
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def define_event_to_update_expired_cached_cards set_of_changed_card, args,
|
|
56
|
+
method_name
|
|
57
|
+
args[:on] ||= [:create, :update, :delete]
|
|
58
|
+
name = event_name set_of_changed_card, args
|
|
59
|
+
stage = args[:in_stage] || :integrate
|
|
60
|
+
Card::Set.register_set set_of_changed_card
|
|
61
|
+
set_of_changed_card.event name, stage, args do
|
|
62
|
+
Array(yield(self)).compact.each do |expired_cache_card|
|
|
63
|
+
next unless expired_cache_card.solid_cache?
|
|
64
|
+
expired_cache_card.send method_name
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def event_name set, args
|
|
70
|
+
changed_card_set = set.to_s.tr(":", "_").underscore
|
|
71
|
+
solid_cache_set = to_s.tr(":", "_").underscore
|
|
72
|
+
actions = Array.wrap(args[:on]).join("_")
|
|
73
|
+
"update_#{solid_cache_set}_solid_cache_changed_by_" \
|
|
74
|
+
"#{changed_card_set}_on_#{actions}".to_sym
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def expire_solid_cache
|
|
79
|
+
return unless solid_cache?
|
|
80
|
+
Auth.as_bot do
|
|
81
|
+
solid_cache_card.delete!
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def update_solid_cache
|
|
86
|
+
return unless solid_cache?
|
|
87
|
+
new_content = format(:html)._render_core(solid_cache: false)
|
|
88
|
+
return unless new_content
|
|
89
|
+
write_to_solid_cache new_content
|
|
90
|
+
new_content
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def write_to_solid_cache new_content
|
|
94
|
+
Auth.as_bot do
|
|
95
|
+
if solid_cache_card.new_card?
|
|
96
|
+
solid_cache_card.update_attributes! content: new_content
|
|
97
|
+
elsif new_content != solid_cache_card.content
|
|
98
|
+
solid_cache_card.update_column :db_content, new_content
|
|
99
|
+
solid_cache_card.expire
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/solid_cache/set/abstract/solid_cache.rb ~~
|
|
106
|
+
end;end;end;end;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class All; module SolidCache; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/solid_cache/set/all/solid_cache.rb ~~
|
|
4
|
+
def solid_cache?
|
|
5
|
+
respond_to?(:solid_cache_card)
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
module ClassMethods
|
|
9
|
+
def clear_solid_cache
|
|
10
|
+
Auth.as_bot do
|
|
11
|
+
Card.search(right: { codename: "solid_cache" }).each do |card|
|
|
12
|
+
card.update_columns trash: true
|
|
13
|
+
card.expire
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/solid_cache/set/all/solid_cache.rb ~~
|
|
21
|
+
end;end;end;end;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Right; module SolidCache; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/solid_cache/set/right/solid_cache.rb ~~
|
|
4
|
+
def followable?
|
|
5
|
+
false
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def history?
|
|
9
|
+
false
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def clean_html?
|
|
13
|
+
false
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
format :html do
|
|
17
|
+
view :core do |args|
|
|
18
|
+
return super(args) unless card.new_card?
|
|
19
|
+
_render_missing args.merge(denied_view: :core)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
view :missing do |args|
|
|
23
|
+
if @card.new_card? &&
|
|
24
|
+
(l = @card.left) &&
|
|
25
|
+
l.solid_cache?
|
|
26
|
+
l.update_solid_cache
|
|
27
|
+
@card = Card.fetch(card.name)
|
|
28
|
+
render(args[:denied_view], args)
|
|
29
|
+
else
|
|
30
|
+
super(args)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
view :new, :missing
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/solid_cache/set/right/solid_cache.rb ~~
|
|
39
|
+
end;end;end;end;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Type; module Html; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/basic_types/set/type/html.rb ~~
|
|
4
|
+
include_set Abstract::AceEditor
|
|
5
|
+
|
|
6
|
+
def clean_html?
|
|
7
|
+
false
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def diff_args
|
|
11
|
+
{ format: :raw }
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
format do
|
|
15
|
+
view :closed_content do |_args|
|
|
16
|
+
""
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def chunk_list
|
|
20
|
+
:references
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/basic_types/set/type/html.rb ~~
|
|
26
|
+
end;end;end;end;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Type; module PlainText; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/basic_types/set/type/plain_text.rb ~~
|
|
4
|
+
format :html do
|
|
5
|
+
view :editor do |_args|
|
|
6
|
+
text_area :content,
|
|
7
|
+
rows: 5,
|
|
8
|
+
class: "card-content",
|
|
9
|
+
"data-card-type-code" => card.type_code
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
view :core do |_args|
|
|
13
|
+
process_content CGI.escapeHTML(_render_raw)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/basic_types/set/type/plain_text.rb ~~
|
|
19
|
+
end;end;end;end;
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
|
2
|
+
class Card; module Set; class Abstract; module Machine; extend Card::Set
|
|
3
|
+
# ~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/machines/set/abstract/machine.rb ~~
|
|
4
|
+
# ## What are Machines?
|
|
5
|
+
# {Machine} and {MachineInput} together implement a kind of observer pattern.
|
|
6
|
+
# {Machine} processes a collection of input cards to generate an output card
|
|
7
|
+
# (a {Set::Type::File} card by default). If one of the input cards is changed
|
|
8
|
+
# the output card will be updated.
|
|
9
|
+
#
|
|
10
|
+
# The classic example: A style card observes a collection of css and sccs card
|
|
11
|
+
# to generate a file card with a css file that contains the assembled
|
|
12
|
+
# compressed css.
|
|
13
|
+
#
|
|
14
|
+
# ## Using Machines
|
|
15
|
+
# Include the Machine module in the card set that is supposed to produce the
|
|
16
|
+
# output card. If the output card should be automatically updated when a input
|
|
17
|
+
# card is changed the input card has to be in a set that includes the
|
|
18
|
+
# MachineInput module.
|
|
19
|
+
#
|
|
20
|
+
# The default machine:
|
|
21
|
+
#
|
|
22
|
+
# - uses its item cards as input cards or the card itself if there are no
|
|
23
|
+
# item cards;
|
|
24
|
+
# - can be changed by passing a block to collect_input_cards
|
|
25
|
+
# - takes the raw view of the input cards to generate the output;
|
|
26
|
+
# - can be changed by passing a block to machine_input (in the input card
|
|
27
|
+
# set)
|
|
28
|
+
# - stores the output as a .txt file in the '+machine output' card;
|
|
29
|
+
# - can be changed by passing a filetype and/or a block to
|
|
30
|
+
# store_machine_output
|
|
31
|
+
#
|
|
32
|
+
#
|
|
33
|
+
# ## How does it work?
|
|
34
|
+
# Machine cards have a '+machine input' and a '+machine output' card. The
|
|
35
|
+
# '+machine input' card is a pointer to all input cards. Including the
|
|
36
|
+
# MachineInput module creates an 'on: save' event that runs the machines of
|
|
37
|
+
# all cards that are linked to that card via the +machine input pointer.
|
|
38
|
+
module MachineClassMethods
|
|
39
|
+
attr_accessor :output_config
|
|
40
|
+
|
|
41
|
+
def collect_input_cards &block
|
|
42
|
+
define_method :engine_input, &block
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def prepare_machine_input &block
|
|
46
|
+
define_method :before_engine, &block
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def machine_engine &block
|
|
50
|
+
define_method :engine, &block
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def store_machine_output args={}, &block
|
|
54
|
+
output_config.merge!(args)
|
|
55
|
+
return unless block_given?
|
|
56
|
+
define_method :after_engine, &block
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
class << self
|
|
61
|
+
def included host_class
|
|
62
|
+
host_class.extend(MachineClassMethods)
|
|
63
|
+
host_class.output_config = { filetype: "txt" }
|
|
64
|
+
|
|
65
|
+
# for compatibility with old migrations
|
|
66
|
+
return unless Codename[:machine_output]
|
|
67
|
+
|
|
68
|
+
host_class.card_accessor :machine_output, type: :file
|
|
69
|
+
host_class.card_accessor :machine_input, type: :pointer
|
|
70
|
+
|
|
71
|
+
set_default_machine_behaviour host_class
|
|
72
|
+
define_machine_views host_class
|
|
73
|
+
define_machine_events host_class
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def define_machine_events host_class
|
|
77
|
+
event_suffix = host_class.name.tr ":", "_"
|
|
78
|
+
event_name = "reset_machine_output_#{event_suffix}".to_sym
|
|
79
|
+
host_class.event event_name, after: :expire_related, on: :save do
|
|
80
|
+
reset_machine_output
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def define_machine_views host_class
|
|
85
|
+
host_class.format do
|
|
86
|
+
view :machine_output_url do |_args|
|
|
87
|
+
machine_output_url
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def set_default_machine_behaviour host_class
|
|
93
|
+
set_default_input_collection_method host_class
|
|
94
|
+
set_default_input_preparation_method host_class
|
|
95
|
+
set_default_output_storage_method host_class
|
|
96
|
+
host_class.machine_engine { |input| input }
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def set_default_input_preparation_method host_class
|
|
100
|
+
host_class.prepare_machine_input {}
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def set_default_output_storage_method host_class
|
|
104
|
+
host_class.store_machine_output do |output|
|
|
105
|
+
filetype = host_class.output_config[:filetype]
|
|
106
|
+
file = Tempfile.new [id.to_s, ".#{filetype}"]
|
|
107
|
+
file.write output
|
|
108
|
+
file.rewind
|
|
109
|
+
Card::Auth.as_bot do
|
|
110
|
+
p = machine_output_card
|
|
111
|
+
p.file = file
|
|
112
|
+
p.save!
|
|
113
|
+
end
|
|
114
|
+
file.close
|
|
115
|
+
file.unlink
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def set_default_input_collection_method host_class
|
|
120
|
+
host_class.collect_input_cards do
|
|
121
|
+
# traverse through all levels of pointers and
|
|
122
|
+
# collect all item cards as input
|
|
123
|
+
items = [self]
|
|
124
|
+
new_input = []
|
|
125
|
+
already_extended = {} # avoid loops
|
|
126
|
+
loop_limit = 5
|
|
127
|
+
until items.empty?
|
|
128
|
+
item = items.shift
|
|
129
|
+
next if item.trash || already_extended[item.id].to_i > loop_limit
|
|
130
|
+
if item.item_cards == [item] # no pointer card
|
|
131
|
+
new_input << item
|
|
132
|
+
else
|
|
133
|
+
# item_cards instantiates non-existing cards
|
|
134
|
+
# we don't want those
|
|
135
|
+
items.insert(0, item.item_cards.reject(&:unknown?))
|
|
136
|
+
items.flatten!
|
|
137
|
+
|
|
138
|
+
new_input << item if item != self && item.known?
|
|
139
|
+
already_extended[item] = already_extended[item].to_i + 1
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
new_input
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def run_machine joint="\n"
|
|
148
|
+
before_engine
|
|
149
|
+
output =
|
|
150
|
+
input_item_cards.map do |input_card|
|
|
151
|
+
run_engine input_card
|
|
152
|
+
end.select(&:present?).join(joint)
|
|
153
|
+
after_engine output
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def run_engine input_card
|
|
157
|
+
return if input_card.is_a? Card::Set::Type::Pointer
|
|
158
|
+
if (cached = fetch_cache_card(input_card))
|
|
159
|
+
return cached.content
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
input = if input_card.respond_to? :machine_input
|
|
163
|
+
input_card.machine_input
|
|
164
|
+
else
|
|
165
|
+
input_card.format._render_raw
|
|
166
|
+
end
|
|
167
|
+
output = engine(input)
|
|
168
|
+
cache_output_part input_card, output
|
|
169
|
+
output
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def fetch_cache_card input_card, new=nil
|
|
173
|
+
new &&= { type_id: PlainTextID }
|
|
174
|
+
Card.fetch input_card.name, name, :machine_cache, new: new
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
def cache_output_part input_card, output
|
|
178
|
+
Auth.as_bot do
|
|
179
|
+
cache_card = fetch_cache_card(input_card, true)
|
|
180
|
+
cache_card.update_attributes! content: output
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def reset_machine_output
|
|
185
|
+
Auth.as_bot do
|
|
186
|
+
(moc = machine_output_card) && moc.real? && moc.delete!
|
|
187
|
+
update_input_card
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def update_machine_output
|
|
192
|
+
lock do
|
|
193
|
+
update_input_card
|
|
194
|
+
run_machine
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
def make_machine_output_coded mod=:machines
|
|
199
|
+
update_machine_output
|
|
200
|
+
Auth.as_bot do
|
|
201
|
+
output_codename =
|
|
202
|
+
machine_output_card.cardname.parts.map do |part|
|
|
203
|
+
Card[part].codename || Card[part].cardname.safe_key
|
|
204
|
+
end.join '_'
|
|
205
|
+
machine_output_card.update_attributes! codename: output_codename,
|
|
206
|
+
storage_type: :coded,
|
|
207
|
+
mod: mod
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def regenerate_machine_output
|
|
212
|
+
lock do
|
|
213
|
+
run_machine
|
|
214
|
+
end
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
def lock
|
|
218
|
+
if ok?(:read) && !(was_already_locked = locked?)
|
|
219
|
+
Auth.as_bot do
|
|
220
|
+
lock!
|
|
221
|
+
yield
|
|
222
|
+
end
|
|
223
|
+
end
|
|
224
|
+
ensure
|
|
225
|
+
unlock! unless was_already_locked
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
def lock_cache_key
|
|
229
|
+
"UPDATE-LOCK:#{key}"
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
def locked?
|
|
233
|
+
Card.cache.read lock_cache_key
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
def lock!
|
|
237
|
+
Card.cache.write lock_cache_key, true
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def unlock!
|
|
241
|
+
Card.cache.write lock_cache_key, false
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
def update_input_card
|
|
245
|
+
if DirectorRegister.running_act?
|
|
246
|
+
input_card = attach_subcard! machine_input_card
|
|
247
|
+
input_card.content = ""
|
|
248
|
+
engine_input.each { |input| input_card << input }
|
|
249
|
+
else
|
|
250
|
+
machine_input_card.items = engine_input
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
def input_item_cards
|
|
255
|
+
machine_input_card.item_cards
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
def machine_output_url
|
|
259
|
+
ensure_machine_output
|
|
260
|
+
machine_output_card.file.url # (:default, timestamp: false)
|
|
261
|
+
# to get rid of additional number in url
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
def machine_output_path
|
|
265
|
+
ensure_machine_output
|
|
266
|
+
machine_output_card.file.path
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
def ensure_machine_output
|
|
270
|
+
output = fetch trait: :machine_output
|
|
271
|
+
return if output && output.selected_content_action_id
|
|
272
|
+
update_machine_output
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
# ~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/machines/set/abstract/machine.rb ~~
|
|
277
|
+
end;end;end;end;
|