card 1.105.6 → 1.107.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/config/environments/development.rb +0 -3
  4. data/config/environments/production.rb +0 -3
  5. data/config/environments/test.rb +0 -2
  6. data/config/initializers/02_patches/active_record.rb +2 -2
  7. data/db/schema.rb +5 -13
  8. data/lib/card/auth/current.rb +1 -1
  9. data/lib/card/auth/permissions.rb +1 -9
  10. data/lib/card/codename.rb +8 -0
  11. data/lib/card/director/store.rb +1 -1
  12. data/lib/card/fetch/all.rb +1 -1
  13. data/lib/card/model/save_helper/save_helper_helper.rb +6 -2
  14. data/lib/card/query/abstract_query/tie.rb +16 -2
  15. data/lib/card/query/card_query/interpretation.rb +26 -3
  16. data/lib/card/query/reference_query.rb +4 -4
  17. data/lib/card/set.rb +27 -0
  18. data/lib/card/view/permission.rb +1 -1
  19. data/lib/cardio/command/rspec_command/parser.rb +1 -9
  20. data/lib/cardio/command.rb +1 -0
  21. data/lib/cardio/generators/base.rb +1 -1
  22. data/lib/cardio/migration/assumption.rb +29 -0
  23. data/lib/cardio/migration/schema.rb +12 -0
  24. data/lib/cardio/migration/stamp.rb +31 -0
  25. data/lib/cardio/migration/transform.rb +44 -0
  26. data/lib/cardio/migration.rb +64 -73
  27. data/lib/cardio/mod/dirs.rb +6 -5
  28. data/lib/cardio/mod/eat/edibles.rb +9 -3
  29. data/lib/cardio/mod/eat.rb +2 -1
  30. data/lib/cardio/mod/sow/card_source.rb +48 -0
  31. data/lib/cardio/mod/sow/yaml_dump.rb +25 -0
  32. data/lib/cardio/mod/sow.rb +22 -62
  33. data/lib/cardio/mod.rb +8 -4
  34. data/lib/cardio/railtie.rb +6 -6
  35. data/lib/cardio/seed.rb +3 -6
  36. data/lib/generators/deck/templates/cypress.json.erb +1 -1
  37. data/lib/generators/migration/USAGE +10 -11
  38. data/lib/generators/migration/migration_generator.rb +26 -24
  39. data/lib/generators/migration/templates/card_migration.erb +1 -3
  40. data/mod/core/config/admin.yml +10 -0
  41. data/mod/core/data/fixtures/real/transform_migrations.yml +351 -0
  42. data/mod/core/data/real.yml +0 -1
  43. data/mod/core/data/recode.yml +7 -0
  44. data/{db/migrate → mod/core/data/schema}/20110511221913_require_earlier_migrations.rb +3 -3
  45. data/{db/migrate → mod/core/data/schema}/20120105203350_require_1_8_migrations.rb +1 -1
  46. data/{db/migrate → mod/core/data/schema}/20121111025347_require_1_10_migrations.rb +1 -1
  47. data/{db/migrate → mod/core/data/schema}/20121118114000_split_link_type.rb +1 -1
  48. data/{db/migrate → mod/core/data/schema}/20121118115000_update_link_type.rb +1 -1
  49. data/{db/migrate → mod/core/data/schema}/20130106052640_table_cleanup.rb +1 -1
  50. data/{db/migrate → mod/core/data/schema}/20130109015336_trunk_left.rb +1 -1
  51. data/{db/migrate → mod/core/data/schema}/20140822073704_create_new_revision_tables.rb +1 -1
  52. data/mod/core/data/schema/20141001105348_move_revisions_to_actions.rb +87 -0
  53. data/{db/migrate → mod/core/data/schema}/20141216053032_better_index_names.rb +10 -4
  54. data/{db/migrate → mod/core/data/schema}/20150724210803_add_comment_to_actions.rb +1 -1
  55. data/{db/migrate → mod/core/data/schema}/20151105225559_more_space_for_db_content.rb +1 -1
  56. data/{db/migrate → mod/core/data/schema}/20160122153608_new_indices.rb +1 -1
  57. data/{db/migrate → mod/core/data/schema}/20170908114442_create_delayed_jobs.rb +1 -1
  58. data/{db/migrate → mod/core/data/schema}/20170908114452_increase_text_size_for_delayed_jobs.rb +1 -1
  59. data/{db/migrate → mod/core/data/schema}/20180514152037_add_card_virtuals_table.rb +1 -1
  60. data/{db/migrate → mod/core/data/schema}/20190116170824_add_left_key_to_card_virtuals.rb +1 -1
  61. data/{db/migrate → mod/core/data/schema}/20190131223248_add_codename_index.rb +1 -1
  62. data/{db/migrate → mod/core/data/schema}/20190929202325_rename_present_in_reference_table.rb +1 -1
  63. data/{db/migrate → mod/core/data/schema}/20200718051236_compound_names_do_not_store_name_and_key.rb +1 -1
  64. data/{db/migrate → mod/core/data/schema}/20200805200729_add_unique_pair_indices.rb +1 -3
  65. data/{db/migrate → mod/core/data/schema}/20211128040849_virtuals_updated_at.rb +1 -1
  66. data/{db/migrate → mod/core/data/schema}/20221031182227_remove_referee_key_requirement.rb +1 -1
  67. data/mod/core/data/test.yml +4 -4
  68. data/{db/migrate_core_cards → mod/core/data/transform}/20120611203506_rails_inflection_updates.rb +10 -6
  69. data/mod/core/data/transform/20130411191151_renaming_for_menu.rb +17 -0
  70. data/mod/core/data/transform/20130920214038_jsonize_tinymce.rb +28 -0
  71. data/{db/migrate_core_cards → mod/core/data/transform}/20130920291703_update_stylesheets.rb +1 -1
  72. data/mod/core/data/transform/20140307231621_user_data_to_cards.rb +40 -0
  73. data/{db/migrate_core_cards → mod/core/data/transform}/20140317035504_account_requests_to_signups.rb +1 -1
  74. data/{db/migrate_core_cards → mod/core/data/transform}/20141204061304_watchers_to_following.rb +2 -2
  75. data/{db/migrate_core_cards → mod/core/data/transform}/20141208132416_partial_reference_type.rb +1 -1
  76. data/{db/migrate_core_cards → mod/core/data/transform}/20150220134731_following_to_follow_rule.rb +1 -1
  77. data/{db/migrate_core_cards → mod/core/data/transform}/20150429090551_search_card_context.rb +1 -1
  78. data/{db/migrate_core_cards → mod/core/data/transform}/20150510031118_fix_skin_codenames.rb +2 -2
  79. data/{db/migrate_core_cards → mod/core/data/transform}/20150724123438_update_file_and_image_cards.rb +2 -2
  80. data/{db/migrate_core_cards → mod/core/data/transform}/20150807205221_create_references_for_search_cards.rb +1 -1
  81. data/mod/core/data/transform/20150824135418_update_file_history.rb +33 -0
  82. data/{db/migrate_core_cards → mod/core/data/transform}/20160811115836_rename_stats_to_admin.rb +1 -1
  83. data/{db/migrate_core_cards → mod/core/data/transform}/20160914132636_fix_mod_files.rb +1 -1
  84. data/{db/migrate_core_cards → mod/core/data/transform}/20161103154836_update_keys.rb +3 -3
  85. data/{db/migrate_core_cards → mod/core/data/transform}/20170830210517_correct_signup_success_message.rb +1 -1
  86. data/{db/migrate_core_cards → mod/core/data/transform}/20180905061537_migrate_layouts.rb +1 -1
  87. data/{db/migrate_core_cards → mod/core/data/transform}/20190125125150_add_script_rules_card.rb +1 -1
  88. data/{db/migrate_core_cards → mod/core/data/transform}/20190320091257_upgrade_recaptcha_to_v3.rb +1 -1
  89. data/{db/migrate_core_cards → mod/core/data/transform}/20190322095534_remove_toolbar_cards.rb +1 -1
  90. data/{db/migrate_core_cards → mod/core/data/transform}/20190502130029_add_shark_and_help_desk_role.rb +2 -1
  91. data/{db/migrate_core_cards → mod/core/data/transform}/20190528131330_enabled_roles.rb +1 -1
  92. data/{db/migrate_core_cards → mod/core/data/transform}/20190625153616_pointer_overhaul.rb +1 -1
  93. data/{db/migrate_core_cards → mod/core/data/transform}/20190718140126_add_guides.rb +1 -1
  94. data/{db/migrate_core_cards → mod/core/data/transform}/20190822093633_move_help_text_to_code.rb +3 -1
  95. data/{db/migrate_core_cards → mod/core/data/transform}/20190829205148_remove_add_help.rb +1 -1
  96. data/mod/core/data/transform/20190902193208_input_type.rb +10 -0
  97. data/{db/migrate_core_cards → mod/core/data/transform}/20190904174403_token_upgrade.rb +2 -2
  98. data/{db/migrate_core_cards → mod/core/data/transform}/20190909104250_add_cardtype_input_types.rb +2 -2
  99. data/{db/migrate_core_cards → mod/core/data/transform}/20191115160748_history_cleanup.rb +1 -1
  100. data/mod/core/data/transform/20230502094848_repair_all_references.rb +7 -0
  101. data/mod/core/lib/admin_item.rb +21 -0
  102. data/mod/core/lib/tasks/card/migrate.rake +79 -114
  103. data/mod/core/lib/tasks/card/seed.rake +1 -1
  104. data/mod/core/lib/tasks/card.rake +57 -28
  105. data/mod/core/set/abstract/task_table.rb +16 -0
  106. data/mod/core/set/all/admin.rb +108 -0
  107. data/mod/core/set/self/admin.rb +3 -12
  108. data/mod/core/set/self/mod.rb +39 -0
  109. data/mod/core/set/self/version.rb +1 -1
  110. data/mod/core/set/type/mod.rb +227 -0
  111. data/mod/core/spec/set/all/admin_spec.rb +34 -0
  112. data/mod/core/spec/set/type/mod_spec.rb +30 -0
  113. data/mod/core/spec/shared_examples/mod_admin_config.rb +10 -0
  114. metadata +78 -72
  115. data/db/migrate/20130411210957_update_codenames.rb +0 -15
  116. data/db/migrate/20141001105348_move_revisions_to_actions.rb +0 -70
  117. data/db/migrate/20141121172918_rename_card_migration_table.rb +0 -15
  118. data/db/migrate/20141208132159_remove_present_from_reference_table.rb +0 -9
  119. data/db/migrate_core_cards/20130411191151_renaming_for_menu.rb +0 -47
  120. data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +0 -15
  121. data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +0 -28
  122. data/db/migrate_core_cards/20150824135418_update_file_history.rb +0 -24
  123. data/db/migrate_core_cards/20190902193208_input_type.rb +0 -15
  124. data/db/migrate_core_cards/20230502094848_repair_all_references.rb +0 -7
  125. data/lib/cardio/migration/core.rb +0 -11
  126. data/lib/cardio/migration/deck.rb +0 -0
  127. data/lib/cardio/migration/deck_structure.rb +0 -19
  128. data/lib/cardio/schema.rb +0 -96
  129. data/mod/core/data/fixtures/real/schema_migrations_core_cards.yml +0 -347
  130. data/mod/core/data/fixtures/real/schema_migrations_deck.yml +0 -1
  131. data/mod/core/data/fixtures/real/schema_migrations_deck_cards.yml +0 -5
@@ -0,0 +1,227 @@
1
+ # TODO: We can't detect file removal for folder group
2
+
3
+ include_set Abstract::List
4
+ include_set Abstract::TaskTable
5
+
6
+ format :html do
7
+ view :core do
8
+ render_section_views(%i[
9
+ description
10
+ settings
11
+ configurations
12
+ cardtypes
13
+ styles
14
+ scripts
15
+ tasks
16
+ views
17
+ depends_on
18
+ ].select { |name| card.send("#{name}?") })
19
+ end
20
+
21
+ view :description do
22
+ content_tag(:p, card.description)
23
+ end
24
+
25
+ def render_section_views list
26
+ list.map { |view_name| send("render_#{view_name}") }.compact.join "<br/>"
27
+ end
28
+
29
+ view :settings do
30
+ list_section "Settings", card.settings
31
+ end
32
+
33
+ view :cardtypes do
34
+ nested_list_section "Cardtypes", card.cardtypes
35
+ end
36
+
37
+ view :configurations do
38
+ return unless card.configurations
39
+
40
+ card.configurations.map do |category, names|
41
+ list_section("#{category.capitalize} Configuration",
42
+ names.map(&:to_sym))
43
+ end.join " "
44
+ end
45
+
46
+ view :tasks do
47
+ tasks = card.tasks
48
+ return unless tasks.present?
49
+
50
+ section "Tasks", task_table(tasks)
51
+ end
52
+
53
+ view :styles do
54
+ style = card.fetch :style
55
+ return unless style
56
+ section "Styles", nest(style, view: :core)
57
+ end
58
+
59
+ view :scripts do
60
+ style = card.fetch :script
61
+ return unless style
62
+ section "Scripts", nest(style, view: :core)
63
+ end
64
+
65
+ view :gem_info do
66
+ return unless card.mod&.spec
67
+ properties =
68
+ %w[name summary version authors description email homepage].map do |property|
69
+ "#{property}: #{card.mod.spec.send(property)}"
70
+ end
71
+
72
+ section "Gem info",
73
+ list_group(properties) +
74
+ accordion_item("files",
75
+ body: list_group(card.mod.spec.files),
76
+ context: "files") +
77
+ accordion_item("depends on ",
78
+ body: list_section_content(card.depends_on),
79
+ context: "depends_on")
80
+ end
81
+
82
+ view :depends_on do
83
+ list_section "Depends on", card.depends_on
84
+ end
85
+
86
+ view :views do
87
+ section "Views", list_group(card.views)
88
+ end
89
+ end
90
+
91
+ def settings?
92
+ settings.present?
93
+ end
94
+
95
+ def cardtypes?
96
+ cardtypes.present?
97
+ end
98
+
99
+ def configurations?
100
+ configurations.present?
101
+ end
102
+
103
+ def tasks?
104
+ tasks.present?
105
+ end
106
+
107
+ def styles?
108
+ fetch(:style).present?
109
+ end
110
+
111
+ def scripts?
112
+ fetch(:script).present?
113
+ end
114
+
115
+ def depends_on?
116
+ mod&.spec&.dependencies.present?
117
+ end
118
+
119
+ def description?
120
+ true
121
+ end
122
+
123
+ def views?
124
+ views.present?
125
+ end
126
+
127
+ def depends_on
128
+ mod&.spec&.dependencies
129
+ &.map { |dep| dep.name }
130
+ &.select { |name| name.starts_with? "card-mod" }
131
+ &.map { |name| "mod_#{name[8..-1]}" }
132
+ end
133
+
134
+ def tasks
135
+ basket[:tasks].select { |_k, v| v[:mod] == modname.to_sym }
136
+ end
137
+
138
+ def settings
139
+ return unless admin_config
140
+
141
+ admin_config["settings"]&.map do |setting|
142
+ setting.to_sym
143
+ end
144
+ end
145
+
146
+ def configurations
147
+ return unless admin_config
148
+
149
+ admin_config["configurations"]
150
+ end
151
+
152
+ def cardtypes
153
+ return unless admin_config
154
+
155
+ config_codenames_grouped_by_title admin_config_section(:cardtypes)
156
+ end
157
+
158
+ def views
159
+ return unless admin_config
160
+
161
+ admin_config["views"]
162
+ end
163
+
164
+ def description
165
+ default = if mod&.spec&.description.present?
166
+ mod&.spec&.description
167
+ else
168
+ mod&.spec&.summary
169
+ end
170
+ t("#{modname}_mod_description", default: default)
171
+ end
172
+
173
+ def modname
174
+ codename.to_s.gsub(/^mod_/, "")
175
+ end
176
+
177
+ def mod
178
+ @mod ||= Cardio::Mod.fetch modname
179
+ end
180
+
181
+ def admin_config_section category
182
+ admin_config_objects_by_category[category.to_s]
183
+ end
184
+
185
+ def admin_config
186
+ @admin_config ||= load_admin_config
187
+ end
188
+
189
+ def admin_config_objects
190
+ @admin_config_objects ||= admin_config.map do |category, values|
191
+ if values.is_a? Hash
192
+ values.map do |subcategory, subvalues|
193
+ create_admin_items mod, category, subcategory, subvalues
194
+ end.flatten
195
+ else
196
+ create_admin_items mod, category, nil, values
197
+ end
198
+ end.flatten
199
+ end
200
+
201
+ def admin_config_objects_by_category
202
+ @admin_config_objects_by_category ||=
203
+ admin_config_objects.group_by(&:category)
204
+ end
205
+
206
+ def load_admin_config
207
+ return unless admin_config_exists?
208
+ admin_config = YAML.load_file admin_config_path
209
+ return {} unless admin_config # blank manifest
210
+ # validate_manifest manifest
211
+ admin_config
212
+ end
213
+
214
+ def admin_config_exists?
215
+ @admin_config_exists = !admin_config_path.nil? if @admin_config_exists.nil?
216
+ @admin_config_exists
217
+ end
218
+
219
+ def admin_config_path
220
+ @admin_config_path ||= mod&.subpath "config", "admin.yml"
221
+ end
222
+
223
+ private
224
+
225
+ def read_admin_yml
226
+ YAML.safe_load File.read(filename), [Symbol] if File.exist? filename
227
+ end
@@ -0,0 +1,34 @@
1
+ RSpec.describe Card::Set::All::Admin do
2
+ describe "all_admin_configs_of_category" do
3
+ it "finds settings" do
4
+ expect(Card[:all].all_admin_configs_of_category("settings").map(&:codename))
5
+ .to include("create")
6
+ end
7
+
8
+ it "create setting has the correct role" do
9
+ create_config = Card[:all].all_admin_configs_of_category("settings")
10
+ .find { |x| x.codename == "create" }
11
+ expect(create_config.roles).to eq([:shark])
12
+ end
13
+
14
+ it "finds views" do
15
+ views = Card[:all].all_admin_configs_of_category("views").map(&:codename)
16
+ expect(views).to include("name", "link", "content")
17
+ end
18
+ end
19
+
20
+ specify "admin_config_by_role" do
21
+ roles = Card[:all].all_admin_configs_grouped_by(:roles)
22
+ expect(roles[:anyone_signed_in].map(&:codename))
23
+ .to contain_exactly("mod", "user", "setting", "json", "number", "plain_text",
24
+ "toggle", "phrase", "uri",
25
+ "list", "pointer", "email_template", "file", "image",
26
+ "link_list",
27
+ "local_script_folder_group", "local_script_manifest_group",
28
+ "local_style_folder_group",
29
+ "nest_list", "remote_manifest_group", "role",
30
+ "local_style_manifest_group", "bootswatch_skin",
31
+ "date", "notification_template", "session", "basic",
32
+ "search_type", "signup")
33
+ end
34
+ end
@@ -0,0 +1,30 @@
1
+ RSpec.describe Card::Set::Type::Mod do
2
+ check_views_for_errors
3
+
4
+ specify "cardtypes" do
5
+ expect(Card[:mod_format].cardtypes)
6
+ .to eq [["Text", %i[basic plain_text html phrase]],
7
+ ["Scripting", [:json]], ["Data", %i[number toggle uri]]]
8
+ end
9
+
10
+ specify "admin_config_objects" do
11
+ config_objects = Card[:mod_core].admin_config_objects
12
+ expect(config_objects.size).to eq 7
13
+
14
+ expect(config_objects[0].category).to eq "cardtypes"
15
+ expect(config_objects[0].subcategory).to eq "admin"
16
+ expect(config_objects[0].title).to eq "Admin"
17
+ expect(config_objects[0].codename).to eq "mod"
18
+ end
19
+
20
+ describe "core view" do
21
+ it "renders Cardtypes and Tasks section for core mod" do
22
+ view = render_card :core, :mod_core
23
+ expect(view).to have_tag :h3, "Cardtypes"
24
+ %w[Mod User Setting Cardtype].each do |cardtype_name|
25
+ expect(view).to have_tag :span, class: "card-title", content: cardtype_name
26
+ end
27
+ expect(view).to have_tag :h3, "Tasks"
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,10 @@
1
+ RSpec.shared_examples "mod admin config" do |codename, settings, configs, cardtypes|
2
+ card = codename.card
3
+ specify "admin.yml of #{codename} loaded correctly" do
4
+ aggregate_failures do
5
+ expect(card.settings).to eq settings
6
+ expect(card.configurations).to eq configs
7
+ expect(card.cardtypes).to eq cardtypes
8
+ end
9
+ end
10
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: card
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.105.6
4
+ version: 1.107.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan McCutchen
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-05-02 00:00:00.000000000 Z
13
+ date: 2024-06-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: cardname
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.15.6
21
+ version: 0.17.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 0.15.6
28
+ version: 0.17.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rake
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -406,65 +406,6 @@ files:
406
406
  - config/locales/de.yml
407
407
  - config/locales/en.yml
408
408
  - config/locales/es.yml
409
- - db/migrate/20110511221913_require_earlier_migrations.rb
410
- - db/migrate/20120105203350_require_1_8_migrations.rb
411
- - db/migrate/20121111025347_require_1_10_migrations.rb
412
- - db/migrate/20121118114000_split_link_type.rb
413
- - db/migrate/20121118115000_update_link_type.rb
414
- - db/migrate/20130106052640_table_cleanup.rb
415
- - db/migrate/20130109015336_trunk_left.rb
416
- - db/migrate/20130411210957_update_codenames.rb
417
- - db/migrate/20140822073704_create_new_revision_tables.rb
418
- - db/migrate/20141001105348_move_revisions_to_actions.rb
419
- - db/migrate/20141121172918_rename_card_migration_table.rb
420
- - db/migrate/20141208132159_remove_present_from_reference_table.rb
421
- - db/migrate/20141216053032_better_index_names.rb
422
- - db/migrate/20150724210803_add_comment_to_actions.rb
423
- - db/migrate/20151105225559_more_space_for_db_content.rb
424
- - db/migrate/20160122153608_new_indices.rb
425
- - db/migrate/20170908114442_create_delayed_jobs.rb
426
- - db/migrate/20170908114452_increase_text_size_for_delayed_jobs.rb
427
- - db/migrate/20180514152037_add_card_virtuals_table.rb
428
- - db/migrate/20190116170824_add_left_key_to_card_virtuals.rb
429
- - db/migrate/20190131223248_add_codename_index.rb
430
- - db/migrate/20190929202325_rename_present_in_reference_table.rb
431
- - db/migrate/20200718051236_compound_names_do_not_store_name_and_key.rb
432
- - db/migrate/20200805200729_add_unique_pair_indices.rb
433
- - db/migrate/20211128040849_virtuals_updated_at.rb
434
- - db/migrate/20221031182227_remove_referee_key_requirement.rb
435
- - db/migrate_core_cards/20120611203506_rails_inflection_updates.rb
436
- - db/migrate_core_cards/20130411191151_renaming_for_menu.rb
437
- - db/migrate_core_cards/20130920214038_jsonize_tinymce.rb
438
- - db/migrate_core_cards/20130920291703_update_stylesheets.rb
439
- - db/migrate_core_cards/20140307231621_user_data_to_cards.rb
440
- - db/migrate_core_cards/20140317035504_account_requests_to_signups.rb
441
- - db/migrate_core_cards/20141204061304_watchers_to_following.rb
442
- - db/migrate_core_cards/20141208132416_partial_reference_type.rb
443
- - db/migrate_core_cards/20150220134731_following_to_follow_rule.rb
444
- - db/migrate_core_cards/20150429090551_search_card_context.rb
445
- - db/migrate_core_cards/20150510031118_fix_skin_codenames.rb
446
- - db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb
447
- - db/migrate_core_cards/20150807205221_create_references_for_search_cards.rb
448
- - db/migrate_core_cards/20150824135418_update_file_history.rb
449
- - db/migrate_core_cards/20160811115836_rename_stats_to_admin.rb
450
- - db/migrate_core_cards/20160914132636_fix_mod_files.rb
451
- - db/migrate_core_cards/20161103154836_update_keys.rb
452
- - db/migrate_core_cards/20170830210517_correct_signup_success_message.rb
453
- - db/migrate_core_cards/20180905061537_migrate_layouts.rb
454
- - db/migrate_core_cards/20190125125150_add_script_rules_card.rb
455
- - db/migrate_core_cards/20190320091257_upgrade_recaptcha_to_v3.rb
456
- - db/migrate_core_cards/20190322095534_remove_toolbar_cards.rb
457
- - db/migrate_core_cards/20190502130029_add_shark_and_help_desk_role.rb
458
- - db/migrate_core_cards/20190528131330_enabled_roles.rb
459
- - db/migrate_core_cards/20190625153616_pointer_overhaul.rb
460
- - db/migrate_core_cards/20190718140126_add_guides.rb
461
- - db/migrate_core_cards/20190822093633_move_help_text_to_code.rb
462
- - db/migrate_core_cards/20190829205148_remove_add_help.rb
463
- - db/migrate_core_cards/20190902193208_input_type.rb
464
- - db/migrate_core_cards/20190904174403_token_upgrade.rb
465
- - db/migrate_core_cards/20190909104250_add_cardtype_input_types.rb
466
- - db/migrate_core_cards/20191115160748_history_cleanup.rb
467
- - db/migrate_core_cards/20230502094848_repair_all_references.rb
468
409
  - db/schema.rb
469
410
  - db/seeds.rb
470
411
  - db/version.txt
@@ -652,9 +593,10 @@ files:
652
593
  - lib/cardio/generators/rails_overrides.rb
653
594
  - lib/cardio/job.rb
654
595
  - lib/cardio/migration.rb
655
- - lib/cardio/migration/core.rb
656
- - lib/cardio/migration/deck.rb
657
- - lib/cardio/migration/deck_structure.rb
596
+ - lib/cardio/migration/assumption.rb
597
+ - lib/cardio/migration/schema.rb
598
+ - lib/cardio/migration/stamp.rb
599
+ - lib/cardio/migration/transform.rb
658
600
  - lib/cardio/mod.rb
659
601
  - lib/cardio/mod/class_methods.rb
660
602
  - lib/cardio/mod/dirs.rb
@@ -674,9 +616,10 @@ files:
674
616
  - lib/cardio/mod/modfile_loader.rb
675
617
  - lib/cardio/mod/module_template.rb
676
618
  - lib/cardio/mod/sow.rb
619
+ - lib/cardio/mod/sow/card_source.rb
620
+ - lib/cardio/mod/sow/yaml_dump.rb
677
621
  - lib/cardio/railtie.rb
678
622
  - lib/cardio/record.rb
679
- - lib/cardio/schema.rb
680
623
  - lib/cardio/script_loader.rb
681
624
  - lib/cardio/seed.rb
682
625
  - lib/cardio/utils.rb
@@ -732,6 +675,7 @@ files:
732
675
  - lib/generators/set/set_generator.rb
733
676
  - lib/generators/set/templates/set_spec_template.erb
734
677
  - lib/generators/set/templates/set_template.erb
678
+ - mod/core/config/admin.yml
735
679
  - mod/core/config/locales/de.yml
736
680
  - mod/core/config/locales/en.yml
737
681
  - mod/core/data/fixtures/real/card_actions.yml
@@ -740,18 +684,75 @@ files:
740
684
  - mod/core/data/fixtures/real/card_references.yml
741
685
  - mod/core/data/fixtures/real/cards.yml
742
686
  - mod/core/data/fixtures/real/schema_migrations.yml
743
- - mod/core/data/fixtures/real/schema_migrations_core_cards.yml
744
- - mod/core/data/fixtures/real/schema_migrations_deck.yml
745
- - mod/core/data/fixtures/real/schema_migrations_deck_cards.yml
687
+ - mod/core/data/fixtures/real/transform_migrations.yml
746
688
  - mod/core/data/real.yml
689
+ - mod/core/data/recode.yml
690
+ - mod/core/data/schema/20110511221913_require_earlier_migrations.rb
691
+ - mod/core/data/schema/20120105203350_require_1_8_migrations.rb
692
+ - mod/core/data/schema/20121111025347_require_1_10_migrations.rb
693
+ - mod/core/data/schema/20121118114000_split_link_type.rb
694
+ - mod/core/data/schema/20121118115000_update_link_type.rb
695
+ - mod/core/data/schema/20130106052640_table_cleanup.rb
696
+ - mod/core/data/schema/20130109015336_trunk_left.rb
697
+ - mod/core/data/schema/20140822073704_create_new_revision_tables.rb
698
+ - mod/core/data/schema/20141001105348_move_revisions_to_actions.rb
699
+ - mod/core/data/schema/20141216053032_better_index_names.rb
700
+ - mod/core/data/schema/20150724210803_add_comment_to_actions.rb
701
+ - mod/core/data/schema/20151105225559_more_space_for_db_content.rb
702
+ - mod/core/data/schema/20160122153608_new_indices.rb
703
+ - mod/core/data/schema/20170908114442_create_delayed_jobs.rb
704
+ - mod/core/data/schema/20170908114452_increase_text_size_for_delayed_jobs.rb
705
+ - mod/core/data/schema/20180514152037_add_card_virtuals_table.rb
706
+ - mod/core/data/schema/20190116170824_add_left_key_to_card_virtuals.rb
707
+ - mod/core/data/schema/20190131223248_add_codename_index.rb
708
+ - mod/core/data/schema/20190929202325_rename_present_in_reference_table.rb
709
+ - mod/core/data/schema/20200718051236_compound_names_do_not_store_name_and_key.rb
710
+ - mod/core/data/schema/20200805200729_add_unique_pair_indices.rb
711
+ - mod/core/data/schema/20211128040849_virtuals_updated_at.rb
712
+ - mod/core/data/schema/20221031182227_remove_referee_key_requirement.rb
747
713
  - mod/core/data/test.yml
748
714
  - mod/core/data/test/cardtype.yml
749
715
  - mod/core/data/test/sample.yml
750
716
  - mod/core/data/test/user.yml
717
+ - mod/core/data/transform/20120611203506_rails_inflection_updates.rb
718
+ - mod/core/data/transform/20130411191151_renaming_for_menu.rb
719
+ - mod/core/data/transform/20130920214038_jsonize_tinymce.rb
720
+ - mod/core/data/transform/20130920291703_update_stylesheets.rb
721
+ - mod/core/data/transform/20140307231621_user_data_to_cards.rb
722
+ - mod/core/data/transform/20140317035504_account_requests_to_signups.rb
723
+ - mod/core/data/transform/20141204061304_watchers_to_following.rb
724
+ - mod/core/data/transform/20141208132416_partial_reference_type.rb
725
+ - mod/core/data/transform/20150220134731_following_to_follow_rule.rb
726
+ - mod/core/data/transform/20150429090551_search_card_context.rb
727
+ - mod/core/data/transform/20150510031118_fix_skin_codenames.rb
728
+ - mod/core/data/transform/20150724123438_update_file_and_image_cards.rb
729
+ - mod/core/data/transform/20150807205221_create_references_for_search_cards.rb
730
+ - mod/core/data/transform/20150824135418_update_file_history.rb
731
+ - mod/core/data/transform/20160811115836_rename_stats_to_admin.rb
732
+ - mod/core/data/transform/20160914132636_fix_mod_files.rb
733
+ - mod/core/data/transform/20161103154836_update_keys.rb
734
+ - mod/core/data/transform/20170830210517_correct_signup_success_message.rb
735
+ - mod/core/data/transform/20180905061537_migrate_layouts.rb
736
+ - mod/core/data/transform/20190125125150_add_script_rules_card.rb
737
+ - mod/core/data/transform/20190320091257_upgrade_recaptcha_to_v3.rb
738
+ - mod/core/data/transform/20190322095534_remove_toolbar_cards.rb
739
+ - mod/core/data/transform/20190502130029_add_shark_and_help_desk_role.rb
740
+ - mod/core/data/transform/20190528131330_enabled_roles.rb
741
+ - mod/core/data/transform/20190625153616_pointer_overhaul.rb
742
+ - mod/core/data/transform/20190718140126_add_guides.rb
743
+ - mod/core/data/transform/20190822093633_move_help_text_to_code.rb
744
+ - mod/core/data/transform/20190829205148_remove_add_help.rb
745
+ - mod/core/data/transform/20190902193208_input_type.rb
746
+ - mod/core/data/transform/20190904174403_token_upgrade.rb
747
+ - mod/core/data/transform/20190909104250_add_cardtype_input_types.rb
748
+ - mod/core/data/transform/20191115160748_history_cleanup.rb
749
+ - mod/core/data/transform/20230502094848_repair_all_references.rb
750
+ - mod/core/lib/admin_item.rb
751
751
  - mod/core/lib/tasks/card.rake
752
752
  - mod/core/lib/tasks/card/migrate.rake
753
753
  - mod/core/lib/tasks/card/mod.rake
754
754
  - mod/core/lib/tasks/card/seed.rake
755
+ - mod/core/set/abstract/task_table.rb
755
756
  - mod/core/set/all/admin.rb
756
757
  - mod/core/set/all/assign_attributes.rb
757
758
  - mod/core/set/all/autoname.rb
@@ -771,9 +772,11 @@ files:
771
772
  - mod/core/set/self/admin.rb
772
773
  - mod/core/set/self/admin/warning_alert.haml
773
774
  - mod/core/set/self/autoname.rb
775
+ - mod/core/set/self/mod.rb
774
776
  - mod/core/set/self/trash.rb
775
777
  - mod/core/set/self/version.rb
776
778
  - mod/core/set/type/cardtype.rb
779
+ - mod/core/set/type/mod.rb
777
780
  - mod/core/set_pattern/01_all.rb
778
781
  - mod/core/set_pattern/02_all_plus.rb
779
782
  - mod/core/set_pattern/03_type.rb
@@ -783,6 +786,7 @@ files:
783
786
  - mod/core/set_pattern/07_right.rb
784
787
  - mod/core/set_pattern/08_type_plus_right.rb
785
788
  - mod/core/set_pattern/09_self.rb
789
+ - mod/core/spec/set/all/admin_spec.rb
786
790
  - mod/core/spec/set/all/assign_attributes_spec.rb
787
791
  - mod/core/spec/set/all/autoname_spec.rb
788
792
  - mod/core/spec/set/all/codename_spec.rb
@@ -795,6 +799,8 @@ files:
795
799
  - mod/core/spec/set/self/trash_spec.rb
796
800
  - mod/core/spec/set/self/version_spec.rb
797
801
  - mod/core/spec/set/type/cardtype_spec.rb
802
+ - mod/core/spec/set/type/mod_spec.rb
803
+ - mod/core/spec/shared_examples/mod_admin_config.rb
798
804
  homepage: https://decko.org
799
805
  licenses:
800
806
  - GPL-3.0
@@ -812,14 +818,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
812
818
  requirements:
813
819
  - - ">="
814
820
  - !ruby/object:Gem::Version
815
- version: '2.5'
821
+ version: '3.0'
816
822
  required_rubygems_version: !ruby/object:Gem::Requirement
817
823
  requirements:
818
824
  - - ">="
819
825
  - !ruby/object:Gem::Version
820
826
  version: '0'
821
827
  requirements: []
822
- rubygems_version: 3.2.33
828
+ rubygems_version: 3.5.10
823
829
  signing_key:
824
830
  specification_version: 4
825
831
  summary: a simple engine for emergent data structures
@@ -1,15 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
-
3
- class UpdateCodenames < ActiveRecord::Migration[4.2]
4
- def up
5
- { content: :structure, edit_help: :help }.each do |oldname, newname|
6
- execute %(update cards set codename = "#{newname}" where codename = "#{oldname}";)
7
- end
8
- end
9
-
10
- def down
11
- { content: :structure, edit_help: :help }.each do |oldname, newname|
12
- execute %(update cards set codename = "#{oldname}" where codename = "#{newname}";)
13
- end
14
- end
15
- end
@@ -1,70 +0,0 @@
1
- class MoveRevisionsToActions < ActiveRecord::Migration[4.2]
2
- class TmpRevision < Cardio::Record
3
- belongs_to :tmp_card, foreign_key: :card_id
4
- self.table_name = "card_revisions"
5
- def self.delete_cardless
6
- left_join = "LEFT JOIN card_revisions "\
7
- "ON card_revisions.card_id = cards.id"
8
- TmpRevision.joins(left_join).where("cards.id IS NULL").delete_all
9
- end
10
- end
11
-
12
- class TmpAct < Cardio::Record
13
- self.table_name = "card_acts"
14
- end
15
-
16
- class TmpAction < Cardio::Record
17
- self.table_name = "card_actions"
18
- end
19
-
20
- class TmpChange < Cardio::Record
21
- self.table_name = "card_changes"
22
- end
23
-
24
- class TmpCard < Cardio::Record
25
- belongs_to :tmp_revision, foreign_key: :current_revision_id
26
- has_many :tmp_actions, foreign_key: :card_id
27
- self.table_name = "cards"
28
- end
29
-
30
- def up
31
- TmpRevision.delete_cardless
32
-
33
- conn = TmpRevision.connection
34
- created = ::Set.new
35
-
36
- TmpRevision.find_each do |rev|
37
- TmpAct.create(
38
- { id: rev.id, card_id: rev.card_id, actor_id: rev.creator_id,
39
- acted_at: rev.created_at }, without_protection: true
40
- )
41
- if created.include? rev.card_id
42
- TmpAction.connection.execute "INSERT INTO card_actions (id, card_id, card_act_id, action_type) VALUES
43
- ('#{rev.id}', '#{rev.card_id}', '#{rev.id}', 1)"
44
- TmpChange.connection.execute "INSERT INTO card_changes (card_action_id, field, value) VALUES
45
- ('#{rev.id}', 2, #{conn.quote(rev.content)})"
46
- else
47
- TmpAction.connection.execute "INSERT INTO card_actions (id, card_id, card_act_id, action_type) VALUES
48
- ('#{rev.id}', '#{rev.card_id}', '#{rev.id}', 0)"
49
-
50
- if (tmp_card = rev.tmp_card)
51
- TmpChange.connection.execute "INSERT INTO card_changes (card_action_id, field, value) VALUES
52
- ('#{rev.id}', 0, #{conn.quote tmp_card.name}),
53
- ('#{rev.id}', 1, '#{tmp_card.type_id}'),
54
- ('#{rev.id}', 2, #{conn.quote(rev.content)}),
55
- ('#{rev.id}', 3, #{tmp_card.trash})"
56
- end
57
- created.add rev.card_id
58
- end
59
- end
60
-
61
- TmpCard.find_each do |card|
62
- card.update_column(:db_content, card.tmp_revision.content) if card.tmp_revision
63
- end
64
-
65
- # drop_table :card_revisions
66
- # remove_column :cards, :current_revision
67
- end
68
-
69
- def down; end
70
- end
@@ -1,15 +0,0 @@
1
- class RenameCardMigrationTable < ActiveRecord::Migration[4.2]
2
- def self.up
3
- if ActiveRecord::Base.connection.table_exists? :schema_migrations_cards
4
- rename_table :schema_migrations_cards, :schema_migrations_core_cards
5
- else
6
- create_table "schema_migrations_core_cards", id: false, force: true do |t|
7
- t.string "version", null: false
8
- end
9
- end
10
- end
11
-
12
- def self.down
13
- rename_table :schema_migrations_core_cards, :schema_migrations_cards
14
- end
15
- end
@@ -1,9 +0,0 @@
1
- class RemovePresentFromReferenceTable < ActiveRecord::Migration[4.2]
2
- def up
3
- # remove_column :card_references, :present
4
- end
5
-
6
- def down
7
- # add_column :card_references, :present, :integer
8
- end
9
- end