card 1.101.4 → 1.101.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/config/i18n-tasks.yml +0 -5
- data/config/initializers/01_core_extensions/array.rb +2 -1
- data/config/initializers/01_core_extensions/hash.rb +1 -0
- data/config/initializers/01_core_extensions/object.rb +15 -11
- data/config/initializers/02_patches/active_job.rb +1 -1
- data/config/initializers/02_patches/active_record.rb +1 -3
- data/config/initializers/02_patches/better_errors.rb +1 -3
- data/config/initializers/02_patches/kaminari.rb +2 -2
- data/config/initializers/deck_config.rb +1 -1
- data/config/initializers/inflections.rb +1 -0
- data/config/initializers/internationalization.rb +23 -21
- data/config/initializers/mime_types.rb +1 -0
- data/config/initializers/notification.rb +1 -0
- data/config/initializers/patches.rb +6 -5
- data/config/locales/en.yml +10 -16
- data/db/migrate/20110511221913_require_earlier_migrations.rb +1 -0
- data/db/migrate/20121111025347_require_1_10_migrations.rb +1 -0
- data/db/migrate/20121118114000_split_link_type.rb +1 -0
- data/db/migrate/20121118115000_update_link_type.rb +1 -0
- data/db/migrate/20130106052640_table_cleanup.rb +2 -2
- data/db/migrate/20130109015336_trunk_left.rb +1 -0
- data/db/migrate/20130411210957_update_codenames.rb +1 -0
- data/db/migrate/20140822073704_create_new_revision_tables.rb +1 -0
- data/db/migrate/20141001105348_move_revisions_to_actions.rb +9 -3
- data/db/migrate/20141216053032_better_index_names.rb +9 -6
- data/db/migrate/20170908114442_create_delayed_jobs.rb +1 -1
- data/db/migrate/20170908114452_increase_text_size_for_delayed_jobs.rb +1 -1
- data/db/migrate/20180514152037_add_card_virtuals_table.rb +1 -1
- data/db/migrate_core_cards/20120611203506_rails_inflection_updates.rb +2 -1
- data/db/migrate_core_cards/20130411191151_renaming_for_menu.rb +9 -9
- data/db/migrate_core_cards/20130419215612_import_help_text.rb +3 -2
- data/db/migrate_core_cards/20130823192433_add_style_cards.rb +5 -5
- data/db/migrate_core_cards/20130910183318_move_styles_to_content.rb +3 -2
- data/db/migrate_core_cards/20130920291703_update_stylesheets.rb +2 -4
- data/db/migrate_core_cards/20131016172445_common_css_patch.rb +1 -3
- data/db/migrate_core_cards/20140110193325_reset_account_request_type.rb +1 -3
- data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +12 -8
- data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +2 -4
- data/db/migrate_core_cards/20140512155840_add_script_cards.rb +16 -9
- data/db/migrate_core_cards/20140629222005_add_email_cards.rb +19 -11
- data/db/migrate_core_cards/20140725180118_config_card_updates.rb +1 -1
- data/db/migrate_core_cards/20141115034214_config_descriptions_etc.rb +1 -1
- data/db/migrate_core_cards/20141119001955_make_symlinks_relative.rb +1 -1
- data/db/migrate_core_cards/20141204061304_watchers_to_following.rb +2 -0
- data/db/migrate_core_cards/20141216155251_add_more_following_cards.rb +4 -2
- data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +1 -1
- data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +3 -4
- data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +8 -4
- data/db/migrate_core_cards/20150326205655_bootswatch_themes.rb +14 -7
- data/db/migrate_core_cards/20150429090551_search_card_context.rb +6 -4
- data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +4 -2
- data/db/migrate_core_cards/20150510031118_fix_skin_codenames.rb +2 -1
- data/db/migrate_core_cards/20150601133433_add_recent_setting_session_card.rb +3 -3
- data/db/migrate_core_cards/20150610171702_add_debugger_session_card.rb +2 -1
- data/db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb +4 -3
- data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +6 -2
- data/db/migrate_core_cards/20150807205221_create_references_for_search_cards.rb +1 -1
- data/db/migrate_core_cards/20150824135418_update_file_history.rb +2 -0
- data/db/migrate_core_cards/20160804112510_reorganize_scripts.rb +1 -1
- data/db/migrate_core_cards/20160811115836_rename_stats_to_admin.rb +1 -0
- data/db/migrate_core_cards/20160914132636_fix_mod_files.rb +2 -0
- data/db/migrate_core_cards/20161102202156_tweak_recaptcha_setting_cards.rb +6 -6
- data/db/migrate_core_cards/20161103154836_update_keys.rb +2 -1
- data/db/migrate_core_cards/20170209132834_email_test_context.rb +2 -0
- data/db/migrate_core_cards/20170314175313_add_notification_event_card.rb +3 -3
- data/db/migrate_core_cards/20170515101262_add_advanced_edit_cards.rb +1 -1
- data/db/migrate_core_cards/20170608200649_add_input_options_codename.rb +1 -1
- data/db/migrate_core_cards/20180712042655_head_rule.rb +3 -4
- data/db/migrate_core_cards/20180905061537_migrate_layouts.rb +4 -4
- data/db/migrate_core_cards/20181120200937_update_layout.rb +1 -1
- data/db/migrate_core_cards/20190320091257_upgrade_recaptcha_to_v3.rb +7 -7
- data/db/migrate_core_cards/20190424100531_update_credit_image.rb +1 -0
- data/db/migrate_core_cards/20190502130029_add_shark_and_help_desk_role.rb +15 -14
- data/db/migrate_core_cards/20190503122739_update_pristine_data.rb +1 -1
- data/db/migrate_core_cards/20190625153616_pointer_overhaul.rb +9 -5
- data/db/migrate_core_cards/20190718140126_add_guides.rb +3 -3
- data/db/migrate_core_cards/20190822093633_move_help_text_to_code.rb +1 -2
- data/db/migrate_core_cards/20190823220018_cleanup_for_decko_1_0.rb +1 -1
- data/db/migrate_core_cards/20190829093961_cardtype_grouping.rb +7 -7
- data/db/migrate_core_cards/20190902193208_input_type.rb +1 -3
- data/db/migrate_core_cards/20190909104250_add_cardtype_input_types.rb +2 -2
- data/db/migrate_core_cards/20191028135243_add_link_editor_to_tiny_mce_config.rb +1 -0
- data/db/migrate_core_cards/20191115160748_history_cleanup.rb +0 -1
- data/db/migrate_core_cards/20191118145629_codename_fixes.rb +1 -2
- data/db/migrate_core_cards/20200821231558_add_nest_list_type.rb +1 -1
- data/db/seed/new/card_actions.yml +2153 -2145
- data/db/seed/new/card_acts.yml +3 -3
- data/db/seed/new/card_references.yml +900 -858
- data/db/seed/new/cards.yml +4869 -4848
- data/db/seed/new/schema_migrations_deck_cards.yml +2 -0
- data/db/seed/test/fixtures/card_actions.yml +3563 -3547
- data/db/seed/test/fixtures/card_acts.yml +675 -675
- data/db/seed/test/fixtures/card_changes.yml +103 -103
- data/db/seed/test/fixtures/card_references.yml +2165 -2123
- data/db/seed/test/fixtures/cards.yml +7862 -7751
- data/db/seed/test/fixtures/schema_migrations_deck_cards.yml +2 -0
- data/db/test_seed.rb +33 -34
- data/lib/card.rb +1 -0
- data/lib/card/auth/token.rb +2 -2
- data/lib/card/cache.rb +2 -1
- data/lib/card/cache/all.rb +5 -0
- data/lib/card/cache/card_class.rb +3 -0
- data/lib/card/codename.rb +1 -1
- data/lib/card/content.rb +4 -8
- data/lib/card/content/chunk.rb +1 -1
- data/lib/card/content/clean.rb +4 -3
- data/lib/card/content/diff.rb +3 -2
- data/lib/card/content/diff/l_c_s/processor.rb +1 -1
- data/lib/card/content/diff/result.rb +1 -0
- data/lib/card/content/parser.rb +2 -2
- data/lib/card/content/truncate.rb +6 -6
- data/lib/card/director.rb +1 -1
- data/lib/card/director/all.rb +2 -2
- data/lib/card/director/card_methods.rb +1 -0
- data/lib/card/director/event_delay.rb +4 -6
- data/lib/card/director/run.rb +2 -0
- data/lib/card/director/stages.rb +3 -2
- data/lib/card/env/location.rb +4 -3
- data/lib/card/fetch.rb +7 -4
- data/lib/card/fetch/all.rb +1 -0
- data/lib/card/fetch/card_class.rb +35 -27
- data/lib/card/fetch/results.rb +9 -0
- data/lib/card/fetch/retrieve.rb +2 -0
- data/lib/card/fetch/store.rb +1 -0
- data/lib/card/format/content.rb +1 -3
- data/lib/card/format/error.rb +6 -1
- data/lib/card/format/method_delegation.rb +10 -2
- data/lib/card/format/nest.rb +2 -1
- data/lib/card/format/nest/fetch.rb +2 -0
- data/lib/card/format/nesting/mode.rb +1 -1
- data/lib/card/format/nesting/subformat.rb +2 -1
- data/lib/card/format/render.rb +2 -2
- data/lib/card/format/wrapper.rb +1 -1
- data/lib/card/lexicon.rb +3 -2
- data/lib/card/mark.rb +17 -15
- data/lib/card/model/save_helper.rb +3 -3
- data/lib/card/name.rb +10 -9
- data/lib/card/name/all.rb +3 -0
- data/lib/card/name/all/descendants.rb +3 -4
- data/lib/card/name/card_class.rb +2 -0
- data/lib/card/name/fields_and_traits.rb +4 -2
- data/lib/card/name/name_variants.rb +0 -1
- data/lib/card/query.rb +17 -17
- data/lib/card/query/card_query/interpretation.rb +1 -0
- data/lib/card/query/card_query/match_attributes.rb +2 -1
- data/lib/card/query/card_query/normalization.rb +1 -0
- data/lib/card/query/card_query/reference_attributes.rb +1 -1
- data/lib/card/query/join.rb +1 -1
- data/lib/card/query/value/match_value.rb +1 -0
- data/lib/card/reference/all.rb +7 -2
- data/lib/card/rule/all.rb +1 -0
- data/lib/card/rule/cache.rb +2 -0
- data/lib/card/set/advanced_api.rb +3 -2
- data/lib/card/set/event.rb +2 -2
- data/lib/card/set/event/all.rb +6 -0
- data/lib/card/set/event/delayed_event.rb +6 -6
- data/lib/card/set/event/options.rb +1 -0
- data/lib/card/set/format/abstract_format/view_definition.rb +1 -0
- data/lib/card/set/format/abstract_format/view_opts.rb +1 -0
- data/lib/card/set/i18n_scope.rb +4 -2
- data/lib/card/set/inheritance.rb +0 -1
- data/lib/card/set/loader.rb +0 -2
- data/lib/card/set/pattern/base.rb +3 -2
- data/lib/card/set/pattern/class_methods.rb +2 -2
- data/lib/card/set/required_field.rb +4 -1
- data/lib/card/setting.rb +3 -0
- data/lib/card/subcards.rb +3 -4
- data/lib/card/tasks/card/file_card_creator/abstract_file_card/ruby_file.rb +1 -1
- data/lib/card/tasks/card/file_card_creator/output_helper.rb +2 -4
- data/lib/card/tasks/card/migrate.rake +2 -2
- data/lib/card/view/cache.rb +6 -8
- data/lib/card/view/cache/cache_action.rb +1 -2
- data/lib/card/view/cache/stub.rb +1 -1
- data/lib/card/view/options.rb +3 -3
- data/lib/card/view/permission.rb +1 -0
- data/lib/cardio.rb +1 -1
- data/lib/cardio/migration.rb +1 -1
- data/lib/cardio/migration/deck_structure.rb +2 -4
- data/lib/cardio/migration/import.rb +2 -2
- data/lib/cardio/migration/import/import_data.rb +1 -0
- data/lib/cardio/mod.rb +1 -0
- data/lib/cardio/mod/load_strategy.rb +2 -4
- data/lib/cardio/mod/loader/set_loader.rb +2 -1
- data/lib/cardio/mod/module_template.rb +1 -0
- data/lib/cardio/modfiles.rb +2 -4
- data/lib/cardio/schema.rb +2 -4
- data/lib/cardio/utils.rb +1 -0
- data/lib/generators/card/format/format_generator.rb +1 -1
- data/lib/generators/card/migration/migration_generator.rb +2 -1
- data/lib/generators/card/mod/mod_generator.rb +3 -2
- data/lib/generators/card/set/set_generator.rb +3 -3
- data/lib/generators/card/template/template_generator.rb +1 -1
- data/mod/admin/set/self/admin.rb +6 -3
- data/mod/admin/set/self/trash.rb +1 -0
- data/mod/admin/spec/set/self/admin_spec.rb +4 -4
- data/mod/core/set/all/abort.rb +5 -5
- data/mod/core/set/all/assign_attributes.rb +5 -8
- data/mod/core/set/all/codename.rb +1 -0
- data/mod/core/set/all/collection.rb +4 -6
- data/mod/core/set/all/content.rb +3 -2
- data/mod/core/set/all/contextual_content.rb +2 -4
- data/mod/core/set/all/name_events.rb +13 -6
- data/mod/core/set/all/reference_events.rb +2 -0
- data/mod/core/set/all/states.rb +3 -3
- data/mod/core/set/all/subcards.rb +1 -1
- data/mod/core/set/all/trash.rb +5 -1
- data/mod/core/set/all/type.rb +4 -2
- data/mod/core/set/all/utils.rb +1 -1
- data/mod/core/spec/set/all/assign_attributes_spec.rb +10 -9
- data/mod/core/spec/set/all/clean_me_spec.rb +19 -4
- data/mod/core/spec/set/all/collection_spec.rb +1 -1
- data/mod/core/spec/set/all/export_spec.rb +1 -0
- data/mod/core/spec/set/all/initialize_spec.rb +11 -11
- metadata +4 -4
data/lib/card/view/permission.rb
CHANGED
data/lib/cardio.rb
CHANGED
data/lib/cardio/migration.rb
CHANGED
@@ -14,7 +14,7 @@ module Cardio
|
|
14
14
|
# Migrations are subclasses of Cardio::Migration or Card::CoreMigration
|
15
15
|
# but they don't inherit the @type. The method below solves this problem.
|
16
16
|
def type
|
17
|
-
@type ||
|
17
|
+
@type || ancestors[1]&.type
|
18
18
|
end
|
19
19
|
|
20
20
|
def find_unused_name base_name
|
@@ -112,9 +112,9 @@ module Cardio
|
|
112
112
|
def parse_and_symbolize json
|
113
113
|
parsed = JSON.parse(json)
|
114
114
|
case parsed
|
115
|
-
when Hash
|
115
|
+
when Hash
|
116
116
|
parsed.deep_symbolize_keys
|
117
|
-
when Array
|
117
|
+
when Array
|
118
118
|
parsed.map(&:deep_symbolize_keys)
|
119
119
|
else
|
120
120
|
parsed
|
data/lib/cardio/mod.rb
CHANGED
@@ -56,10 +56,8 @@ module Cardio
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
def each_mod_dir module_type
|
60
|
-
@mod_dirs.each module_type
|
61
|
-
yield base_dir
|
62
|
-
end
|
59
|
+
def each_mod_dir module_type, &block
|
60
|
+
@mod_dirs.each module_type, &block
|
63
61
|
end
|
64
62
|
|
65
63
|
def each_file_in_dir base_dir, subdir=nil
|
@@ -53,7 +53,8 @@ module Cardio
|
|
53
53
|
|
54
54
|
def add_explicit_format_modules
|
55
55
|
@content.gsub!(/^ *format +:?(\w+)? *do *$/) do
|
56
|
-
format_name =
|
56
|
+
format_name = Regexp.last_match(1)
|
57
|
+
format_name = format_name.blank? ? nil : format_name.to_sym
|
57
58
|
"module #{module_name format_name}; " \
|
58
59
|
"module_parent.send :register_set_format, "\
|
59
60
|
"#{format_class format_name}, self; "\
|
data/lib/cardio/modfiles.rb
CHANGED
@@ -20,11 +20,9 @@ module Cardio
|
|
20
20
|
each_gem_mod_path(&block)
|
21
21
|
end
|
22
22
|
|
23
|
-
def each_simple_mod_path
|
23
|
+
def each_simple_mod_path &block
|
24
24
|
paths["mod"].each do |mods_path|
|
25
|
-
Dir.glob("#{mods_path}/*").each
|
26
|
-
yield single_mod_path
|
27
|
-
end
|
25
|
+
Dir.glob("#{mods_path}/*").each(&block)
|
28
26
|
end
|
29
27
|
end
|
30
28
|
|
data/lib/cardio/schema.rb
CHANGED
@@ -37,14 +37,12 @@ module Cardio
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
def with_suffix type
|
40
|
+
def with_suffix type, &block
|
41
41
|
return yield unless (new_suffix = Cardio.schema_suffix type) &&
|
42
42
|
new_suffix.present?
|
43
43
|
|
44
44
|
original_name = ActiveRecord::Base.schema_migrations_table_name
|
45
|
-
with_migration_table "#{original_name}#{new_suffix}", original_name
|
46
|
-
yield
|
47
|
-
end
|
45
|
+
with_migration_table "#{original_name}#{new_suffix}", original_name, &block
|
48
46
|
end
|
49
47
|
|
50
48
|
def with_migration_table new_table_name, old_table_name
|
data/lib/cardio/utils.rb
CHANGED
@@ -5,7 +5,7 @@ require "generators/card"
|
|
5
5
|
class Card
|
6
6
|
module Generators
|
7
7
|
class FormatGenerator < NamedBase
|
8
|
-
source_root File.expand_path("
|
8
|
+
source_root File.expand_path("templates", __dir__)
|
9
9
|
|
10
10
|
argument :module_name, required: true
|
11
11
|
class_option "core", type: :boolean, aliases: "-c",
|
@@ -5,7 +5,7 @@ require "generators/card"
|
|
5
5
|
class Card
|
6
6
|
module Generators
|
7
7
|
class MigrationGenerator < MigrationBase
|
8
|
-
source_root File.expand_path("
|
8
|
+
source_root File.expand_path("templates", __dir__)
|
9
9
|
|
10
10
|
class_option "core", type: :boolean, aliases: "-c",
|
11
11
|
default: false, group: :runtime,
|
@@ -15,6 +15,7 @@ class Card
|
|
15
15
|
migration_type = options["core"] ? :core_cards : :deck_cards
|
16
16
|
mig_paths = Cardio.migration_paths(migration_type)
|
17
17
|
raise "No migration directory for #{migration_type}" if mig_paths.blank?
|
18
|
+
|
18
19
|
set_local_assigns!
|
19
20
|
migration_template @migration_template,
|
20
21
|
File.join(mig_paths.first, "#{file_name}.rb")
|
@@ -11,15 +11,16 @@ class Card
|
|
11
11
|
desc: "create mod Card gem"
|
12
12
|
|
13
13
|
def create_mod_tree
|
14
|
-
create_empty_tree mod_path => { lib:
|
14
|
+
create_empty_tree mod_path => { lib: %i[javascript stylesheets],
|
15
15
|
public: [:assets],
|
16
|
-
set:
|
16
|
+
set: [] }
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def create_empty_tree structure
|
22
22
|
return unless structure.present?
|
23
|
+
|
23
24
|
if structure.is_a?(Hash)
|
24
25
|
structure.each_pair do |k, v|
|
25
26
|
empty_directory k.to_s
|
@@ -5,7 +5,7 @@ require "generators/card"
|
|
5
5
|
class Card
|
6
6
|
module Generators
|
7
7
|
class SetGenerator < NamedBase
|
8
|
-
source_root File.expand_path("
|
8
|
+
source_root File.expand_path("templates", __dir__)
|
9
9
|
|
10
10
|
argument :set_pattern, required: true
|
11
11
|
argument :anchors, required: true, type: :array
|
@@ -14,8 +14,8 @@ class Card
|
|
14
14
|
desc: "create set files in Card gem"
|
15
15
|
|
16
16
|
class_option "spec-only", type: :boolean,
|
17
|
-
|
18
|
-
|
17
|
+
default: false, group: :runtime,
|
18
|
+
desc: "create only spec file"
|
19
19
|
|
20
20
|
def create_files
|
21
21
|
template "set_template.erb", set_path unless options["spec-only"]
|
@@ -7,7 +7,7 @@ class Card
|
|
7
7
|
# A decko generator that creates a haml template for a view.
|
8
8
|
# Run "decko generate card:template" to get usage information.
|
9
9
|
class TemplateGenerator < NamedBase
|
10
|
-
source_root File.expand_path("
|
10
|
+
source_root File.expand_path("templates", __dir__)
|
11
11
|
|
12
12
|
argument :set_pattern, required: true
|
13
13
|
argument :anchors, required: true, type: :array
|
data/mod/admin/set/self/admin.rb
CHANGED
@@ -4,17 +4,18 @@ basket :tasks
|
|
4
4
|
|
5
5
|
def run_task_from_task_basket task
|
6
6
|
task = task.to_sym
|
7
|
-
task_data = tasks.find {|h| h[:name].to_sym == task.to_sym}
|
7
|
+
task_data = tasks.find { |h| h[:name].to_sym == task.to_sym }
|
8
8
|
if !irreversibles_tasks_allowed? && task_data[:irreversible]
|
9
9
|
not_allowed task_data[:stats][:link_text]
|
10
|
-
|
11
|
-
task_data[:execute_policy].call
|
10
|
+
elsif task_data
|
11
|
+
task_data[:execute_policy].call
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
event :admin_tasks, :initialize, on: :update do
|
16
16
|
return unless (task = Env.params[:task])
|
17
17
|
raise Card::Error::PermissionDenied, self unless Auth.always_ok?
|
18
|
+
|
18
19
|
case task.to_sym
|
19
20
|
when :clear_cache then Card::Cache.reset_all
|
20
21
|
when :repair_references then Card::Reference.repair_all
|
@@ -95,6 +96,7 @@ format :html do
|
|
95
96
|
link_text: "clear cache", task: "clear_cache" }
|
96
97
|
]
|
97
98
|
return stats unless oldmem
|
99
|
+
|
98
100
|
stats << { title: "memory prev", count: oldmem, unit: "M" }
|
99
101
|
stats << { title: "memory diff", count: newmem - oldmem, unit: "M" }
|
100
102
|
stats
|
@@ -104,6 +106,7 @@ format :html do
|
|
104
106
|
res = [(args[:title] || "")]
|
105
107
|
res << "#{count(args[:count])}#{args[:unit]}"
|
106
108
|
return res unless args[:task]
|
109
|
+
|
107
110
|
res << link_to_card(:admin, (args[:link_text] || args[:task]),
|
108
111
|
path: { action: :update, task: args[:task] })
|
109
112
|
res
|
data/mod/admin/set/self/trash.rb
CHANGED
@@ -8,8 +8,8 @@ describe Card::Set::Self::Admin do
|
|
8
8
|
assert_view_select @core, "table"
|
9
9
|
end
|
10
10
|
|
11
|
-
|
12
|
-
let(:admin) {Card[:admin]}
|
11
|
+
describe "#update" do
|
12
|
+
let(:admin) { Card[:admin] }
|
13
13
|
|
14
14
|
def run_admin_task task
|
15
15
|
Card::Auth.as_bot do
|
@@ -29,14 +29,14 @@ describe Card::Set::Self::Admin do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
context "irreversible tasks allowed" do
|
32
|
-
around
|
32
|
+
around do |example|
|
33
33
|
Cardio.config.allow_irreversible_admin_tasks = true
|
34
34
|
example.run
|
35
35
|
Cardio.config.allow_irreversible_admin_tasks = false
|
36
36
|
end
|
37
37
|
|
38
38
|
it "triggers empty trash (with right params)" do
|
39
|
-
Card::Auth.as_bot {Card["A"].delete!}
|
39
|
+
Card::Auth.as_bot { Card["A"].delete! }
|
40
40
|
|
41
41
|
expect(Card.where(trash: true)).not_to be_empty
|
42
42
|
run_admin_task :empty_trash
|
data/mod/core/set/all/abort.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
# The Card#abort method is for cleanly exiting an action without continuing
|
3
2
|
# to process any further events.
|
4
3
|
#
|
@@ -33,9 +32,10 @@ end
|
|
33
32
|
private
|
34
33
|
|
35
34
|
def handle_abort_error e
|
36
|
-
|
35
|
+
case e.status
|
36
|
+
when :triumph
|
37
37
|
@supercard ? raise(e) : true
|
38
|
-
|
38
|
+
when :success
|
39
39
|
abort_success
|
40
40
|
end
|
41
41
|
end
|
@@ -51,12 +51,12 @@ end
|
|
51
51
|
|
52
52
|
# this is an override of standard rails behavior that rescues abort
|
53
53
|
# makes it so that :success abortions do not rollback
|
54
|
-
def with_transaction_returning_status
|
54
|
+
def with_transaction_returning_status &block
|
55
55
|
status = nil
|
56
56
|
self.class.transaction do
|
57
57
|
add_to_transaction
|
58
58
|
remember_transaction_record_state
|
59
|
-
status = abortable
|
59
|
+
status = abortable(&block)
|
60
60
|
raise ActiveRecord::Rollback unless status
|
61
61
|
end
|
62
62
|
status
|
@@ -5,8 +5,7 @@ def assign_attributes args={}
|
|
5
5
|
|
6
6
|
assign_with_subcards args do
|
7
7
|
assign_with_set_modules args do
|
8
|
-
|
9
|
-
super params
|
8
|
+
super prepare_assignment_params(args)
|
10
9
|
end
|
11
10
|
end
|
12
11
|
end
|
@@ -40,6 +39,7 @@ end
|
|
40
39
|
|
41
40
|
def prepare_assignment_args args
|
42
41
|
return {} unless args
|
42
|
+
|
43
43
|
args = args.symbolize_keys
|
44
44
|
normalize_type_attributes args
|
45
45
|
stash_set_specific_attributes args
|
@@ -47,8 +47,7 @@ def prepare_assignment_args args
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def assign_with_set_modules args
|
50
|
-
|
51
|
-
return yield unless set_changed
|
50
|
+
return yield unless args[:name] || args[:type_id]
|
52
51
|
|
53
52
|
refresh_set_modules { yield }
|
54
53
|
end
|
@@ -56,9 +55,7 @@ end
|
|
56
55
|
def assign_with_subcards args
|
57
56
|
subcard_args = extract_subcard_args! args
|
58
57
|
yield
|
59
|
-
|
60
|
-
return unless subcard_args.present?
|
61
|
-
subcards.add subcard_args
|
58
|
+
subcards.add subcard_args if subcard_args.present?
|
62
59
|
end
|
63
60
|
|
64
61
|
def refresh_set_modules
|
@@ -96,7 +93,7 @@ def type_id_from_codename type_code
|
|
96
93
|
end
|
97
94
|
|
98
95
|
def type_id_from_cardname type_name
|
99
|
-
type_id_or_error(type_name) {
|
96
|
+
type_id_or_error(type_name) { type_name.card_id }
|
100
97
|
end
|
101
98
|
|
102
99
|
def type_id_or_error val
|
@@ -1,10 +1,8 @@
|
|
1
1
|
# shared methods for card collections (Pointers, Searches, Sets, etc.)
|
2
2
|
module ClassMethods
|
3
|
-
def search spec, comment=nil
|
3
|
+
def search spec, comment=nil, &block
|
4
4
|
results = ::Card::Query.run(spec, comment)
|
5
|
-
if block_given? && results.is_a?(Array)
|
6
|
-
results.each { |result| yield result }
|
7
|
-
end
|
5
|
+
results.each(&block) if block_given? && results.is_a?(Array)
|
8
6
|
results
|
9
7
|
end
|
10
8
|
|
@@ -14,11 +12,11 @@ module ClassMethods
|
|
14
12
|
search spec.merge(return: "count")
|
15
13
|
end
|
16
14
|
|
17
|
-
def find_each options={}
|
15
|
+
def find_each options={}, &block
|
18
16
|
# this is a copy from rails (3.2.16) and is needed because this
|
19
17
|
# is performed by a relation (ActiveRecord::Relation)
|
20
18
|
find_in_batches(options) do |records|
|
21
|
-
records.each
|
19
|
+
records.each(&block)
|
22
20
|
end
|
23
21
|
end
|
24
22
|
|
data/mod/core/set/all/content.rb
CHANGED
@@ -67,7 +67,8 @@ end
|
|
67
67
|
format do
|
68
68
|
ONE_LINE_CHARACTER_LIMIT = 60
|
69
69
|
|
70
|
-
|
70
|
+
# override to customize by set
|
71
|
+
def chunk_list
|
71
72
|
:default
|
72
73
|
end
|
73
74
|
|
@@ -117,7 +118,7 @@ format do
|
|
117
118
|
if text.size <= limit
|
118
119
|
text
|
119
120
|
else
|
120
|
-
text[0..(limit - 3)]
|
121
|
+
"#{text[0..(limit - 3)]}..."
|
121
122
|
end
|
122
123
|
end
|
123
124
|
|
@@ -15,10 +15,8 @@ format do
|
|
15
15
|
card.context_card
|
16
16
|
end
|
17
17
|
|
18
|
-
def with_context context_card
|
19
|
-
card.with_context context_card
|
20
|
-
yield
|
21
|
-
end
|
18
|
+
def with_context context_card, &block
|
19
|
+
card.with_context context_card, &block
|
22
20
|
end
|
23
21
|
|
24
22
|
def contextual_content context_card, options={}
|