card 1.102.0 → 1.103.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (563) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/config/environments/production.rb +9 -9
  4. data/config/initializers/02_patches/active_record.rb +2 -2
  5. data/config/locales/en.yml +0 -144
  6. data/db/migrate_core_cards/20130411191151_renaming_for_menu.rb +0 -1
  7. data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +0 -2
  8. data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +0 -2
  9. data/db/migrate_core_cards/20190417142612_reorganize_scripts_2.rb +2 -4
  10. data/db/migrate_core_cards/20190502130029_add_shark_and_help_desk_role.rb +1 -1
  11. data/db/migrate_core_cards/20190710090209_homepage_tweaks.rb +3 -7
  12. data/db/migrate_core_cards/20190823220018_cleanup_for_decko_1_0.rb +2 -4
  13. data/db/migrate_core_cards/20190902193208_input_type.rb +3 -8
  14. data/db/migrate_core_cards/20190904174403_token_upgrade.rb +1 -1
  15. data/db/migrate_core_cards/20200821231558_add_nest_list_type.rb +2 -2
  16. data/db/migrate_core_cards/data/1.12_stylesheets/traditional.scss +1 -2
  17. data/db/seed/new/card_actions.yml +1875 -1363
  18. data/db/seed/new/card_acts.yml +2 -2
  19. data/db/seed/new/card_references.yml +1040 -536
  20. data/db/seed/new/cards.yml +3577 -2194
  21. data/db/seed/new/schema_migrations_core_cards.yml +20 -0
  22. data/db/seed/test/fixtures/card_actions.yml +4713 -4121
  23. data/db/seed/test/fixtures/card_acts.yml +755 -695
  24. data/db/seed/test/fixtures/card_changes.yml +103 -103
  25. data/db/seed/test/fixtures/card_references.yml +3185 -2632
  26. data/db/seed/test/fixtures/cards.yml +10091 -8454
  27. data/db/seed/test/fixtures/schema_migrations_core_cards.yml +20 -0
  28. data/db/test_seed.rb +6 -1
  29. data/lib/card/auth/current.rb +1 -1
  30. data/lib/card/cache/persistent.rb +1 -1
  31. data/lib/card/cache/persistent_class.rb +1 -1
  32. data/lib/card/cache.rb +1 -1
  33. data/lib/card/codename.rb +1 -1
  34. data/lib/card/content/chunk.rb +0 -1
  35. data/lib/card/content/diff/summary.rb +14 -18
  36. data/lib/card/content.rb +9 -1
  37. data/lib/card/director/act_direction.rb +5 -3
  38. data/lib/card/director/all.rb +4 -4
  39. data/lib/card/director/stages.rb +2 -0
  40. data/lib/card/error.rb +1 -1
  41. data/lib/card/fetch/results.rb +6 -6
  42. data/lib/card/{tasks/card/file_card_creator → file_card_creator}/abstract_file_card/migration_file.rb +0 -0
  43. data/lib/card/{tasks/card/file_card_creator → file_card_creator}/abstract_file_card/ruby_file.rb +0 -0
  44. data/lib/card/{tasks/card/file_card_creator → file_card_creator}/abstract_file_card/source_file.rb +0 -0
  45. data/lib/card/{tasks/card/file_card_creator → file_card_creator}/abstract_file_card.rb +0 -5
  46. data/lib/card/{tasks/card/file_card_creator → file_card_creator}/haml_card.rb +0 -0
  47. data/lib/card/{tasks/card/file_card_creator → file_card_creator}/output_helper.rb +0 -0
  48. data/lib/card/{tasks/card/file_card_creator → file_card_creator}/script_card.rb +0 -0
  49. data/lib/card/{tasks/card/file_card_creator → file_card_creator}/style_card.rb +0 -0
  50. data/lib/card/{tasks/card/file_card_creator.rb → file_card_creator.rb} +0 -5
  51. data/lib/card/format/content.rb +5 -7
  52. data/lib/card/format/error.rb +1 -1
  53. data/lib/card/format/nest/fetch.rb +1 -1
  54. data/lib/card/format/render.rb +10 -10
  55. data/lib/card/format.rb +4 -9
  56. data/lib/card/lexicon.rb +30 -7
  57. data/lib/card/model/save_helper/save_arguments.rb +3 -1
  58. data/lib/card/name/card_class.rb +1 -1
  59. data/lib/card/name.rb +6 -6
  60. data/lib/card/reference/all.rb +1 -1
  61. data/lib/card/set/card_methods.rb +13 -0
  62. data/lib/card/set/event/skip_and_trigger.rb +8 -0
  63. data/lib/card/set/format/abstract_format/wrapper.rb +1 -1
  64. data/lib/card/set/format/abstract_format.rb +2 -1
  65. data/lib/card/set/format/haml_paths.rb +6 -5
  66. data/lib/card/set/format.rb +2 -3
  67. data/lib/card/set/helpers.rb +55 -0
  68. data/lib/card/set/inheritance.rb +1 -1
  69. data/lib/card/set/pattern/all.rb +7 -6
  70. data/lib/card/set/pattern/class_methods.rb +2 -2
  71. data/lib/card/set/pattern.rb +30 -19
  72. data/lib/card/set/registrar.rb +8 -2
  73. data/lib/card/set/type.rb +1 -1
  74. data/lib/card/set.rb +14 -7
  75. data/lib/card/view/classy.rb +15 -27
  76. data/lib/card/view/options/voo_api.rb +3 -1
  77. data/lib/card/view.rb +1 -0
  78. data/lib/card.rb +9 -11
  79. data/lib/cardio/all.rb +1 -0
  80. data/lib/cardio/application.rb +3 -132
  81. data/lib/cardio/delaying.rb +3 -3
  82. data/lib/cardio/generators/class_methods.rb +1 -1
  83. data/lib/cardio/generators/deck_helper.rb +0 -4
  84. data/lib/cardio/migration/deck_structure.rb +1 -1
  85. data/lib/cardio/migration.rb +8 -27
  86. data/lib/cardio/mod/dirs.rb +41 -41
  87. data/lib/cardio/mod/load_strategy/eval.rb +1 -1
  88. data/lib/cardio/mod/load_strategy/pattern_tmp_files.rb +1 -1
  89. data/lib/cardio/mod/load_strategy/set_binding_magic.rb +1 -1
  90. data/lib/cardio/mod/load_strategy/set_tmp_files.rb +11 -5
  91. data/lib/cardio/mod/load_strategy/tmp_files.rb +1 -1
  92. data/lib/cardio/mod/load_strategy.rb +4 -5
  93. data/lib/cardio/mod/loader/set_loader.rb +14 -14
  94. data/lib/cardio/mod/loader/set_pattern_loader.rb +1 -1
  95. data/lib/cardio/mod/loader/set_template.rb +1 -1
  96. data/lib/cardio/mod/loader.rb +3 -3
  97. data/lib/cardio/mod/modfile_api.rb +22 -0
  98. data/lib/cardio/mod/modfile_loader.rb +18 -0
  99. data/lib/cardio/mod/module_template.rb +1 -1
  100. data/lib/cardio/mod.rb +55 -2
  101. data/lib/cardio/railtie.rb +138 -0
  102. data/lib/cardio/schema.rb +68 -69
  103. data/lib/cardio/utils.rb +22 -28
  104. data/lib/cardio.rb +5 -10
  105. data/lib/generators/deck/templates/Gemfile.erb +1 -1
  106. data/lib/generators/deck/templates/Rakefile.erb +6 -2
  107. data/lib/generators/deck/templates/simplecov.rb.erb +7 -11
  108. data/lib/generators/migration/migration_generator.rb +1 -1
  109. data/lib/generators/mod/mod_generator.rb +10 -14
  110. data/lib/tasks/card/asset.rake +22 -0
  111. data/lib/{card/tasks → tasks}/card/create.rake +0 -0
  112. data/lib/{card/tasks → tasks}/card/migrate.rake +7 -7
  113. data/lib/tasks/card/mod.rake +30 -0
  114. data/lib/{card/tasks → tasks}/card.rake +0 -18
  115. data/mod/admin/locales/en.yml +4 -0
  116. data/mod/admin/set/all/admin.rb +16 -0
  117. data/mod/admin/set/self/admin.rb +4 -8
  118. data/mod/admin/set/self/admin_info.rb +2 -5
  119. data/mod/core/locales/en.yml +29 -0
  120. data/mod/core/set/all/initialize.rb +5 -1
  121. data/mod/core/set/all/name_events.rb +2 -2
  122. data/mod/core/set/all/reference_events.rb +5 -10
  123. data/mod/core/set/all/trash.rb +2 -3
  124. data/mod/core/set/all/utils.rb +2 -2
  125. data/mod/core/spec/set/all/name_events_spec.rb +10 -10
  126. data/mod/core/spec/set/all/trash_spec.rb +1 -1
  127. data/tmpsets/set_pattern/100-all.rb +1 -1
  128. data/tmpsets/set_pattern/101-all_plus.rb +1 -1
  129. data/tmpsets/set_pattern/102-type.rb +1 -1
  130. data/tmpsets/set_pattern/103-star.rb +1 -1
  131. data/tmpsets/set_pattern/104-rstar.rb +1 -1
  132. data/tmpsets/set_pattern/105-rule.rb +1 -1
  133. data/tmpsets/set_pattern/106-right.rb +1 -1
  134. data/tmpsets/set_pattern/107-type_plus_right.rb +1 -1
  135. data/tmpsets/set_pattern/108-self.rb +1 -1
  136. metadata +78 -496
  137. data/lib/card/set/basket.rb +0 -59
  138. data/lib/cardio/defaults.yml +0 -71
  139. data/tmpsets/set/mod001-admin/self/admin.rb +0 -155
  140. data/tmpsets/set/mod001-admin/self/admin_info.rb +0 -52
  141. data/tmpsets/set/mod001-admin/self/debugger.rb +0 -12
  142. data/tmpsets/set/mod002-core/all/abort.rb +0 -85
  143. data/tmpsets/set/mod002-core/all/assign_attributes.rb +0 -119
  144. data/tmpsets/set/mod002-core/all/autoname.rb +0 -26
  145. data/tmpsets/set/mod002-core/all/codename.rb +0 -39
  146. data/tmpsets/set/mod002-core/all/collection.rb +0 -62
  147. data/tmpsets/set/mod002-core/all/content.rb +0 -74
  148. data/tmpsets/set/mod002-core/all/debug.rb +0 -29
  149. data/tmpsets/set/mod002-core/all/initialize.rb +0 -93
  150. data/tmpsets/set/mod002-core/all/name_events.rb +0 -172
  151. data/tmpsets/set/mod002-core/all/reference_events.rb +0 -78
  152. data/tmpsets/set/mod002-core/all/states.rb +0 -93
  153. data/tmpsets/set/mod002-core/all/subcards.rb +0 -29
  154. data/tmpsets/set/mod002-core/all/trash.rb +0 -142
  155. data/tmpsets/set/mod002-core/all/type.rb +0 -70
  156. data/tmpsets/set/mod002-core/all/utils.rb +0 -104
  157. data/tmpsets/set/mod002-core/right/autoname.rb +0 -12
  158. data/tmpsets/set/mod002-core/self/autoname.rb +0 -12
  159. data/tmpsets/set/mod002-core/self/trash.rb +0 -73
  160. data/tmpsets/set/mod002-core/self/version.rb +0 -18
  161. data/tmpsets/set/mod002-core/type/cardtype.rb +0 -37
  162. data/tmpsets/set/mod004-email/abstract/email_field.rb +0 -49
  163. data/tmpsets/set/mod004-email/abstract/test_context.rb +0 -36
  164. data/tmpsets/set/mod004-email/all/email_html.rb +0 -18
  165. data/tmpsets/set/mod004-email/all/email_text.rb +0 -22
  166. data/tmpsets/set/mod004-email/right/bcc.rb +0 -10
  167. data/tmpsets/set/mod004-email/right/cc.rb +0 -10
  168. data/tmpsets/set/mod004-email/right/from.rb +0 -10
  169. data/tmpsets/set/mod004-email/right/html_message.rb +0 -23
  170. data/tmpsets/set/mod004-email/right/subject.rb +0 -10
  171. data/tmpsets/set/mod004-email/right/text_message.rb +0 -10
  172. data/tmpsets/set/mod004-email/right/to.rb +0 -10
  173. data/tmpsets/set/mod004-email/type/email_template/email_config.rb +0 -92
  174. data/tmpsets/set/mod004-email/type/email_template.rb +0 -101
  175. data/tmpsets/set/mod005-collection/abstract/items.rb +0 -215
  176. data/tmpsets/set/mod005-collection/abstract/paging/paging_links.rb +0 -99
  177. data/tmpsets/set/mod005-collection/abstract/paging/paging_views.rb +0 -121
  178. data/tmpsets/set/mod005-collection/abstract/paging.rb +0 -74
  179. data/tmpsets/set/mod005-collection/all/extended.rb +0 -59
  180. data/tmpsets/set/mod005-collection/all/item.rb +0 -145
  181. data/tmpsets/set/mod006-content/abstract/00_sources.rb +0 -33
  182. data/tmpsets/set/mod006-content/abstract/01_code_file.rb +0 -94
  183. data/tmpsets/set/mod006-content/abstract/asset_file.rb +0 -84
  184. data/tmpsets/set/mod006-content/abstract/haml_file.rb +0 -32
  185. data/tmpsets/set/mod006-content/abstract/lock.rb +0 -36
  186. data/tmpsets/set/mod006-content/abstract/read_only.rb +0 -23
  187. data/tmpsets/set/mod006-content/abstract/templated_nests.rb +0 -16
  188. data/tmpsets/set/mod006-content/abstract/vendor_code_file.rb +0 -18
  189. data/tmpsets/set/mod006-content/all/chunk.rb +0 -151
  190. data/tmpsets/set/mod006-content/all/contextual_content.rb +0 -29
  191. data/tmpsets/set/mod006-content/all/templating.rb +0 -79
  192. data/tmpsets/set/mod006-content/right/default.rb +0 -43
  193. data/tmpsets/set/mod006-content/right/structure.rb +0 -85
  194. data/tmpsets/set/mod006-content/self/default.rb +0 -11
  195. data/tmpsets/set/mod006-content/self/structure.rb +0 -13
  196. data/tmpsets/set/mod007-format/all/active_card.rb +0 -14
  197. data/tmpsets/set/mod007-format/all/base.rb +0 -148
  198. data/tmpsets/set/mod007-format/all/content.rb +0 -77
  199. data/tmpsets/set/mod007-format/all/css.rb +0 -45
  200. data/tmpsets/set/mod007-format/all/csv.rb +0 -103
  201. data/tmpsets/set/mod007-format/all/demo.rb +0 -45
  202. data/tmpsets/set/mod007-format/all/error.rb +0 -81
  203. data/tmpsets/set/mod007-format/all/export.rb +0 -79
  204. data/tmpsets/set/mod007-format/all/file.rb +0 -18
  205. data/tmpsets/set/mod007-format/all/frame.rb +0 -58
  206. data/tmpsets/set/mod007-format/all/haml.rb +0 -84
  207. data/tmpsets/set/mod007-format/all/head.rb +0 -170
  208. data/tmpsets/set/mod007-format/all/header.rb +0 -71
  209. data/tmpsets/set/mod007-format/all/html_content.rb +0 -178
  210. data/tmpsets/set/mod007-format/all/html_error.rb +0 -217
  211. data/tmpsets/set/mod007-format/all/html_show.rb +0 -62
  212. data/tmpsets/set/mod007-format/all/html_title.rb +0 -56
  213. data/tmpsets/set/mod007-format/all/html_wrapper.rb +0 -173
  214. data/tmpsets/set/mod007-format/all/js.rb +0 -18
  215. data/tmpsets/set/mod007-format/all/json.rb +0 -174
  216. data/tmpsets/set/mod007-format/all/links.rb +0 -160
  217. data/tmpsets/set/mod007-format/all/menu.rb +0 -138
  218. data/tmpsets/set/mod007-format/all/path.rb +0 -88
  219. data/tmpsets/set/mod007-format/all/rich_html.rb +0 -25
  220. data/tmpsets/set/mod007-format/all/rss.rb +0 -86
  221. data/tmpsets/set/mod007-format/all/text.rb +0 -15
  222. data/tmpsets/set/mod007-format/self/home.rb +0 -18
  223. data/tmpsets/set/mod007-format/type/cardtype.rb +0 -98
  224. data/tmpsets/set/mod007-format/type/html.rb +0 -36
  225. data/tmpsets/set/mod007-format/type/json.rb +0 -50
  226. data/tmpsets/set/mod007-format/type/number.rb +0 -33
  227. data/tmpsets/set/mod007-format/type/phrase.rb +0 -14
  228. data/tmpsets/set/mod007-format/type/plain_text.rb +0 -18
  229. data/tmpsets/set/mod007-format/type/toggle.rb +0 -47
  230. data/tmpsets/set/mod007-format/type/uri.rb +0 -24
  231. data/tmpsets/set/mod008-list/abstract/01_pointer/events.rb +0 -80
  232. data/tmpsets/set/mod008-list/abstract/01_pointer/html_views/filter.rb +0 -72
  233. data/tmpsets/set/mod008-list/abstract/01_pointer/html_views.rb +0 -131
  234. data/tmpsets/set/mod008-list/abstract/01_pointer/options_api.rb +0 -87
  235. data/tmpsets/set/mod008-list/abstract/01_pointer/other_views.rb +0 -112
  236. data/tmpsets/set/mod008-list/abstract/01_pointer.rb +0 -19
  237. data/tmpsets/set/mod008-list/abstract/code_pointer.rb +0 -44
  238. data/tmpsets/set/mod008-list/abstract/id_pointer.rb +0 -30
  239. data/tmpsets/set/mod008-list/all/supports_content_options.rb +0 -16
  240. data/tmpsets/set/mod008-list/right/content_option_view.rb +0 -19
  241. data/tmpsets/set/mod008-list/right/content_options.rb +0 -32
  242. data/tmpsets/set/mod008-list/self/content_option_view.rb +0 -18
  243. data/tmpsets/set/mod008-list/self/content_options.rb +0 -18
  244. data/tmpsets/set/mod008-list/self/input_options.rb +0 -23
  245. data/tmpsets/set/mod008-list/type/link_list.rb +0 -49
  246. data/tmpsets/set/mod008-list/type/list.rb +0 -25
  247. data/tmpsets/set/mod008-list/type/nest_list.rb +0 -55
  248. data/tmpsets/set/mod008-list/type/pointer.rb +0 -19
  249. data/tmpsets/set/mod009-permissions/abstract/permission.rb +0 -132
  250. data/tmpsets/set/mod009-permissions/all/permissions.rb +0 -240
  251. data/tmpsets/set/mod009-permissions/all/update_read_rules.rb +0 -20
  252. data/tmpsets/set/mod009-permissions/right/create.rb +0 -10
  253. data/tmpsets/set/mod009-permissions/right/delete.rb +0 -10
  254. data/tmpsets/set/mod009-permissions/right/read.rb +0 -86
  255. data/tmpsets/set/mod009-permissions/right/update.rb +0 -10
  256. data/tmpsets/set/mod009-permissions/self/create.rb +0 -12
  257. data/tmpsets/set/mod009-permissions/self/delete.rb +0 -12
  258. data/tmpsets/set/mod009-permissions/self/read.rb +0 -12
  259. data/tmpsets/set/mod009-permissions/self/update.rb +0 -12
  260. data/tmpsets/set/mod010-account/abstract/account_field.rb +0 -31
  261. data/tmpsets/set/mod010-account/abstract/accountable.rb +0 -62
  262. data/tmpsets/set/mod010-account/all/account.rb +0 -115
  263. data/tmpsets/set/mod010-account/right/account/events.rb +0 -108
  264. data/tmpsets/set/mod010-account/right/account/views.rb +0 -74
  265. data/tmpsets/set/mod010-account/right/account.rb +0 -62
  266. data/tmpsets/set/mod010-account/right/email.rb +0 -56
  267. data/tmpsets/set/mod010-account/right/password.rb +0 -61
  268. data/tmpsets/set/mod010-account/right/roles.rb +0 -36
  269. data/tmpsets/set/mod010-account/right/salt.rb +0 -22
  270. data/tmpsets/set/mod010-account/right/status.rb +0 -27
  271. data/tmpsets/set/mod010-account/self/signin.rb +0 -222
  272. data/tmpsets/set/mod010-account/type/role.rb +0 -30
  273. data/tmpsets/set/mod010-account/type/signup/views.rb +0 -107
  274. data/tmpsets/set/mod010-account/type/signup.rb +0 -63
  275. data/tmpsets/set/mod010-account/type/user.rb +0 -76
  276. data/tmpsets/set/mod010-account/type_plus_right/user/email.rb +0 -22
  277. data/tmpsets/set/mod011-edit/all/bridge/bridge_pills.rb +0 -56
  278. data/tmpsets/set/mod011-edit/all/bridge/follow_section.rb +0 -46
  279. data/tmpsets/set/mod011-edit/all/bridge/related_section.rb +0 -43
  280. data/tmpsets/set/mod011-edit/all/bridge/tab_views.rb +0 -50
  281. data/tmpsets/set/mod011-edit/all/bridge/tab_visibility.rb +0 -67
  282. data/tmpsets/set/mod011-edit/all/bridge.rb +0 -73
  283. data/tmpsets/set/mod011-edit/all/edit_content.rb +0 -69
  284. data/tmpsets/set/mod011-edit/all/edit_inline.rb +0 -65
  285. data/tmpsets/set/mod011-edit/all/edit_name.rb +0 -65
  286. data/tmpsets/set/mod011-edit/all/edit_type.rb +0 -129
  287. data/tmpsets/set/mod011-edit/all/editing.rb +0 -100
  288. data/tmpsets/set/mod011-edit/all/editor.rb +0 -63
  289. data/tmpsets/set/mod011-edit/all/form.rb +0 -257
  290. data/tmpsets/set/mod011-edit/all/form_buttons.rb +0 -82
  291. data/tmpsets/set/mod011-edit/all/form_elements.rb +0 -81
  292. data/tmpsets/set/mod011-edit/all/formgroup.rb +0 -46
  293. data/tmpsets/set/mod011-edit/all/new.rb +0 -195
  294. data/tmpsets/set/mod011-edit/all/overlay_guide.rb +0 -18
  295. data/tmpsets/set/mod011-edit/all/template_nest.rb +0 -51
  296. data/tmpsets/set/mod011-edit/right/input_type.rb +0 -44
  297. data/tmpsets/set/mod011-edit/self/input_type.rb +0 -21
  298. data/tmpsets/set/mod011-edit/type/list.rb +0 -24
  299. data/tmpsets/set/mod011-edit/type/plain_text.rb +0 -22
  300. data/tmpsets/set/mod011-edit/type/pointer.rb +0 -20
  301. data/tmpsets/set/mod012-history/all/history/act_listing.rb +0 -136
  302. data/tmpsets/set/mod012-history/all/history/actions.rb +0 -137
  303. data/tmpsets/set/mod012-history/all/history/acts.rb +0 -17
  304. data/tmpsets/set/mod012-history/all/history/events.rb +0 -109
  305. data/tmpsets/set/mod012-history/all/history/last.rb +0 -107
  306. data/tmpsets/set/mod012-history/all/history/revision.rb +0 -74
  307. data/tmpsets/set/mod012-history/all/history/selected.rb +0 -73
  308. data/tmpsets/set/mod012-history/all/history/views.rb +0 -75
  309. data/tmpsets/set/mod012-history/all/history.rb +0 -119
  310. data/tmpsets/set/mod012-history/all/history_bridge.rb +0 -88
  311. data/tmpsets/set/mod013-carrierwave/abstract/attachment/cloud.rb +0 -146
  312. data/tmpsets/set/mod013-carrierwave/abstract/attachment/coded.rb +0 -36
  313. data/tmpsets/set/mod013-carrierwave/abstract/attachment/local.rb +0 -52
  314. data/tmpsets/set/mod013-carrierwave/abstract/attachment/paths.rb +0 -68
  315. data/tmpsets/set/mod013-carrierwave/abstract/attachment/storage_type.rb +0 -180
  316. data/tmpsets/set/mod013-carrierwave/abstract/attachment/upload_cache.rb +0 -98
  317. data/tmpsets/set/mod013-carrierwave/abstract/attachment/web.rb +0 -12
  318. data/tmpsets/set/mod013-carrierwave/abstract/attachment.rb +0 -144
  319. data/tmpsets/set/mod013-carrierwave/all/file_utils.rb +0 -50
  320. data/tmpsets/set/mod013-carrierwave/self/admin.rb +0 -32
  321. data/tmpsets/set/mod013-carrierwave/self/favicon.rb +0 -26
  322. data/tmpsets/set/mod013-carrierwave/self/new_file.rb +0 -22
  323. data/tmpsets/set/mod013-carrierwave/self/new_image.rb +0 -22
  324. data/tmpsets/set/mod013-carrierwave/type/file.rb +0 -144
  325. data/tmpsets/set/mod013-carrierwave/type/image/html_views.rb +0 -88
  326. data/tmpsets/set/mod013-carrierwave/type/image.rb +0 -113
  327. data/tmpsets/set/mod014-virtual/abstract/virtual_cache.rb +0 -52
  328. data/tmpsets/set/mod015-machines/abstract/machine/output_cache.rb +0 -25
  329. data/tmpsets/set/mod015-machines/abstract/machine/output_update.rb +0 -84
  330. data/tmpsets/set/mod015-machines/abstract/machine.rb +0 -230
  331. data/tmpsets/set/mod015-machines/abstract/machine_input.rb +0 -82
  332. data/tmpsets/set/mod015-machines/all/reset_machines.rb +0 -31
  333. data/tmpsets/set/mod015-machines/right/machine_cache.rb +0 -14
  334. data/tmpsets/set/mod015-machines/right/machine_input.rb +0 -16
  335. data/tmpsets/set/mod015-machines/right/machine_output.rb +0 -53
  336. data/tmpsets/set/mod016-script/abstract/01_asset_java_script.rb +0 -32
  337. data/tmpsets/set/mod016-script/abstract/asset_coffee_script.rb +0 -34
  338. data/tmpsets/set/mod016-script/abstract/asset_list.rb +0 -98
  339. data/tmpsets/set/mod016-script/abstract/manifest_group.rb +0 -22
  340. data/tmpsets/set/mod016-script/abstract/mod_assets.rb +0 -145
  341. data/tmpsets/set/mod016-script/abstract/script.rb +0 -98
  342. data/tmpsets/set/mod016-script/right/script.rb +0 -30
  343. data/tmpsets/set/mod016-script/self/script.rb +0 -10
  344. data/tmpsets/set/mod016-script/self/script_html5shiv_printshiv.rb +0 -20
  345. data/tmpsets/set/mod016-script/self/script_mods.rb +0 -10
  346. data/tmpsets/set/mod016-script/type/01_coffee_script.rb +0 -35
  347. data/tmpsets/set/mod016-script/type/02_java_script.rb +0 -24
  348. data/tmpsets/set/mod016-script/type/local_folder_group.rb +0 -30
  349. data/tmpsets/set/mod016-script/type/local_manifest_group.rb +0 -35
  350. data/tmpsets/set/mod016-script/type/mod_script_assets.rb +0 -22
  351. data/tmpsets/set/mod016-script/type/remote_manifest_group.rb +0 -41
  352. data/tmpsets/set/mod017-ace_editor/all/ace_editor.rb +0 -20
  353. data/tmpsets/set/mod017-ace_editor/self/ace.rb +0 -16
  354. data/tmpsets/set/mod017-ace_editor/self/script_ace.rb +0 -12
  355. data/tmpsets/set/mod017-ace_editor/self/script_ace_config.rb +0 -12
  356. data/tmpsets/set/mod018-alias/all/alias.rb +0 -30
  357. data/tmpsets/set/mod018-alias/all_plus/alias.rb +0 -31
  358. data/tmpsets/set/mod018-alias/type/alias.rb +0 -42
  359. data/tmpsets/set/mod019-api_key/right/account.rb +0 -18
  360. data/tmpsets/set/mod019-api_key/right/api_key.rb +0 -103
  361. data/tmpsets/set/mod020-style/abstract/skin_box.rb +0 -44
  362. data/tmpsets/set/mod020-style/right/style.rb +0 -65
  363. data/tmpsets/set/mod020-style/self/style.rb +0 -13
  364. data/tmpsets/set/mod020-style/self/style_bootstrap_compatible.rb +0 -10
  365. data/tmpsets/set/mod020-style/self/style_cards.rb +0 -10
  366. data/tmpsets/set/mod020-style/self/style_jquery_ui_smoothness.rb +0 -10
  367. data/tmpsets/set/mod020-style/self/style_libraries.rb +0 -10
  368. data/tmpsets/set/mod020-style/self/style_mods.rb +0 -10
  369. data/tmpsets/set/mod020-style/type/css.rb +0 -95
  370. data/tmpsets/set/mod020-style/type/scss.rb +0 -30
  371. data/tmpsets/set/mod020-style/type/skin.rb +0 -18
  372. data/tmpsets/set/mod021-bar_and_box/abstract/media.rb +0 -26
  373. data/tmpsets/set/mod021-bar_and_box/all/bar.rb +0 -112
  374. data/tmpsets/set/mod021-bar_and_box/all/box.rb +0 -25
  375. data/tmpsets/set/mod021-bar_and_box/self/style_media.rb +0 -15
  376. data/tmpsets/set/mod021-bar_and_box/type/image.rb +0 -47
  377. data/tmpsets/set/mod022-bootstrap/abstract/bootstrap_code_file.rb +0 -65
  378. data/tmpsets/set/mod022-bootstrap/abstract/bootswatch_theme/html_views.rb +0 -39
  379. data/tmpsets/set/mod022-bootstrap/abstract/bootswatch_theme.rb +0 -167
  380. data/tmpsets/set/mod022-bootstrap/abstract/bs_badge.rb +0 -31
  381. data/tmpsets/set/mod022-bootstrap/all/bootstrap/accordion.rb +0 -72
  382. data/tmpsets/set/mod022-bootstrap/all/bootstrap/dropdown.rb +0 -93
  383. data/tmpsets/set/mod022-bootstrap/all/bootstrap/form.rb +0 -44
  384. data/tmpsets/set/mod022-bootstrap/all/bootstrap/helper.rb +0 -73
  385. data/tmpsets/set/mod022-bootstrap/all/bootstrap/icon.rb +0 -125
  386. data/tmpsets/set/mod022-bootstrap/all/bootstrap/navbar.rb +0 -55
  387. data/tmpsets/set/mod022-bootstrap/all/bootstrap/table.rb +0 -110
  388. data/tmpsets/set/mod022-bootstrap/all/bootstrap/tabs.rb +0 -49
  389. data/tmpsets/set/mod022-bootstrap/all/bootstrap/wrapper.rb +0 -27
  390. data/tmpsets/set/mod022-bootstrap/all/rich_bootstrap.rb +0 -24
  391. data/tmpsets/set/mod022-bootstrap/self/bootstrap_core.rb +0 -23
  392. data/tmpsets/set/mod022-bootstrap/self/bootstrap_functions.rb +0 -14
  393. data/tmpsets/set/mod022-bootstrap/self/font_awesome.rb +0 -11
  394. data/tmpsets/set/mod022-bootstrap/self/material_icons.rb +0 -11
  395. data/tmpsets/set/mod022-bootstrap/self/script_load_select2.rb +0 -11
  396. data/tmpsets/set/mod022-bootstrap/self/smartmenu_css.rb +0 -14
  397. data/tmpsets/set/mod022-bootstrap/self/smartmenu_js.rb +0 -14
  398. data/tmpsets/set/mod022-bootstrap/self/style_bootstrap_cards.rb +0 -10
  399. data/tmpsets/set/mod022-bootstrap/self/style_bootstrap_colorpicker.rb +0 -15
  400. data/tmpsets/set/mod022-bootstrap/self/style_select2.rb +0 -19
  401. data/tmpsets/set/mod022-bootstrap/self/style_select2_bootstrap.rb +0 -10
  402. data/tmpsets/set/mod022-bootstrap/type/bootswatch_skin.rb +0 -24
  403. data/tmpsets/set/mod022-bootstrap/type/customized_bootswatch_skin/html_views.rb +0 -43
  404. data/tmpsets/set/mod022-bootstrap/type/customized_bootswatch_skin.rb +0 -129
  405. data/tmpsets/set/mod022-bootstrap/type_plus_right/customized_bootswatch_skin/colors.rb +0 -123
  406. data/tmpsets/set/mod023-comment/all/comment.rb +0 -92
  407. data/tmpsets/set/mod023-comment/right/comment.rb +0 -10
  408. data/tmpsets/set/mod023-comment/right/discussion.rb +0 -18
  409. data/tmpsets/set/mod024-date/all/calendar.rb +0 -18
  410. data/tmpsets/set/mod024-date/right/when_created.rb +0 -16
  411. data/tmpsets/set/mod024-date/right/when_last_edited.rb +0 -16
  412. data/tmpsets/set/mod024-date/self/datepicker.rb +0 -15
  413. data/tmpsets/set/mod024-date/self/now.rb +0 -14
  414. data/tmpsets/set/mod024-date/self/script_datepicker_config.rb +0 -12
  415. data/tmpsets/set/mod024-date/self/style_datepicker.rb +0 -20
  416. data/tmpsets/set/mod024-date/type/date.rb +0 -14
  417. data/tmpsets/set/mod026-follow/abstract/follow_option.rb +0 -65
  418. data/tmpsets/set/mod026-follow/all/follow/follow_link.rb +0 -70
  419. data/tmpsets/set/mod026-follow/all/follow/follow_link_views.rb +0 -38
  420. data/tmpsets/set/mod026-follow/all/follow/followed_by.rb +0 -79
  421. data/tmpsets/set/mod026-follow/all/follow/follower_ids.rb +0 -130
  422. data/tmpsets/set/mod026-follow/all/follow/start_follow_link.rb +0 -19
  423. data/tmpsets/set/mod026-follow/all/follow/stop_follow_link.rb +0 -20
  424. data/tmpsets/set/mod026-follow/all/follow.rb +0 -42
  425. data/tmpsets/set/mod026-follow/all/notify/base_views.rb +0 -137
  426. data/tmpsets/set/mod026-follow/all/notify/html_views.rb +0 -26
  427. data/tmpsets/set/mod026-follow/all/notify.rb +0 -91
  428. data/tmpsets/set/mod026-follow/right/account.rb +0 -24
  429. data/tmpsets/set/mod026-follow/right/follow.rb +0 -127
  430. data/tmpsets/set/mod026-follow/right/follow_fields.rb +0 -12
  431. data/tmpsets/set/mod026-follow/right/followers.rb +0 -32
  432. data/tmpsets/set/mod026-follow/right/following.rb +0 -59
  433. data/tmpsets/set/mod026-follow/self/always.rb +0 -22
  434. data/tmpsets/set/mod026-follow/self/created.rb +0 -28
  435. data/tmpsets/set/mod026-follow/self/edited.rb +0 -29
  436. data/tmpsets/set/mod026-follow/self/follow.rb +0 -10
  437. data/tmpsets/set/mod026-follow/self/follow_defaults.rb +0 -98
  438. data/tmpsets/set/mod026-follow/self/follow_fields.rb +0 -10
  439. data/tmpsets/set/mod026-follow/self/never.rb +0 -22
  440. data/tmpsets/set/mod026-follow/type/cardtype.rb +0 -30
  441. data/tmpsets/set/mod026-follow/type/notification_template.rb +0 -42
  442. data/tmpsets/set/mod026-follow/type/set.rb +0 -62
  443. data/tmpsets/set/mod026-follow/type/user.rb +0 -16
  444. data/tmpsets/set/mod026-follow/type_plus_right/user/follow/follow_editor_helper.rb +0 -130
  445. data/tmpsets/set/mod026-follow/type_plus_right/user/follow.rb +0 -87
  446. data/tmpsets/set/mod027-google_analytics/all/google_analytics.rb +0 -51
  447. data/tmpsets/set/mod028-help/all/guide.rb +0 -60
  448. data/tmpsets/set/mod028-help/all/help.rb +0 -58
  449. data/tmpsets/set/mod028-help/right/guide.rb +0 -17
  450. data/tmpsets/set/mod028-help/right/help.rb +0 -24
  451. data/tmpsets/set/mod028-help/self/guide.rb +0 -11
  452. data/tmpsets/set/mod028-help/self/help.rb +0 -13
  453. data/tmpsets/set/mod029-integrate/all/observer.rb +0 -31
  454. data/tmpsets/set/mod029-integrate/self/on_create.rb +0 -11
  455. data/tmpsets/set/mod029-integrate/self/on_delete.rb +0 -11
  456. data/tmpsets/set/mod029-integrate/self/on_update.rb +0 -11
  457. data/tmpsets/set/mod029-integrate/self/thanks.rb +0 -13
  458. data/tmpsets/set/mod030-session/all/location_history.rb +0 -28
  459. data/tmpsets/set/mod030-session/type/session.rb +0 -70
  460. data/tmpsets/set/mod031-layout/abstract/account_dropdown.rb +0 -32
  461. data/tmpsets/set/mod031-layout/abstract/pointer/html_views.rb +0 -14
  462. data/tmpsets/set/mod031-layout/all/alert.rb +0 -32
  463. data/tmpsets/set/mod031-layout/all/layouts.rb +0 -43
  464. data/tmpsets/set/mod031-layout/all/modal.rb +0 -129
  465. data/tmpsets/set/mod031-layout/all/navbar_links.rb +0 -77
  466. data/tmpsets/set/mod031-layout/all/overlay.rb +0 -110
  467. data/tmpsets/set/mod031-layout/all/process_layout.rb +0 -88
  468. data/tmpsets/set/mod031-layout/all/tabs.rb +0 -61
  469. data/tmpsets/set/mod031-layout/right/enabled_roles.rb +0 -70
  470. data/tmpsets/set/mod031-layout/right/head.rb +0 -26
  471. data/tmpsets/set/mod031-layout/self/account_links.rb +0 -107
  472. data/tmpsets/set/mod031-layout/self/alerts.rb +0 -14
  473. data/tmpsets/set/mod031-layout/self/dropdown_divider.rb +0 -18
  474. data/tmpsets/set/mod031-layout/self/foot.rb +0 -14
  475. data/tmpsets/set/mod031-layout/self/head.rb +0 -35
  476. data/tmpsets/set/mod031-layout/self/layout.rb +0 -12
  477. data/tmpsets/set/mod031-layout/self/navbox.rb +0 -42
  478. data/tmpsets/set/mod031-layout/self/sidebar.rb +0 -14
  479. data/tmpsets/set/mod031-layout/type/html.rb +0 -23
  480. data/tmpsets/set/mod031-layout/type/layout_type.rb +0 -25
  481. data/tmpsets/set/mod032-legacy/abstract/table_of_contents.rb +0 -76
  482. data/tmpsets/set/mod032-legacy/self/csv_structure.rb +0 -10
  483. data/tmpsets/set/mod032-legacy/self/default_html_view.rb +0 -10
  484. data/tmpsets/set/mod032-legacy/self/table_of_contents.rb +0 -13
  485. data/tmpsets/set/mod032-legacy/type/basic.rb +0 -10
  486. data/tmpsets/set/mod033-markdown/type/markdown.rb +0 -26
  487. data/tmpsets/set/mod034-prosemirror_editor/all/prosemirror_editor.rb +0 -16
  488. data/tmpsets/set/mod034-prosemirror_editor/self/script_prosemirror.rb +0 -12
  489. data/tmpsets/set/mod034-prosemirror_editor/self/script_prosemirror_config.rb +0 -13
  490. data/tmpsets/set/mod034-prosemirror_editor/self/style_prosemirror.rb +0 -12
  491. data/tmpsets/set/mod035-recaptcha/all/recaptcha.rb +0 -111
  492. data/tmpsets/set/mod035-recaptcha/self/admin_info.rb +0 -36
  493. data/tmpsets/set/mod035-recaptcha/self/captcha.rb +0 -14
  494. data/tmpsets/set/mod035-recaptcha/self/recaptcha_proxy.rb +0 -12
  495. data/tmpsets/set/mod035-recaptcha/self/recaptcha_secret_key.rb +0 -18
  496. data/tmpsets/set/mod035-recaptcha/self/recaptcha_settings.rb +0 -40
  497. data/tmpsets/set/mod035-recaptcha/self/recaptcha_site_key.rb +0 -18
  498. data/tmpsets/set/mod036-search/abstract/00_filter_helper.rb +0 -55
  499. data/tmpsets/set/mod036-search/abstract/02_search_params.rb +0 -59
  500. data/tmpsets/set/mod036-search/abstract/03_filter/filter_form.rb +0 -110
  501. data/tmpsets/set/mod036-search/abstract/03_filter/form_helper.rb +0 -114
  502. data/tmpsets/set/mod036-search/abstract/03_filter/query_construction.rb +0 -47
  503. data/tmpsets/set/mod036-search/abstract/03_filter.rb +0 -38
  504. data/tmpsets/set/mod036-search/abstract/04_right_filter_form.rb +0 -35
  505. data/tmpsets/set/mod036-search/abstract/05_search/views.rb +0 -174
  506. data/tmpsets/set/mod036-search/abstract/05_search.rb +0 -93
  507. data/tmpsets/set/mod036-search/abstract/06_cql_search.rb +0 -102
  508. data/tmpsets/set/mod036-search/abstract/filterable.rb +0 -22
  509. data/tmpsets/set/mod036-search/abstract/filterable_bar.rb +0 -20
  510. data/tmpsets/set/mod036-search/right/children.rb +0 -13
  511. data/tmpsets/set/mod036-search/right/created.rb +0 -12
  512. data/tmpsets/set/mod036-search/right/edited.rb +0 -12
  513. data/tmpsets/set/mod036-search/right/editors.rb +0 -12
  514. data/tmpsets/set/mod036-search/right/follow.rb +0 -12
  515. data/tmpsets/set/mod036-search/right/linked_to_by.rb +0 -12
  516. data/tmpsets/set/mod036-search/right/links_to.rb +0 -14
  517. data/tmpsets/set/mod036-search/right/mates.rb +0 -12
  518. data/tmpsets/set/mod036-search/right/nested_by.rb +0 -12
  519. data/tmpsets/set/mod036-search/right/nests.rb +0 -12
  520. data/tmpsets/set/mod036-search/right/referred_to_by.rb +0 -12
  521. data/tmpsets/set/mod036-search/right/refers_to.rb +0 -12
  522. data/tmpsets/set/mod036-search/self/recent.rb +0 -44
  523. data/tmpsets/set/mod036-search/self/search.rb +0 -104
  524. data/tmpsets/set/mod036-search/type/cardtype.rb +0 -14
  525. data/tmpsets/set/mod036-search/type/search_type.rb +0 -90
  526. data/tmpsets/set/mod037-rules/all/related_sets.rb +0 -34
  527. data/tmpsets/set/mod037-rules/right/self.rb +0 -12
  528. data/tmpsets/set/mod037-rules/right/type_plus_right.rb +0 -13
  529. data/tmpsets/set/mod037-rules/rstar/rule_user.rb +0 -16
  530. data/tmpsets/set/mod037-rules/rule/bar_view.rb +0 -102
  531. data/tmpsets/set/mod037-rules/rule/bridge_rules_editor.rb +0 -37
  532. data/tmpsets/set/mod037-rules/rule/editor.rb +0 -119
  533. data/tmpsets/set/mod037-rules/rule/html_views.rb +0 -22
  534. data/tmpsets/set/mod037-rules/rule/quick_editor.rb +0 -48
  535. data/tmpsets/set/mod037-rules/rule/rule_form/buttons.rb +0 -54
  536. data/tmpsets/set/mod037-rules/rule/rule_form/form_elements.rb +0 -61
  537. data/tmpsets/set/mod037-rules/rule/rule_form/rule_set_radio.rb +0 -92
  538. data/tmpsets/set/mod037-rules/rule/rule_form/set_selection.rb +0 -48
  539. data/tmpsets/set/mod037-rules/rule/rule_form.rb +0 -65
  540. data/tmpsets/set/mod037-rules/rule/rules.rb +0 -118
  541. data/tmpsets/set/mod037-rules/self/cardtype.rb +0 -51
  542. data/tmpsets/set/mod037-rules/self/recent_settings.rb +0 -16
  543. data/tmpsets/set/mod037-rules/self/script_rules.rb +0 -12
  544. data/tmpsets/set/mod037-rules/type/cardtype.rb +0 -14
  545. data/tmpsets/set/mod037-rules/type/set/html_views/rule_lists.rb +0 -51
  546. data/tmpsets/set/mod037-rules/type/set/html_views/template.rb +0 -21
  547. data/tmpsets/set/mod037-rules/type/set/html_views.rb +0 -60
  548. data/tmpsets/set/mod037-rules/type/set/rules_filter.rb +0 -69
  549. data/tmpsets/set/mod037-rules/type/set/setting_lists.rb +0 -85
  550. data/tmpsets/set/mod037-rules/type/set.rb +0 -116
  551. data/tmpsets/set/mod037-rules/type/setting.rb +0 -86
  552. data/tmpsets/set/mod038-tinymce_editor/all/reference_editor/link_editor/link_parser.rb +0 -43
  553. data/tmpsets/set/mod038-tinymce_editor/all/reference_editor/link_editor.rb +0 -42
  554. data/tmpsets/set/mod038-tinymce_editor/all/reference_editor/nest_editor.rb +0 -184
  555. data/tmpsets/set/mod038-tinymce_editor/all/reference_editor/nest_image.rb +0 -77
  556. data/tmpsets/set/mod038-tinymce_editor/all/reference_editor.rb +0 -53
  557. data/tmpsets/set/mod038-tinymce_editor/all/tinymce_editor.rb +0 -15
  558. data/tmpsets/set/mod038-tinymce_editor/self/script_tinymce.rb +0 -12
  559. data/tmpsets/set/mod038-tinymce_editor/self/script_tinymce_config.rb +0 -12
  560. data/tmpsets/set/mod038-tinymce_editor/self/tiny_mce.rb +0 -16
  561. data/tmpsets/set/mod040-monkey/all/event_viz.rb +0 -73
  562. data/tmpsets/set/mod040-monkey/all/view_viz.rb +0 -34
  563. data/tmpsets/set/mod040-monkey/right/debug.rb +0 -96
@@ -28,40 +28,29 @@ module Cardio
28
28
  end
29
29
 
30
30
  def migration_paths mig_type=type
31
- Cardio.migration_paths mig_type
32
- end
33
-
34
- def schema mig_type=type
35
- Cardio.schema mig_type
31
+ Schema.migration_paths mig_type
36
32
  end
37
33
 
38
34
  def schema_suffix mig_type=type
39
- Cardio.schema_suffix mig_type
35
+ Schema.suffix mig_type
40
36
  end
41
37
 
42
- def schema_mode mig_type=type
43
- Cardio.with_suffix mig_type do
44
- paths = Cardio.migration_paths(type)
45
- yield(paths)
46
- end
38
+ def schema_mode mig_type=type, &block
39
+ Schema.mode mig_type, &block
47
40
  end
48
41
 
49
42
  def assume_migrated_upto_version
50
- schema_mode do
51
- ActiveRecord::Schema.assume_migrated_upto_version schema,
52
- migration_paths
53
- end
43
+ Schema.assume_migrated_upto_version type
54
44
  end
55
45
 
56
46
  def data_path filename=nil
57
- path = migration_paths.first
58
- File.join([path, "data", filename].compact)
47
+ File.join([migration_paths.first, "data", filename].compact)
59
48
  end
60
49
  end
61
50
 
62
51
  def contentedly
63
52
  Card::Cache.reset_all
64
- Cardio.schema_mode "" do
53
+ Schema.mode "" do
65
54
  Card::Auth.as_bot do
66
55
  yield
67
56
  ensure
@@ -101,7 +90,7 @@ module Cardio
101
90
  names_or_keys = Array(names_or_keys)
102
91
  Card::Mailer.perform_deliveries = false
103
92
 
104
- Cardio::Migration::Import.new(data_path).merge only: names_or_keys
93
+ Migration::Import.new(data_path).merge only: names_or_keys
105
94
  end
106
95
 
107
96
  def merge_pristine_cards names_or_keys
@@ -121,14 +110,6 @@ module Cardio
121
110
  self.class.data_path filename
122
111
  end
123
112
 
124
- def schema_mode
125
- Cardio.schema_mode self.class.type
126
- end
127
-
128
- def migration_paths
129
- Cardio.paths self.class.type
130
- end
131
-
132
113
  # Execute this migration in the named direction
133
114
  # copied from ActiveRecord to wrap 'up' in 'contentendly'
134
115
  def exec_migration conn, direction
@@ -1,5 +1,7 @@
1
+ require "cardio/mod/modfile_loader"
2
+
1
3
  module Cardio
2
- module Mod
4
+ class Mod
3
5
  # Dirs objects are used to manage the load paths for card mods.
4
6
  # Mods can be loaded as gems and by using directories with mod subdirectories.
5
7
  #
@@ -48,8 +50,8 @@ module Cardio
48
50
  # @param mod_paths [String, Array<String>] paths to directories that contain mods
49
51
  def initialize mod_paths=[]
50
52
  @mods = []
53
+ @mods_by_name = {}
51
54
  @loaded_gem_mods = ::Set.new
52
- @paths = {}
53
55
  mod_paths = Array(mod_paths)
54
56
  mod_paths.each do |mp|
55
57
  @current_path = mp
@@ -57,45 +59,46 @@ module Cardio
57
59
  end
58
60
  load_from_gemfile
59
61
  super()
60
- @mods.each do |mod_name|
61
- self << @paths[mod_name]
62
+ @mods.each do |mod|
63
+ self << mod.path
62
64
  end
63
65
  end
64
66
 
67
+ def add_gem_mod mod_name, mod_path
68
+ return if @loaded_gem_mods.include?(mod_name)
69
+
70
+ @loaded_gem_mods << mod_name
71
+ add_mod mod_name, mod_path
72
+ end
73
+
65
74
  # Add a mod to mod load paths
66
- def add_path mod_name, path=nil
67
- if @mods.include? mod_name
68
- raise Card::Error,
75
+ def add_mod mod_name, path=nil
76
+ if @mods_by_name.key? Mod.normalize_name(mod_name)
77
+ raise ::Card::Error,
69
78
  "name conflict: mod with name \"#{mod_name}\" already loaded"
70
79
  end
71
- @mods << mod_name
72
- path ||= File.join @current_path, mod_name
73
- @paths[mod_name] = path
74
- end
75
-
76
- def gem_mod name
77
- deps = Mod.dependencies name
78
- unknown_gem_mod!(name) if deps.blank?
79
- deps.each { |spec| add_gem_mod spec.name, spec.full_gem_path }
80
- end
81
80
 
82
- def unknown_gem_mod! name
83
- raise Card::Error, %(Unknown gem "#{name}". Make sure it is in your Gemfile.)
81
+ path ||= File.join @current_path, mod_name
82
+ mod = Mod.new mod_name, path, @mods.size
83
+ @mods << mod
84
+ @mods_by_name[mod.name] = mod
84
85
  end
85
86
 
86
- def add_gem_mod mod_name, mod_path
87
- return if @loaded_gem_mods.include?(mod_name)
88
-
89
- @loaded_gem_mods << mod_name
90
- add_path mod_name, mod_path
87
+ def delete_mod mod_name
88
+ name = Mod.normalize_name mod_name
89
+ mod = @mods_by_name[name]
90
+ @mods.delete mod
91
+ @mods_by_name.delete name
91
92
  end
92
93
 
93
- alias_method :mod, :add_path
94
-
95
94
  # @param mod_name [String] the name of a mod
96
95
  # @return the path to mod `mod_name`
97
96
  def path mod_name
98
- @paths[mod_name] || @paths["card-mod-#{mod_name}"]
97
+ fetch_mod(mod_name)&.path
98
+ end
99
+
100
+ def fetch_mod mod_name
101
+ @mods_by_name[Mod.normalize_name(mod_name)]
99
102
  end
100
103
 
101
104
  # Iterate over each mod directory
@@ -114,22 +117,24 @@ module Cardio
114
117
 
115
118
  def each_tmp type
116
119
  @mods.each do |mod|
117
- path = tmp_dir mod, type
120
+ path = mod.tmp_dir type
118
121
  yield path if Dir.exist? path
119
122
  end
120
123
  end
121
124
 
122
125
  def each_with_tmp type=nil
123
126
  @mods.each do |mod|
124
- dirname = dirname @paths[mod], type
125
- yield dirname, tmp_dir(mod, type) if Dir.exist? dirname
127
+ dirname = dirname mod.path, type
128
+ yield dirname, mod.tmp_dir(type) if Dir.exist? dirname
126
129
  end
127
130
  end
128
131
 
129
- def each_assets_path
132
+ def each_public_path
130
133
  @mods.each do |mod|
131
- path = File.join(@paths[mod], "public", "assets")
132
- yield mod, path if Dir.exist? path
134
+ path = mod.public_path
135
+ next unless Dir.exist? path
136
+
137
+ yield mod.name, path
133
138
  end
134
139
  end
135
140
 
@@ -139,13 +144,14 @@ module Cardio
139
144
  modfile_path = File.join @current_path, "Modfile"
140
145
  return unless File.exist? modfile_path
141
146
 
142
- eval File.read(modfile_path), binding
147
+ loader = ModfileLoader.new self
148
+ loader.load modfile_path
143
149
  true
144
150
  end
145
151
 
146
152
  def load_from_dir
147
153
  Dir.entries(@current_path).sort.each do |filename|
148
- add_path filename unless filename.match?(/^\./)
154
+ add_mod filename unless filename.match?(/^\./)
149
155
  end
150
156
  end
151
157
 
@@ -154,12 +160,6 @@ module Cardio
154
160
  add_gem_mod mod_name, mod_spec.full_gem_path
155
161
  end
156
162
  end
157
-
158
- def tmp_dir modname, type
159
- index = @mods.index modname
160
- File.join Card.paths["tmp/#{type}"].first,
161
- "mod#{'%03d' % (index + 1)}-#{modname}"
162
- end
163
163
  end
164
164
  end
165
165
  end
@@ -1,5 +1,5 @@
1
1
  module Cardio
2
- module Mod
2
+ class Mod
3
3
  class LoadStrategy
4
4
  # Put everything for the module definition in one string and the evaluate
5
5
  # it immediately with ruby's eval method.
@@ -1,5 +1,5 @@
1
1
  module Cardio
2
- module Mod
2
+ class Mod
3
3
  class LoadStrategy
4
4
  # The {TmpFiles} load strategy version for set pattern modules/
5
5
  class PatternTmpFiles < TmpFiles
@@ -1,5 +1,5 @@
1
1
  module Cardio
2
- module Mod
2
+ class Mod
3
3
  # Tries to build the module with as little string evaluation as possible.
4
4
  # The problem here is that in methods like `module_eval` the Module.nesting
5
5
  # list gets lost so all references in mod files to constants in the
@@ -1,5 +1,5 @@
1
1
  module Cardio
2
- module Mod
2
+ class Mod
3
3
  class LoadStrategy
4
4
  # The {TmpFiles} load strategy version for set modules
5
5
  class SetTmpFiles < LoadStrategy::TmpFiles
@@ -21,13 +21,19 @@ module Cardio
21
21
  end
22
22
 
23
23
  def load_tmp_files
24
- mod_dirs.each_tmp(:set) do |set_tmp_dir|
25
- Card::Set::Pattern.codes.each do |pattern|
26
- pattern_dir = "#{set_tmp_dir}/#{pattern}"
27
- Loader.load_dir "#{pattern_dir}/**" if Dir.exist? pattern_dir
24
+ pattern_groups.each do |pattern_group|
25
+ mod_dirs.each_tmp(:set) do |set_tmp_dir|
26
+ load_tmp_files_for_pattern pattern_group, set_tmp_dir
28
27
  end
29
28
  end
30
29
  end
30
+
31
+ def load_tmp_files_for_pattern pattern_group, set_tmp_dir
32
+ pattern_group.each do |pattern|
33
+ pattern_dir = "#{set_tmp_dir}/#{pattern}"
34
+ Loader.load_dir "#{pattern_dir}/**" if Dir.exist? pattern_dir
35
+ end
36
+ end
31
37
  end
32
38
  end
33
39
  end
@@ -1,5 +1,5 @@
1
1
  module Cardio
2
- module Mod
2
+ class Mod
3
3
  class LoadStrategy
4
4
  # LoadStrategy for mod modules. It writes the code to tmp files
5
5
  # and then loads the tmp files. (deprecated)
@@ -1,5 +1,5 @@
1
1
  module Cardio
2
- module Mod
2
+ class Mod
3
3
  # Shared code for the three different load strategies: Eval, TmpFiles and BindingMagic
4
4
  class LoadStrategy
5
5
  class << self
@@ -14,9 +14,7 @@ module Cardio
14
14
  end
15
15
 
16
16
  def class_for_set_pattern strategy
17
- return PatternTmpFiles if strategy == :tmp_files
18
-
19
- Eval
17
+ strategy == :tmp_files ? PatternTmpFiles : Eval
20
18
  end
21
19
 
22
20
  def tmp_files?
@@ -25,7 +23,8 @@ module Cardio
25
23
  end
26
24
 
27
25
  attr_reader :loader
28
- delegate :template_class, :each_file, :mod_dirs, :parts_from_path, to: :loader
26
+ delegate :template_class, :pattern_groups, :each_file, :mod_dirs, :parts_from_path,
27
+ to: :loader
29
28
 
30
29
  def initialize loader
31
30
  LoadStrategy.current = self.class
@@ -1,14 +1,10 @@
1
1
  module Cardio
2
- module Mod
2
+ class Mod
3
3
  class Loader
4
4
  # A SetLoader object loads all set modules for a list of mods.
5
5
  # The mods are given by a Mod::Dirs object.
6
6
  # SetLoader can use three different strategies to load the set modules.
7
7
  class SetLoader < Loader
8
- def template_class
9
- SetTemplate
10
- end
11
-
12
8
  def initialize args={}
13
9
  @no_all = args.delete :no_all
14
10
  super load_strategy: args[:load_strategy], mod_dirs: args[:mod_dirs]
@@ -20,22 +16,26 @@ module Cardio
20
16
 
21
17
  def load
22
18
  super
23
- # Card::Set.process_base_modules
24
- Card::Set.clean_empty_modules
19
+ Card::Set.finalize_load
25
20
  end
26
21
 
27
- # does not include abstract
28
- def main_patterns
29
- method = @no_all ? :nonbase_codes : :codes
30
- Card::Set::Pattern.send method
22
+ def template_class
23
+ SetTemplate
31
24
  end
32
25
 
33
26
  def each_file &block
34
- # each_file_with_patterns :abstract, &block
35
- each_file_with_patterns(*main_patterns, &block)
27
+ pattern_groups.each do |pattern_group|
28
+ each_file_with_patterns pattern_group, &block
29
+ end
36
30
  end
37
31
 
38
- def each_file_with_patterns *patterns, &block
32
+ def pattern_groups
33
+ Card::Set::Pattern.grouped_codes with_all: !@no_all
34
+ end
35
+
36
+ private
37
+
38
+ def each_file_with_patterns patterns, &block
39
39
  each_mod_dir :set do |base_dir|
40
40
  patterns.each do |pattern|
41
41
  each_file_in_dir base_dir, pattern.to_s, &block
@@ -1,5 +1,5 @@
1
1
  module Cardio
2
- module Mod
2
+ class Mod
3
3
  class Loader
4
4
  class SetPatternLoader < Loader
5
5
  def template_class
@@ -1,5 +1,5 @@
1
1
  module Cardio
2
- module Mod
2
+ class Mod
3
3
  class Loader
4
4
  # Template for set modules
5
5
  class SetTemplate < ModuleTemplate
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  module Cardio
4
- module Mod
4
+ class Mod
5
5
  # Cardio::Mod::Loader is used to load all part of a mod,
6
6
  # i.e. initializers, patterns, formats, chunks, layouts and sets
7
7
  # cards are not accessible at this point
@@ -22,13 +22,13 @@ module Cardio
22
22
 
23
23
  def reload_sets
24
24
  Card::Set::Pattern.reset
25
- Card::Set.reset_modules
25
+ Card::Set.reset
26
26
  SetPatternLoader.new.load
27
27
  SetLoader.new(no_all: true).load
28
28
  end
29
29
 
30
30
  def load_initializers
31
- Cardio.config.paths["mod/config/initializers"].existent.sort.each do |init|
31
+ Cardio.config.paths["late/initializers"].existent.sort.each do |init|
32
32
  load init
33
33
  end
34
34
  end
@@ -0,0 +1,22 @@
1
+ module Cardio
2
+ class Mod
3
+ # Methods used via "eval" in Modfiles
4
+ module ModfileApi
5
+ def mod mod_name, path=nil
6
+ @dirs.add_mod mod_name, path
7
+ end
8
+
9
+ def gem_mod name
10
+ deps = Mod.dependencies name
11
+ unknown_gem_mod!(name) if deps.blank?
12
+ deps.each { |spec| @dirs.add_gem_mod spec.name, spec.full_gem_path }
13
+ end
14
+
15
+ private
16
+
17
+ def unknown_gem_mod! name
18
+ raise Card::Error, %(Unknown gem "#{name}". Make sure it is in your Gemfile.)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,18 @@
1
+ require "cardio/mod/modfile_api"
2
+
3
+ module Cardio
4
+ class Mod
5
+ # Loads the mod of a Modfile into a Mod::Dirs object
6
+ class ModfileLoader
7
+ include ModfileApi
8
+
9
+ def initialize dirs
10
+ @dirs = dirs
11
+ end
12
+
13
+ def load modfile_path
14
+ eval File.read(modfile_path), binding
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  module Cardio
2
- module Mod
2
+ class Mod
3
3
  # ModuleTemplate is an abstract class to build ruby modules out of
4
4
  # deckos dsl for sets and set patterns.
5
5
  # {Loader::SetTemplate} and {Loader::SetPatternTemplate} inherit
data/lib/cardio/mod.rb CHANGED
@@ -59,13 +59,62 @@ module Cardio
59
59
  # - **set_pattern** for additional {Card::Set::Pattern set patterns},
60
60
  # or types of sets.
61
61
  # - **file** for fixed initial card content
62
- module Mod
62
+ class Mod
63
+ attr_reader :name, :path, :index
64
+
65
+ def initialize name, path, index
66
+ @name = Mod.normalize_name name
67
+ @path = path
68
+ @index = index
69
+ end
70
+
71
+ def mod_card_name
72
+ "mod: #{name}"
73
+ end
74
+
75
+ def codename
76
+ "mod_#{name}"
77
+ end
78
+
79
+ def tmp_dir type
80
+ File.join Cardio.paths["tmp/#{type}"].first,
81
+ "mod#{'%03d' % (@index + 1)}-#{@name}"
82
+ end
83
+
84
+ def public_path
85
+ File.join @path, "public"
86
+ end
87
+
88
+ def assets_path
89
+ File.join @path, "assets"
90
+ end
91
+
92
+ def ensure_mod_installed
93
+ Card::Auth.as_bot do
94
+ card = ensure_mod_card
95
+ card.ensure_mod_script_card
96
+ card.ensure_mod_style_card
97
+ end
98
+ end
99
+
100
+ private
101
+
102
+ def ensure_mod_card
103
+ if Card::Codename.exists? codename
104
+ card = Card.fetch codename.to_sym
105
+ card.update type: :mod unless card.type_code == :mod
106
+ card
107
+ else
108
+ Card.create name: mod_card_name, type: :mod, codename: codename
109
+ end
110
+ end
111
+
63
112
  class << self
64
113
  def load
65
114
  return if ENV["CARD_MODS"] == "none"
66
115
 
67
116
  if Card.take
68
- Cardio::Mod::Loader.load_mods
117
+ Loader.load_mods
69
118
  else
70
119
  Rails.logger.warn "empty database"
71
120
  end
@@ -96,6 +145,10 @@ module Cardio
96
145
  end
97
146
  end
98
147
 
148
+ def normalize_name name
149
+ name.to_s.sub(/^card-mod-/, "")
150
+ end
151
+
99
152
  private
100
153
 
101
154
  def gem_spec name, nickname=true
@@ -0,0 +1,138 @@
1
+ module Cardio
2
+ # primary railtie for cards
3
+ class Railtie < Rails::Railtie
4
+ # if you disable inline styles tinymce's formatting options stop working
5
+ config.allow_inline_styles = true
6
+ config.delaying = nil
7
+ config.token_expiry = 2.days
8
+
9
+ config.recaptcha_public_key = nil # deprecated; use recaptcha_site_key instead
10
+ config.recaptcha_private_key = nil # deprecated; use recaptcha_secret_key instead
11
+
12
+ config.recaptcha_proxy = nil
13
+ config.recaptcha_site_key = nil
14
+ config.recaptcha_secret_key = nil
15
+ config.recaptcha_minimum_score = 0.5
16
+
17
+ config.google_analytics_key = nil
18
+
19
+ config.override_host = nil
20
+ config.override_protocol = nil
21
+
22
+ config.no_authentication = false
23
+ config.files_web_path = "files"
24
+
25
+ config.max_char_count = 200
26
+ config.max_depth = 20
27
+ config.email_defaults = nil
28
+
29
+ config.acts_per_page = 10
30
+ config.space_last_in_multispace = true
31
+ config.closed_search_limit = 10
32
+ config.paging_limit = 20
33
+
34
+ config.non_createable_types = %w[
35
+ signup
36
+ setting
37
+ set
38
+ session
39
+ bootswatch_skin
40
+ customized_bootswatch_skin
41
+ ]
42
+
43
+ config.view_cache = false
44
+ config.rss_enabled = false
45
+ config.double_click = :signed_in
46
+
47
+ config.encoding = "utf-8"
48
+ config.request_logger = false
49
+ config.performance_logger = false
50
+ config.sql_comments = true
51
+
52
+ config.file_storage = :local
53
+ config.file_buckets = {}
54
+ config.file_default_bucket = nil
55
+ config.protocol_and_host = nil
56
+
57
+ config.rich_text_editor = :tinymce
58
+
59
+ config.persistent_cache = true
60
+ config.prepopulate_cache = false
61
+ config.machine_refresh = :cautious
62
+ config.compress_javascript = true
63
+
64
+ config.allow_irreversible_admin_tasks = false
65
+ config.raise_all_rendering_errors = false
66
+ config.rescue_all_in_controller = true
67
+ config.navbox_match_start_only = true
68
+
69
+ config.cache_set_module_list = false
70
+
71
+ config.i18n.enforce_available_locales = true
72
+ config.read_only = !ENV["DECKO_READ_ONLY"].nil?
73
+ config.load_strategy = (ENV["REPO_TMPSETS"] || ENV["TMPSETS"] ? :tmp_files : :eval)
74
+
75
+ # TODO: support mod-specific railties
76
+
77
+ config.before_configuration do |app|
78
+ card_root = Cardio.gem_root
79
+
80
+ app.config.tap do |c|
81
+ c.autoloader = :zeitwerk
82
+ c.autoload_paths += Dir["#{card_root}/lib"]
83
+
84
+ c.paths.tap do |p|
85
+ p["config/environments"].unshift "#{card_root}/config/environments"
86
+ p["config/initializers"] << "#{card_root}/config/initializers"
87
+ p.add "late/initializers", glob: "**/*.rb"
88
+
89
+ p["lib/tasks"] << "#{card_root}/lib/tasks"
90
+
91
+ p.add "mod", with: "#{card_root}/mod"
92
+ p["mod"] << "mod"
93
+ p.add "files"
94
+
95
+ p.add "lib/graph_q_l/types/query.rb"
96
+
97
+ p.add "db", with: "#{card_root}/db"
98
+ p.add "db/seeds.rb", with: "#{card_root}/db/seeds.rb"
99
+ p.add "db/migrate", with: "#{card_root}/db/migrate"
100
+ p.add "db/migrate_core_cards", with: "#{card_root}/db/migrate_core_cards"
101
+
102
+ p.add "db/migrate_deck", with: "db/migrate"
103
+ p.add "db/migrate_deck_cards", with: "db/migrate_cards"
104
+
105
+ Cardio::Mod.each_path do |mod_path|
106
+ c.autoload_paths += Dir["#{mod_path}/lib"]
107
+ c.watchable_dirs["#{mod_path}/set"] = %i[rb haml]
108
+
109
+ p["lib/graph_q_l/types/query.rb"] <<
110
+ "#{mod_path}/lib/graph_q_l/types/query.rb"
111
+ p["config/initializers"] << "#{mod_path}/init/early"
112
+ p["late/initializers"] << "#{mod_path}/init/late"
113
+ p["config/locales"] << "#{mod_path}/locales"
114
+ p["lib/tasks"] << "#{mod_path}/lib/tasks"
115
+ end
116
+
117
+ p["app/models"] = []
118
+ p["app/mailers"] = []
119
+ p["app/controllers"] = []
120
+ end
121
+ end
122
+ end
123
+
124
+ config.before_initialize do |app|
125
+ app.config.tap do |c|
126
+ if c.load_strategy == :tmp_files
127
+ %w[set set_pattern].each do |dir|
128
+ if ENV["REPO_TMPSETS"]
129
+ c.paths.add "tmp/#{dir}", with: "#{Cardio.gem_root}/tmpsets/#{dir}"
130
+ else
131
+ c.paths.add "tmp/#{dir}"
132
+ end
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
138
+ end